LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1949|回复: 17

2.6.16内核编译求助

[复制链接]
发表于 2006-4-3 00:53:08 | 显示全部楼层 |阅读模式
在IBM T42的笔记本上编译2.6.16内核,在起动新内核时出现下列错误:
VFS:Cannot open root device "hda9" or unknown-block(0,0)
Please append a correct "root="boot option
kernel panic - not syncing:VFS:unable to mount root fs on unknown-block(0,0)
分区是ext3,ext2直接编译进内核,ext3编译成模块等方式都试过,都出现相同错误。grub的起动文件应该也是正确,因为直接用arch/i386/defconfig做.config文件编译就可以起动,但很多的地方不能满足要求。内核配置文件见附件。(来来回回编译了几十次了。呜呜。。。安装IPW2200无线网卡需要内核支持啊)请各位大哥指点。谢谢。

本帖子中包含更多资源

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

x
发表于 2006-4-3 06:21:22 | 显示全部楼层
出错提示中不是已经所了要给“root”这个启动选项正确的值了嘛。
我估计你的grub.conf的"root="要么没有,要么就是“root=LABLE=/”之类的东西。试着把它改成你的/boot所在的分区试试看吧。我不用debian,FC4以前的Fedora以及FC4的Rawhide都有这个问题。但是在FC5就没有这个问题了。

另外,还有一种情况,我遇到过一次。那就是ext3和ext2的问题。当时是系统不能正确识别出ext3的分区,每次都调入ext2的模块。所以,我只好把ext3编入内核,而ext2只在内核中留了个入口。我相信2.6.16的内核应该没有这个问题。我现在的内核是2.6.16.1。
回复 支持 反对

使用道具 举报

发表于 2006-4-3 08:18:39 | 显示全部楼层
将ext3编译进内核,你的配置文件中是模块。

如果你是IPW2200的网卡,则可以将ipw2200编译成模块,目前的配置是不编译该模块。

还有,你生成initrd时最好使用yaird来生成,我用的是2.6.15的内核,启用了udev,我用mkinitramfs生成的镜像文件无法正常启动,用mkinitrd.yaird和mkinitrd生成的镜像文件都可以正常启动。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-3 09:01:37 | 显示全部楼层
"root="选项如下 "root=/dev/hda9 vga=792"应该没有错。
ext3编译进内核也是同样的错误。还有IPW2200编译成模块不能用,不过手动安装ipw2200的驱动才可以正常工作,所以没有编译成模块。
生成initrd时我用mkinitrd -o initrd-img.2.6.16 2.6.16的方式生成。
回复 支持 反对

使用道具 举报

发表于 2006-4-3 09:18:12 | 显示全部楼层
试试使用yaird来生成initrd。
回复 支持 反对

使用道具 举报

发表于 2006-4-3 09:28:11 | 显示全部楼层
无线网卡不能启动的原因是没有firmware,Documentation/networking/README.ipw2200中说得很清楚,需要自己下载firmware并放到指定目录下
--------------
5.  Firmware installation
----------------------------------------------

The driver requires a firmware image, download it and extract the
files under /lib/firmware (or wherever your hotplug's firmware.agent
will look for firmware files)

The firmware can be downloaded from the following URL:

    http://ipw2200.sf.net/
-----------------------
如果你是使用的普通IDE硬盘且使用的是ext3分区格式,应该把ext2和ext3都编译进内核中。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-4 08:46:55 | 显示全部楼层
笔记本的硬盘应该是普通的IDE硬盘,已经将ext3和ext2都编译进内核了,但还是出现同样问题。
试过用yaird来生成initrd-img文件,但都提示找不到相应的modules。但用mkinitrd来生成却不会出现错误提示。是不是yaird还需要别的文件支持?谢谢各位的帮助。
回复 支持 反对

使用道具 举报

发表于 2006-4-4 09:09:26 | 显示全部楼层
修改配置,增加
CONFIG_CRAMFS=m
回复 支持 反对

使用道具 举报

发表于 2006-4-4 10:44:53 | 显示全部楼层
如果是生成initrd,还应该将cramfs的支持编译进内核,缺省是编译成模块。
CONFIG_CRAMFS=y
回复 支持 反对

使用道具 举报

发表于 2006-4-4 17:11:16 | 显示全部楼层
这种情况有两个选择:
1.用initrd  像楼上说的把cramfs选Y
2.不用initrd 但要把所用的文件系统都Y上还有一条是要把硬盘信息(ATA那向个选项)Y上
少一个也不行
回复 支持 反对

使用道具 举报

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

本版积分规则

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