开始认真学习经典的ldd3 -- Linux Device Driver
首先提醒同学们特别是新手,ldd3基于内核2.6.10,所以自己最好也装这个版本,至少不要高太多。
我盲目使用了最新的2.6.36,发现书上的代码从第三章开始一编译就有很多错,结果额外多花了很多精力,到处修改来适应内核的更新。
在我的旧xp上装个虚拟机,virtualbox,从官网下载3.2.10,安装很容易。
到fedoraproject.org下载一个Fedora-14-i686的iso文件,装到virtualbox里面,就有了玩内核的专用系统了。
不过这个安装版本太简陋了,缺了很多东西,连gcc都没有。好在自己安装也很快,少了什么直接yum就行了。我自己装了gcc、ncurses、perl
编译现在的内核模块,要求必须有编译好的内核源码树,而且编译的内核版本必须和运行的内核版本一致。
一种办法是直接用刚安装的版本的内核源代码,yum install kernel-devel-2.6.35.6-45.fc14 注意一定要指定正在运行的这个版本.
另一种办法就是用一个通行版本.这是书上推荐的方法,所以我就这么做了,而且正好试一下内核升级。
从kernel.org下载最新版本的内核源代码,2.6.36,然后解压. 很多人解压到/usr/src,其实放到一般用户的目录里也可以。然后
make defconfig
make menuconfig 装fedora的时候给做了ext4系统,但是内核的缺省配置不支持ext4,所以要在这里加上。在File System里面。
make
make modules 从这一步开始必须要用root
make modules_install
make install
重启, 用uname -a确认一下,升级到2.6.36啦!