环境搭建
我的环境 windows 7 + Vmware Player 6.0 + fedora 18(linux 3.6.10) + gcc 4.7.2
以上所需内容均可以在网上非常容易下载到,除了window 7其他都可以到官方网站下载
一、install gcc
yum install gcc
如遇一下错误
Transaction Check Error:
file /usr/lib/audit from install of glibc-2.16-34.fc18.i686 conflicts with file from package audit-2.2.1-2.fc18.i686
则删除audit
yum remove audit
二、install kernel-devel包
执行make 如遇下面错误
[root@localhost modules_programming]# make -C /lib/modules/3.6.10-4.fc18.i686/build .
make: *** /lib/modules/3.6.10-4.fc18.i686/build: No such file or directory. Stop.
安装 yum install kernel-devel-$(uname -r)
三、到https://www.kernel.org/pub/linux/kernel/v3.x/去下载一份linux3.6.10的代码以便参考,由于内核源代码代码量特别大,文件特别多,所以可以去掉部分arch/下不关心的平台的代码,一般只保留x86的即可。代码产看工具推荐使用sourceinsight
注:
kernel devel和kernel source的区别:
kernel-devel包只包含用于内核开发环境所需的内核头文件以及Makefile
kernel-souce包含所有内核源代码
如果仅仅是用于你自己编写的模块开发的话,因为只需引用相应的内核头文件,所以只有devel包即可
如果你要修改现有的内核源代码并重新编译,那必须是kernel-souce
kernel-devel是用做内核一般开发的,比如编写内核模块,原则上,可以不需要内核的原代码
kernel则是专指内核本身的开发,因此需要内核的原代码