转载:http://os.51cto.com/art/201101/242682.htm
Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。
现在网上许多硬件如声卡,网卡,内置modem等驱动都是针对rh7.3的。而大家的linux系统却都更新为rh8.0了。一般来讲,这些驱动是无法在rh8.0下正常使用的。解决的办法是:把rh8.0的内核换成rh7.3的。其方法如下:
1、取得rh7.3的内核rpm包(kernel-2.4.18-3.i686.rpm)。有两种徒径:从rh7.3安装盘中取得或从网上获得:
http://rpmfind.net/linux/redhat/7.3...4.18-3.i686.rpm
2、进入rh8.0并以root登陆,安装kernel包:
rpm -ivh --nodeps --force kernel-2.4.18-3.i686.rpm
#注意:后面的参数一定是-ivh,如果是-Uvh则会覆盖现有的内核!
3、修改grub或lilo配置文件。这里以grub为例
(如果用lilo方式启动,修改/etc/lilo.conf后再执行lilo,其内容和menu.lst基本相似):
打开/boot/grub/menu.lst,原来内容如下:
default=2
timeout=10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
root (hd0,1)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
title Windows XP
rootnoverify (hd0,0)
chainloader +1
title Mandrake Linux 9.0
root (hd0,7)
kernel (hd0,7)/boot/vmlinuz ro root=/dev/hda8
initrd (hd0,7)/boot/initrd.img
title Mandrake Linux 9.0 with ESS
root (hd0,7)
kernel (hd0,7)/boot/vmlinuz-2.4.18-3 ro root=/dev/hda8
initrd (hd0,7)/boot/initrd-2.4.18-3.img
title FreeBSD 4.7
rootnoverify (hd0,2)
chainloader +1
然后再在第三行后插入:
title Red Hat Linux (2.4.18-3)
root (hd0,1)
kernel /boot/vmlinuz-2.4.18-3 ro root=LABEL=/
initrd /boot/initrd-2.4.18-3.img
当然你的分区与我的也许不一样,你可根据需要修改。这样可重启选取Red Hat Linux (2.4.18-3)来启动。这时你可安装for rh7.3的驱动了。
读懂上面文章,你就可以亲手换内核,强大吧,快跟朋友分享吧。
2==============================================
我在虚拟机中换过高版本的内核,你试试看好使不。
1、下载所需内核,解压后的目录在这以LINUX_DIR代替。
2、使用现有配置文件来配置内核,cp /boot/config-xxxxxx LINUX_DIR/.config
3、make menuconfig 根据需要来定制内核。低版本使用高版本的配置可能会有的配置项错误,你自己根据具体情况来配置。
4.make bzImage.编译内核,编译完在LINUX_DIR/arch/你的体系/boot下生成bzImage文件
5.make modules 编译内核模块
6.make modules_install 安装内核模块,安装完成后会在/lib目录下生产一个文件夹,以你内核版本号命名的,如2.6.32
7.mkinitrd initrd-$version $version ,version 必须是上一步在/lib目录下生成的文件夹名,如2.6.32
在LINUX_DIR 下会生产initrd文件initrd-$version
8、cp LINUX_DIR/initrd-$version /boot
9、cp LINUX_DIR/arch/x86/boot/bzImage /boot/你对bzImage的重命名。如vmlinux-2.6.23
10、vi /etc/grub.conf
把从title XX开始这三行复制在这三行下粘贴。修改如下内容:
title 自己命名,会在开机画面提示你选择哪个内核,如 mylinux
kernel 你拷贝到/boot下的bzImage 重命名后的文件名 ,如vmlinux-2.6.23 . ro 后的不用更改。
initrd 你拷贝到/boot下的initrd文件名。如/initrd-2.6.23
reboot后启动时会在操作系统选择中看到title后你自己的命名(mylinux).
==================================================================