
Linux K&D
文章平均质量分 95
xianjian_x
kxapiss@163.com
展开
-
PCI热插拔
1在guest linux加载驱动模块: 一般pci热插拔需要两个内核模块: acpiphp.ko 和 pci_hotplug.ko pci_hotplug.ko 已经被编译进内核文件中,不需要再手动加载。(可以通过/boot/目录下的config 文件来判断是否已经编译进内核)打开 /etc/modules 文件,在里面输入 acpiphp.即可在再次启动的时候加载 ac翻译 2014-07-26 09:39:56 · 5913 阅读 · 0 评论 -
linux内核调试环境搭建-2 用busybox搭建
下载linux内核:$cd ~/work/$wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.9.tar.bz2解压$tar -jxvf linux-2.6.35.9.tar.bz2拷贝现有系统的内核配置选项$ cp /boot/config-2.6.35-22-generic .config...原创 2012-11-07 20:57:52 · 7768 阅读 · 2 评论 -
在qemu中增加pci设备并用linux驱动验证
声明本文主要针对x86架构进行说明。使用的qemu版本是:qemu-kvm-1.2.0-rc21)PCI结构简介每个PCI设备都有一个配置空间和若干个地址空间,按照固定的顺序放置CPI的各种配置参数。关于详细的介绍可以在网上搜索相关的资料。下面是在busybox下lspci -mk的输出内容说明:00:00.0 "Class 0600" "8086" "1237"原创 2012-12-15 09:27:38 · 10519 阅读 · 2 评论 -
Linux 64位系统下 inet_ntoa 报段错误问题
Linux 64位系统下inet_ntoa函数报段错误, 测试环境: Redhat 5.4 enterprise 代码如下#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>int main(int argc, char *argv[]){ struct sockaddr_in addr; add转载 2016-09-21 14:06:08 · 1383 阅读 · 0 评论 -
linux内核调试环境搭建-4 调试模块初始化函数
打开一终端执行:qemu -m 512 -kernel bzImage -append "root=/dev/sda kgdboc=ttyS0,115200 kgdbwait" -boot c -hda busybox.img -k en-us -net nic -net tap,ifname=tap0,script=no -serial tcp::4321,server显示等待调试端链...原创 2012-11-07 21:01:37 · 3310 阅读 · 3 评论 -
Linux framebuffer显示bmp图片
帧缓冲(framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。 framebuffer是LCD对应的一种HAL(硬件抽象层),提供抽象的,统一的接口操作,用户不必关心硬件层是怎么实施的。这些都是由Framebuffer设备驱动来完成的。 帧缓冲设备对应的设备文件为/dev/fb*,如果系统有多个显示卡,原创 2015-11-23 12:35:13 · 12643 阅读 · 3 评论 -
linux内核调试环境搭建-1 Ubuntu10 .10下编译安装qemu
内核调试一般比应用层程序调试困难很多,主要因为内核是系统开机后执行的第一个程序,这使得用于一般应用程序的调试方法无法使用在内核上。自由软件社群开发了一些特殊方法解决这问题。 这些方法中最方便的方法莫过于 KGDB 的使用。KGDB 是个一特殊的内核辅助工具,除了在内核代码中加入了一些调试代码外也提供一个 gdbstub 用于和远程 gdb 调试程序联机用。以前,这样一个使用远程 gdb...原创 2012-11-07 20:54:31 · 7102 阅读 · 1 评论 -
linux内核调试环境搭建-3 调试内核模块
在虚拟机中创建两个脚本get.sh:tftp 192.168.100.1 -g -r $1put.sh:tftp 192.168.100.1 -p -l $1在linux设备驱动开发详解中源码:/*====================================================================== A globalmem ...原创 2012-11-07 20:59:32 · 4082 阅读 · 0 评论 -
自己写 Netfilter 匹配器
看了Nicolas写的netfilter写匹配器,自己尝试编译测试,发现iptables 以及内核版本升级很多数据结构和函数接口都改变了,需要做大量的修改才能运行。运行 iptables/netfilter1)iptables从 ftp://ftp.netfilter.org/pub/iptables/ 下载iptables 的源码然后拷贝libipt_ipaddr.c 到转载 2012-11-12 11:22:06 · 3002 阅读 · 0 评论 -
用GDB反汇编调试linux内核
在搭建好linux内核调试环境之后还会遇到各种问题,比如linux内核是不允许已最低优化等级编译的,因此有时候打印一个变量值就会显示 <optimized out> 这个时候就需要采用其它的方式来显示变量值了,反汇编就是其中一种方式:当调试linux模块初始化函数的时候(http://blog.youkuaiyun.com/xsckernel/article/deta...原创 2012-12-04 10:31:06 · 5934 阅读 · 0 评论 -
深入Linux网络核心堆栈--netfilter详解(整理)
目录1 - 简介 1.1 - 本文涉及的内容 1.2 - 本文不涉及的内容2 - 各种Netfilter hook及其用法 2.1 - Linux内核对数据包的处理 2.2 - Netfilter对IPv4的hook3 - 注册和注销Netfilter hook4 - Netfilter 基本的数据报过滤技术[1] 4.1 - 深入hook函数 4.2 - 基于接原创 2012-11-15 14:38:14 · 19471 阅读 · 3 评论