redhat9成功升级至2.6.36内核备忘

本文记录了一次将redhat9服务器升级到2.6.36内核的过程,涉及下载内核源码、升级gcc、解决编译错误、解决启动panic等问题。最终通过升级gcc解决动态链接器冲突,成功启动新内核。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一台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 ......

KERNEL panic!!!!!!!!!!!!      错误如下:

Init[1]: segfault at 21 ip 00000021 sp bf8624d8 orror 4 In init[
8048000+6000]
[    3.785218]  init used greatest stack depth : 6016 bytes left    
[    3.785451]  Kernel panic - not syncing: Attempte to kill init!
[    3.785541]  Pid: 1. comm: init Not tainte 2. 6 .36 #1<

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值