编写驱动程序时,需要内核源码树的支持。内核源码树时从内核源代码编译得到的。下面开始构造内核源代码的步骤。以Ubuntu为例子。
1. 下载内源代码,位置www.kernel.org. (注意:源码树内核的版本要和驱动程序运行的目标平台的内核版本一致)
apt-cache search linux-source //搜索内核版本
apt-get install linux-source-2.6.22 //下载内核
tar xvf linux-source-2.6.20.tar.bz2 //解压内核
2. 配置内核
进入解压过的内核目录,开始配置内核 选择最快的原版的配置(默认)方式。
root@ www# make oldconfig
当然也可以使用其他配置方式,如 menuconfig, xconfig(必须有GTK环境)。反正不用剪裁什么,所以不管那种方式能配置它就行了。
3. 编译内核
如果你使用交叉编译器,则需要修改Makefile。 开始编译内核。(保证硬盘空间足够)
root@ www# make
root@ www# make bzImage
当然,第一个make也可以不执行,直接make bzImage。执行结束后,可以看到在当前目录下生成了一个新的文件: vmlinux, 其属性为-rwxr-xr-x。
root@ www# make modules // 编译模块
root@ www# make modules_install // 安装模块
执行结束后,会在/lib/modules下生成新的目录/lib/modules/2.6.22-14-generic/。 在编译驱动模块时,要用到这个路径下的build目录。
至此,内核编译完成。可以重启一下系统。