升级RH ES3内核至2.6.16.20,N次失败,高手帮看一眼
RH ES3内核with mkinitrd-3.5.14-1升级至2.6.16.20,N次失败,高手帮看一眼
搞了几天,有些郁闷了,每次都是这样的提示,什么意思,到底是错在哪里?
搞定了,参考文档如下:
首先说下我的环境win2kpro+Vmware(虚拟scsi的Redhat9)能联网
然后说说需要的文件和要素:
1.Linux-2.6.0.tar.gz
2.module-init-tools-3.2-pre9.tar.gz
3.mkinitrd-3.5.14-1-i386.rpm
4.不怕失败的心
下面说说详细的步骤和作法:
[ljjk@ljjk ljjk]#wget http://www.kernel.org/pub/linux/ ... it-tools-3.2.tar.gz
[ljjk@ljjk ljjk]#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.0.tar.gz
[ljjk@ljjk ljjk]# wget ftp://ftp.mbl.is/pub/fedora/1/i3 ... d-3.5.14-1.i386.rpm
现在软件具备了,下一步就是开始具体的做了:
[ljjk@ljjk ljjk]#cp module-init-tools-3.2.tar.gz /usr/src
[ljjk@ljjk ljjk]#cp linux-2.6.0.tar.gz /usr/src
[ljjk@ljjk ljjk]#cp mkinitrd-3.5.14-1.i386.rpm /usr/src
[ljjk@ljjk ljjk]#cd /usr/src
[ljjk@ljjk src]#tar zxvf module-init-tools-3.2.tar.gz
[ljjk@ljjk src]#tar zxvf linux-2.6.0.tar.gz
[ljjk@ljjk src]#rpm -Uvh mkinitrd-3.5.14-1.i386.rpm
[ljjk@ljjk src]#rpm -qa|grep initrd
mkinitrd-3.5.14-1-i386
[ljjk@ljjk src]#cd module-init-tools-3.2
[ljjk@ljjk module-init-tools-3.2]#./configure --prefix=/
[ljjk@ljjk module-init-tools-3.2]#make moveold
[ljjk@ljjk module-init-tools-3.2]#make
[ljjk@ljjk module-init-tools-3.2]#make install
[ljjk@ljjk module-init-tools-3.2]#cd ..
[ljjk@ljjk src]#tar zxvf linux-2.6.0.tar.gz
[ljjk@ljjk src]#cd linux-2.6.0
[ljjk@ljjk linux-2.6.0]#make mrproper
[ljjk@ljjk linux-2.6.0]#make menuconfig
其实可以根据自己的需要进行选择!我的是scsi虚拟硬盘。
下面着重讲几个重要的配置:
* 关于"Loadable Module support"选项, 一定要选上"Module unloading"和"Automatic kernel module loading"这两个选项.
* 关于"Processor type and features"选项, 一定要选上"Preemptible Kernel"选项, 这是2.6.x内核优于2.4.x内核的重要原因之一.
* 关于"Block Devices"的配置, 一定要选上对loopback和ramdisk的支持.
* 关于"Multi-device support(RAID and LVM)", 要选上"device mapper".
* 关于"Input device support", 记得要选上"Keyboards"和"Mice"的支持.
* 关于"Graphics support", 要选上对frame buffer的支持.
* 关于ALSA, 要选上"OSS API emulation"选项. OSS可以不用了.
* 关于USB, 能选的都选上吧
* 文件系统 ,请务必要选中ext3文件系统,
File systems--->
以上三项一定要选上,而且要内建(即标*). 这个非常重要,在配置完后一定要检查一下.config文件有没有"CONFIG_EXT3_FS=y"这一项. 如果不是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在运行内核时就会遇上以下错误: pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed
* 网卡驱动
请务必把自己网卡对应的驱动编译进内核,比较普遍的网卡是realtek 8139,以下就是这种网卡的配置,以供参考
Device Drivers--->
Networking support--->
Ethernet (10 or 100Mbit) --->
<*> RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)
<*> RealTek RTL-8139 PCI Fast Ethernet Adapter support
* 声卡驱动
也要选择自己声卡对应的驱动编译进内核,比较普遍的声卡是i810_audio,以下就是这种声卡的配置,以供参考
Device Drivers --->
Sound --->
<*> Sound card support
Advanced Linux Sound Architecture --->
<*> Advanced Linux Sound Architecture
<*> Sequencer support
< > Sequencer dummy client
<*> OSS Mixer API
<*> OSS PCM (digital audio) API
<*> RTC Timer support
PCI devices --->
<*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111
Open Sound System --->
< > Open Sound System (DEPRECATED)
注意,如果用vmware进行编译,那么需要注意一些地方:
如果你在vmware下重新编译内核,硬盘用的是scsi的,以下选项必选:
Device Drivers --->SCSI device support ---><*> SCSI disk support
Device Drivers --->SCSI device support --->SCSI low-level drivers ---> <*> BusLogic SCSI support
可以
[ljjk@ljjk linux-2.6.0]#make bzImage
可以
[ljjk@ljjk linux-2.6.0]#make modules
[ljjk@ljjk linux-2.6.0]#make modules_install
最后
[ljjk@ljjk linux-2.6.0]#make install
最后:
我使用的grub启动系统,那么将 /boot/grub/grub.conf 中 linux2.6域中
kernel /vmlinux-2.6.14.2 项后面的 ro root=LABEL=/ 这个参数去掉,然后就可以用了
[ljjk@ljjk linux-2.6.0]#cd /boor/grub
[ljjk@ljjk linux-2.6.0]#vi grub.conf
然后进行相应的修改。
[ljjk@ljjk linux-2.6.0]#reboot
之后选择升级后的2.6内核的启动。
接着就成功了!
[ 本帖最后由 lihangel 于 2007-1-17 00:51 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个2.6.16.20能编译成功吗?我在AS4上面试了多少回了,就是启动不了,编译、安装都没问题,就是起不了,现在用这个版本内核一启动,就停在BOOT KERNEL处,然后就死机了,按什么键都没反应,不知是怎么回事?请高手指点一下
缺了 mptbase.ko