QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1593|回复: 8

RH9升级2.6.2内核的一点经验

[复制链接]
发表于 2004-2-6 22:38:19 | 显示全部楼层 |阅读模式
root在SCSI上时装个2.6.2还真...麻烦……

首先,除了地球银都知道的module-init-tool,还有一个mkinitrd也是比较重要的需要upgrade得东东。它的SRPM可以在这里找到:
http://at.rpmfind.net/opsys/linu ... -3.5.14-1.i386.html

下完后用下面的命令编译:
rpmbuild --rebuild mkinitrd-3.5.14-1.src.rpm
编译完后会生成一个二进制rpm包,一般在/usr/src/redhat/RPMS/i386下,用rpm -Uhv mkinitrd-3.5.14-1.rpm升级就可以了。
如果rebuild的时候提示少一个包,那就是dietlibc,可以在RHN找到的。

其次,如果root在SCSI上面,那最好把SCSI disk support和SCSI adapter drivers都编译到kernel里面,避免麻烦。后者很容易被漏掉。

注:上面这个连接好像break了,这里有编译好的rpm

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2004-2-6 23:45:06 | 显示全部楼层
顺大便问一句,哪位大大知道VMWare Workstation提供的SCSI Adapter应该用哪个驱动?
回复

使用道具 举报

发表于 2004-2-7 22:38:23 | 显示全部楼层
http://www.vmware.com/download/downloadscsi.html
回复

使用道具 举报

 楼主| 发表于 2004-2-8 01:43:30 | 显示全部楼层
那个是Windows客户操作系统的驱动……
好像只要选BusLogic的就可以了,启动的时候看到的。
回复

使用道具 举报

 楼主| 发表于 2004-2-8 10:48:14 | 显示全部楼层
又发现一个问题。
默认的新版本modules-init-tools安装在/usr/local/sbin下,而初始化的时候好像PATH里面没有加进这一项,或者是优先级不如/sbin,导致调用的modprobe还是旧版本的。有两种解决方法,一种是直接把新版本安装到/sbin,不推荐,建议保留原来的modprobe.
还有一种就是为各版本的kernel分配不同的rc.sysinit,然后修改2.6.2的脚本。

分配不同rc.sysinit的方法见http://www.linuxfans.org/nuke/mo ... ewtopic&t=48546

然后把rc.sysinit里面的所有modprobe的路径都改为/usr/local/sbin/modprobe
还有就是/etc/modprobe.conf里面的。
或者干脆统一把所有的/sbin/modprobe都改成modprobe,然后在rc.sysinit里面加入:PATH=/usr/local/sbin:$PATH
回复

使用道具 举报

 楼主| 发表于 2004-2-8 18:12:43 | 显示全部楼层

安装新版本的module-init-tools的具体方法

安装module-init-tools

如果用默认的configure,module-init-tools会被安装到/usr/local/sbin,这样的话,在初始化时就不会被调用到。其实module-init-tools提供很好的向下兼容性,如果发现内核版本是2.5.48以下的,那么会自动调用.old版本,比如modprobe会自动调用modprobe.old,当然前提是做了备份。所以在RH9下面,module-init-tools需要手工安装。这样就避免了上面修改rc.sysinit的麻烦。

复制module-init-tools-0.9.14.tar.bz2,解压到当前目录:
[code:1]        tar xjvf module-init-tools-0.9.14.tar.bz2[/code:1]
然后新建build目录:
[code:1]        mkdir module-init-tools-build[/code:1]
进入该目录,运行configure
[code:1]        cd module-init-tools-build
        ../module-init-tools-0.9.14
        CC="gcc296" \
          ../module-init-tools-0.9.14/configure[/code:1]
接着编译:
[code:1]        make[/code:1]
不要运行make install,手工安装modprobe以便保留Redhat自带的版本。
以下是旧版本的文件:
/sbin/depmod
/sbin/insmod
/sbin/modinfo
/sbin/modprobe: a symbolic link to insmod
/sbin/rmmod: a symbolic link to insmod
/sbin/lsmod: a symbolic link to insmod
旧版本中,除了depmod, insmod, modinfo,其余都是到insmod的符号连接。
新版本中,这些都是ELF文件,在2.5.47以下的内核中调用,会自动转调.old文件
所以,我们要重建这些文件名:
/sbin/depmod        ->        /sbin/depmod.old
/sbin/insmod        ->        /sbin/insmod.old
/sbin/modinfo        ->        /sbin/modinfo.old
/sbin/modprobe.old: a symbolic link to insmod.old
/sbin/rmmod.old: a symbolic link to insmod.old
/sbin.lsmod.old: a symbolic link to insmod.old
执行下面的命令完成上述操作:
[code:1]cd /sbin
mv depmod depmod.old
mv insmod insmod.old
mv modinfo modinfo.old
ln -s insmod.old modprobe.old
ln -s insmod.old rmmod.old
ln -s insmod.old lsmod.old
rm -f modprobe
rm -f rmmod
rm -f lsmod
cd -[/code:1]
然后安装现在的版本:
[code:1]cp depmod /sbin
cp insmod.static /sbin/insmod
cp modinfo /sbin
cp modprobe /sbin
cp lsmod /sbin
cp rmmod /sbin[/code:1]
测试通过,新版本的module-init-tools安装完成。
这里略过了新版本的man pages,需要的话可以自行安装。
回复

使用道具 举报

发表于 2004-2-10 01:01:16 | 显示全部楼层
[quote:8cd97a21b7="idler1984"]顺大便问一句,哪位大大知道VMWare Workstation提供的SCSI Adapter应该用哪个驱动?[/quote]

BusLogic.ko
回复

使用道具 举报

发表于 2004-3-7 06:29:05 | 显示全部楼层
收藏!
回复

使用道具 举报

发表于 2004-3-8 17:03:04 | 显示全部楼层
太好 拉~·!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 18:20 , Processed in 0.082164 second(s), 17 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表