Smile 笑容

6次编译搞定vmware下linux内核升级

以前没搞过。所以做了很多次编译。之前查阅了文章,也发现没有谁愿意连续跟踪不同版本的内核升级编译处理指南,所以问题就出现了,每个人会去写一个不同版本的处理方式,都是总结性的,往往可能会遗忘些什么。本文适用于 linux 2.6.19.1 kernel 在vmware下的debian3.1编译和使用。

指南

下载最新的稳定版内核文件 http://www.kernel.org

cd /tmp

wget http://......

解压缩

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 了。

参考网址

2.4

How_to_Install_a_New_Kernel_of_Linux_on_a_VMware_Virtual_Machine.pdf

2.6

http://www.vipcn.com/InfoView/Article_83608.html