LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: dlgy

The kernel module can't be loaded correctly during the system booting

[复制链接]
 楼主| 发表于 2006-4-13 08:41:50 | 显示全部楼层
我又重新编译了一遍内核,这个问题似乎解决了,但是有些迷茫,因为我自己也不是很清楚到底怎么回事。

可能是因为我第一次编译内核的时候忘记了修改EXTRAVERSION,导致make modules_install时
覆盖了原来的/lib/modules/** 但是就算覆盖也应该没问题啊,用的就是新的嘛。(难道我当时混乱编译模块时错了?)

不过我还没有用scsi usb-cdrom来启动livecd,所以不敢肯定说就好用了,但是用dvd-rom启动没问题,没有出现这个模块加载错误的消息(以前有这个错误的),我想usb-cdrom启动起来的话也应该一样的吧。
回复 支持 反对

使用道具 举报

发表于 2006-4-14 07:12:09 | 显示全部楼层
DVD ROM 能启动并不代表USB CDROM 能启动,现在流传的 LiveCD 有很多都是不能从从 USB CDROM 启动的,能启动的只属少数

要从 USB CDROM 启动,关键在於内核的支持,以及系统启动时 init 程式能否辩认及挂载 USB CDROM 上的根分区,设置不当便会挂载失败,导致 kernel panic!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-14 10:32:57 | 显示全部楼层
老大说的对,不过我之前已经试验过,可以用usb-cdrom启动的,只不过启动过程中内核模块加载有错误(就是我上面说的)。
这个livecd本来是不支持USB CDROM 启动的,我修改了内核和和系统启动时 init 程式,弄了好几天才让他启动起来。
下面总结一下经验:
1.在内核里build-in scsi usb-cdrom的支持,注意,不能是模块加载形式(“支持初始化RAM盘的能力,及所有执行格式和文件系统模块,都必须直接编译进内核,不能采用可加载模块的方式”。)
2.在initrd.img 的linuxrc里,要在搜索硬件设备/dev/scd0(因为usb-cdrom系统认的是scsi设备,我的usb-cdrom放在第一个scsi接口)前,sleep 5 秒左右(我的机器是5秒,4秒都不行,不过我看跟机器没什么关系,因为我换了一个本本,配置比较低也是一样时间,估计是usb-cdrom(Panasonic,KXL-CB45AN,日货,不过客户提供的,我不想用也没办法。。。)本身的关系),进行硬件的初始化,否则无法加载该设备。
回复 支持 反对

使用道具 举报

发表于 2006-4-14 12:53:56 | 显示全部楼层
老大说的对,不过我之前已经试验过,可以用usb-cdrom启动的,只不过启动过程中内核模块加载有错误(就是我上面说的)。
这个livecd本来是不支持USB CDROM 启动的,我修改了内核和和系统启动时 init 程式,弄了好几天才让他启动起来。
You catch the point and make it, congratulations!
下面总结一下经验:
1.在内核里build-in scsi usb-cdrom的支持,注意,不能是模块加载形式(“支持初始化RAM盘的能力,及所有执行格式和文件系统模块,都必须直接编译进内核,不能采用可加载模块的方式”。)
我好像用过模块也行
2.在initrd.img 的linuxrc里,要在搜索硬件设备/dev/scd0(因为usb-cdrom系统认的是scsi设备,我的usb-cdrom放在第一个scsi接口)前,sleep 5 秒左右(我的机器是5秒,4秒都不行,不过我看跟机器没什么关系,因为我换了一个本本,配置比较低也是一样时间,估计是usb-cdrom (Panasonic,KXL-CB45AN,日货,不过客户提供的,我不想用也没办法。。。)本身的关系),进行硬件的初始化,否则无法加载该设备。
据说新版的内核已不用加 sleep 5 了,那个帖子可以在 Mini 版找找
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-14 13:32:23 | 显示全部楼层
阿,模块也可以阿?我这在linuxrc里面加载模块不行啊,我回去再试下。

我找了一下,不少,不过都是关于优盘启动的,老大说的新版的内核是什么版本阿?
回复 支持 反对

使用道具 举报

发表于 2006-4-14 18:05:02 | 显示全部楼层
你不是找了很多嘛?在这里:

http://www.linuxsir.cn/bbs/showthread.php?t=217714

优盘启动跟 USB CDROM 都是源出一致的。无他,皆因它们都是模拟作 SCSI 设备来使用的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-17 13:23:12 | 显示全部楼层
老大说的是这个参数吧,rootdelay=5
谢谢啦!


Sandr0
发帖时间: 06-01-18, 23:06
----------------------------------------------------------------------------
2.6.11以后的内核不需要这个延时补丁了

我用google怎么也搜不到2.6的能用的内核补丁,后来实在无奈,仔细研读了源代码里面的/init/do_mounts.c部分,发现源代码里本来就提供了一个rootdelay参数,可以设定加载根文件系统之前的延时时间,以秒为单位,一般在启动引导程序syslinux,grub,lilo中直接加一个rootdelay=5,肯定就可以了。
后来我在kernel.org上查了一下,好像是在2.6.11-rc2中加入的。
---------------------------------------------------------------------------------------------
回复 支持 反对

使用道具 举报

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

本版积分规则

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