LinuxSir.cn,穿越时空的Linuxsir!

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

[转贴] 编译内核碰到的错误总结

[复制链接]
发表于 2006-2-15 16:50:27 | 显示全部楼层 |阅读模式
编译内核碰到的错误总结

作者:fantasyginge
原文:http://www.linuxsir.cn/bbs/showthread.php?t=168246


虽然用linux也比较长了,编译内核也不是第一次.但是这两天碰到了很多
问题,也学到了不是东西.这两天我编译了几个内核,kernel2.6.8,kernel2.6.9,
kernel2.6.10;在debian下编译过,在fedora3编译过.出现了一大堆问题,几乎
是论坛上能搜到的都差不多给我碰到了.

先说一下我的硬件配置:

KT400 Soltek主板
Athlon xp 2000+
Nvidia MX440显卡
日立硬盘 IDE接口
logitech usb鼠标,键盘套装.

软件配置:
NTFS 格式分区里装有windows XP
Reiserfs格式分区里装 linux fedora core 3
(debian是hiweed debian 0.55 desktop)

编译的步骤:
make xconfig 或者make menuconfig...
make &&make modules_install && make install

碰到的错误如下:
1)Kernel panics

(1)init 错误
一般是grub或者lilo错误,这里我给出我的grub配置

title Fedora Core (2.6.10)
root (hd0,7)
kernel /boot/vmlinuz-2.6.10 ro root=/dev/hda8 rhgb quiet
initrd /boot/initrd-2.6.10.img

fedora用户应该很少碰到这种错误,因为fedora不需要用户自己编辑grub.
而debian就要用户自己编辑.

(2)其他的kernel panic
大多数都是因为系统的文件系统格式支持没有编进内核,相应的ext2,
ext3,reiserfs的不能不选或者只是选模块.
另外有一种特殊的kernel panic由于在不同linux版本间共享.config文
件引起的,这个给我碰到了.
例如,在debian下编译内核得到的.config文件不能直接copy到fc3下直
接编译,反之亦然.表现为

kernel panic:VFS ,umable to mount root, unknow device block(3,8)

redsea兄对此解释如下:fedora 的 initrd 格式是 ext2, debian 是 cramfs,
fedora 的kernel config 没有将 cramfs 编译到内核, 而是作为模块, 如果
你同时又用 initrd, 当然就无法 mount initrd 了.
反过来也一样.

2)无法起动x
一般是block device -> graphics suport -> suport for frame buffer device
没有编译进入内核.根据我的情况,还有可能的原因就是选了nvidia riva并且将
其编译进内核,更将riva的sub选项lots of out put debug.当然如果是nvidia 的
riva显卡不在这个范围. 对于我的这一款显卡,不应该选riva这个选项,不然nvidia
驱动跟riva会有冲突.

3)无法关机,用shutdown -h 命令和halt -p都无法关机.
一般是把电源管理选进内核,另外就是只选apm而没有选apci.

4)光鼠标虽然灯亮了,但是鼠标无法驱动.
没有选usb host controller driver

5)主板自带声卡无法识别识或者无法多音频输出
第一个原因当然是没有选声卡支持了,其次就是没有选alsa支持.另外一个比
较疑惑的就是pci devices 那里如果没有选via ac 97支持的话是无法启用声卡的.

总结:编译内核正确进行,不然有些硬件就用不了,或者进不了系统.这是比较
郁闷的.上述只是我编译内核碰到的一些问题.不一定对所有人都有效.
希望兄弟姐妹们继续补充,上面说的有错误的也欢迎指正! 以便大家编译内核时到问题的时候有个参照,也不用搜的那么辛苦了,因为我自己碰到问题时搜的很辛苦!找不到
解决方法的时候确实很痛苦,我就因为kernel panic vfs这个错误搞的差点连信心都没
有了. 自己不明白的编译选项还是默认比较好.
 楼主| 发表于 2006-2-15 16:55:41 | 显示全部楼层
今天就碰到这个了:
kernel panic:VFS ,umable to mount root, unknow device block(3,8)

看了上面的文章,才知道,我用了xfs,只编译成了module,而又没有用initrd.

如果不用initrd,就要把/ 的文件系统编译进内核,不能是模块,
如果用了initrd,要把initrd的文件系统编译进内核,/ 文件系统可以是模块,由initrd加载.
回复 支持 反对

使用道具 举报

发表于 2006-2-17 09:29:28 | 显示全部楼层
在Linux中总有学不完的东西,每天都充满了激情!!哈哈!
回复 支持 反对

使用道具 举报

发表于 2006-8-29 22:58:35 | 显示全部楼层
天天也充满了困扰 !!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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