如果用默认的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,解压到当前目录:
代码: tar xjvf module-init-tools-0.9.14.tar.bz2
然后新建build目录:
代码: mkdir module-init-tools-build
进入该目录,运行configure
代码: cd module-init-tools-build ../module-init-tools-0.9.14 CC="gcc296" / ../module-init-tools-0.9.14/configure
接着编译:
代码: make
不要运行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 执行下面的命令完成上述操作:
代码: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 -
然后安装现在的版本:
代码:cp depmod /sbin cp insmod.static /sbin/insmod cp modinfo /sbin cp modprobe /sbin cp lsmod /sbin cp rmmod /sbin
测试通过,新版本的module-init-tools安装完成。 这里略过了新版本的man pages,需要的话可以自行安装。
转载请注明原文地址: https://ibbs.8miu.com/read-16758.html