• 欢迎访问MACD实战投资网站,推荐使用最新版谷歌Chrome浏览器访问本网站,关注公众号 丁火甲木庚金 www.macd11.com/subscriptions

(原创)RHEL/CentOS 5.5上编译安装升级Linux 2.6.35.1新内核

原创总结 丁火 15年前 (2010-08-11) 7719次浏览 7个评论

昨天偶去Linux内核网站(http://www.kernel.org)上逛时,发现最新的Linux Kernel稳定版已经是2.6.35.1,近来内核版本更新好快哦。下图中的stable就是稳定版的意思:

于是决定找个时间编译升级CentOS 5.5的内核,CentOS 5.5所带的内核还是2.6.18.x系列,有点老了。因为之前偶编译过LFS与Gentoo,编译内核有一些经验了,所有这次还比较顺利。本次编译的系统是32位的,64位的稍有不同。下面的笔记在虚拟机与物理机中都验证通过,所有操作全部以root权限在终端进行。

下面是本次编译升级了到今天为止最新的稳定版内核2.6.35.1版的笔记总结

编译前的准备工作:

要成功地创建一个内核,需要安装下列组件:

yum groupinstall “Development Tools” #这样做会确定你拥有编译时所需的一切工具。
yum install ncurses-devel #这样才能让 make *config 这个指令正确地执行。
yum install qt-devel #如果你用 make xconfig 而不是 make gconfig 或 make menuconfig,才需要这样做。

1、下载新内核源码包:

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.1.tar.bz2
tar jxvf linux-2.6.35.1.tar.bz2
cd linux-2.6.35.1

2、下载内核标准配置文件:

wget http://www.macd11.com/code/config
mv config .config

3、编译内核:

make dep
注:选择编译进去内核的模块,默认回车即可。这一步如果系统时间不正确会提示“警告:检测到时钟错误。您的创建可能是不完整的。”的警告。解决方法:把时间改正确或者运行下面的命令再make

find . -type f -exec touch {} \;

make bzImage
make modules
make modules_install
make install

4、解压修改内核:

cp /boot/initrd-2.6.35.1.img /tmp/
cd /tmp/
mkdir newinitrd
cd newinitrd/
zcat ../initrd-2.6.35.1.img |cpio -i
rm -fr /tmp/initrd-2.6.35.1.img

vim init

找到这2段一样的,去掉其中1段重复的:

echo “Loading dm-region-hash.ko module”
insmod /lib/dm-region-hash.ko
echo “Loading dm-region-hash.ko module”
insmod /lib/dm-region-hash.ko

5、从新打包新内核:

find .|cpio -c -o > ../initrd
cd ../
gzip -9 < initrd > initrd-2.6.35.1.img
rm -fr /boot/initrd-2.6.35.1.img
cp initrd-2.6.35.1.img /boot
rm -fr /usr/src/linux-2.6.35.1.tar.bz2
rm -fr /usr/src/linux-2.6.35.1

6、设置从新内核启动系统:

vim /boot/grub/grub.conf

把default=1改为default=0

7、重新启动系统:

reboot

8、如图所示,启动成功,OK。


macd11.com 和 丁火甲木庚金 公众号版权所有丨如未注明 , 均为原创丨转载请注明原文链接。
喜欢 (0)
[sp91@qq.com]
分享 (0)

您必须 登录 才能发表评论!

(7)个小伙伴在吐槽
  1. 谢谢分享!我也找个时间试试~
    小马哥2010-08-18 09:16
  2. 你好! 我按你说的方法在笔记本(acer 4741G)上编译了2.6.36的内核,升级成功了,但是出现了一个错误,"eth0的物理地址与分配的不一致,进入系统后,上不了网,能识别网卡,但插入网线也没有反应,还是显示一个叉,希望能指点.
    tencool2010-11-16 15:09
    • eth0的物理地址与分配的不一致?这个错误还真没遇到过,编译内核时有提示什么错误吗?你自己手动修改过mac地址?
    • 我的电脑也是宏基的。。跟你的问题差不多。有人说是: 进入 /etc/sysconfig/network 或者/etc/sysconfig/network-scripts ,编辑eth0配置文件。比较在配置文件里面的Mac地址与输入ifconfig 输出的mac地址,如果两者不一致,统一为ifconfig输出的mac地址,然后重启 http://hi.baidu.com/yss1983/blog/item/403f4894e4583c7f55fb96aa.html
      来子2011-05-12 14:07
  3. 感谢!
    herofyf2011-01-07 15:14
  4. 求教个问题 为什么使用你的config文件就会生成system.map 我自己配置的就没有呢?
    zl2011-05-15 10:20