有一台linux服务器使用RH9, 一直没有升级,最近需要装oracle,而且服务器有大量的服务应用,比如ftp,nfs,svn代码仓库,webserver,防火墙配置,LVM1,等等,重装可能更复杂。所以考虑升级了。没想到过程一点都不简单。
首先下载了内核源码,最新版2.6.36,10月20日release的。我们都热爱新版本的软件不是吗:-)
首先下载了2个可能用到的软件包,最重要的,module-init-tools-3.12.tar.bz2, mkinitrd-4.2.0.3.tar.bz2,make-3.81或3.82其他不需要。注意,升级gmake在内核的Change中提到了,事实也是,不升级会报一个
经过一番仔细配置,make menuconfig完成。
make,编译内核遇到错误,错误为:
/usr/src/linux-2.6.35.7/arch/x86/include/asm/arch_hweight.h: In function `__arch_hweight32':
/usr/src/linux-2.6.35.7/arch/x86/include/asm/arch_hweight.h:29: parse error before string constant
看看源码,直接修改
/usr/src/linux-2.6.35.7/arch/x86/include/asm/arch_hweight.h:29行,
: "="REG_OUT (res)
为
:"=a" (res)
编译没问题了,看来gcc3.2已经没法编译像"="REG_OUT的合法代码,但Changes中仍然说gcc3.2可以。只能摇头作罢。我在csdn回复了一个网友的提问,他遇到此问题,内核为2.6.35-*。但事实证明,事情没那么简单!后面再说。编译完成后,make modules_install install; reboot,在grub界面选择2.6.36 ......
KERNE