Debian6驱动开发环境搭建1.安装相关工具
apt-get install-y gcc g++gdb make build-essential2.查看系统版本,并安装内核头文件
root@192.168.20.128:~/#uname -r2.6.32-5-686apt-cache search linux-headers-2.6.32-5-686apt-get install-y linux-headers-2.6.32-5-6863.查看内核头文件位置
看下会安装到哪:apt-cache show linux-headers-2.6.32-5-686有这么句:These files are going to be installed into/usr/src/linux-headers-2.6.32-5-686,and can be usedforbuilding modules
就是这里啦./usr/src/linux-headers-2.6.32-5-6864.好了,接下来写测试例子:hello,抄了http://bbs.chinaunix.net/thread-3570849-1-1.html
上的代码:文件1:hello.c#include
#include MODULE_LICENSE("GPL");
staticinthello_init(void)
{
printk(KERN_ALERT"Hello, world\n");return0;
}
static void hello_exit(void)
{
printk(KERN_ALERT"Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
文件2:Makefile:obj-m+=hello.o
KERNELDIR:=/usr/src/linux-headers-2.6.32-5-686PWD:=$(shell pwd).PHONY:test clean all
all:$(MAKE)-C $(KERNELDIR) M=$(PWD) modules
clean:rm-rf*.o*~core.depend.*.cmd*.ko*.mod.c.tmp_versionsm*.order*.symvers
test:insmod./hello.ko
rmmod hello
dmesg-c5.好了,现在测试开始,成功的话,就可以看到下面的文字了.如果有问题的话,向google大神请教吧.另外要看
root@192.168.20.128:~/cpp#makemake-C/usr/src/linux-headers-2.6.32-5-686M=/root/cpp modules
make[1]:Entering directory `/usr/src/linux-headers-2.6.32-5-686'CC [M] /root/cpp/hello.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/cpp/hello.mod.o
LD [M] /root/cpp/hello.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-686'root@192.168.20.128:~/cpp#make testinsmod./hello.ko
rmmod hello
dmesg-c
[673.500413] Hello,world
[673.504907] Goodbye,cruel world
root@192.168.20.128:~/cpp#6.最后.安装开发帮助文档
apt-get install-y manpages-kernel-dev linux-manual
man9printk
man9module_init
参考资料:http://bbs.chinaunix.net/thread-3570849-1-1.html