以前没搞过。所以做了很多次编译。之前查阅了文章,也发现没有谁愿意连续跟踪不同版本的内核升级编译处理指南,所以问题就出现了,每个人会去写一个不同版本的处理方式,都是总结性的,往往可能会遗忘些什么。本文适用于 linux 2.6.19.1 kernel 在vmware下的debian3.1编译和使用。
指南
下载最新的稳定版内核文件
cd /tmp
wget
解压缩
tar xjvf linux-26.19.1.gz
移动到src目录下
mv linux-2.6.19.1 /usr/src
cd /usr/src/linux-2.6.19.1
准备内核配置
注意:通常的教程会建议copy boot下的旧配置,但是若版本跨幅度比较大,不要这么做,会导致一些不必要的问题,比如无法找到新的module之类,所以跨大版本号重新创建这个配置是有必要的
make menuconfig
在vmware环境下有几个点是一定要选的,并且要选择编译到内核中。
通常vmware的虚拟机默认是 SCSI接口的硬盘,所以要选择支持SCSI硬盘
Device Drivers --->SCSI device support ---><*> SCSI disk support
Device Drivers --->SCSI device support --->SCSI low-level drivers ---> <*> BusLogic SCSI support
文件系统支持
ext3 相关的文件系统支持都要选成星号
网卡支持
Device Drivers ---> Networking support --->Ethernet (10 or 100Mbit) ---> <*> AMD PCnet32 PCI support
最后记得保存配置。
编译 fakeroot make-kpkg -revsion=debian.3.1 kernel_image
编译成功后会在 上层目录声称一个 deb包
cd ..
dpkg -i kernel-2.6.19.1-debian.3.1.deb
重新安装相同版本的内核会提示是否停止,默认是停止,注意察看提示
重新编译前应该清理一下,否则我实验的是编译速度很快,但是要调整的地方似乎没有调整
清理
make-kpkg clean
安装包除了有效的版本外,编译的无效版本应立即删除掉,免得以后搞混和占用空间
最后总结
我使用的是 T2050的cpu,大约1个小时可以完成内核编译。
编译的时候我的选择是看电影或听歌。
内核配置的时候,* 表示编译进内核, M 表示编译成模块
vmware环境下,前面建议的均是编译入内核,而不是编译成模块。
2.6.19以后,编译进内核后,似乎不用在 mkinitrd 了。