|
|
编译内核碰到的错误总结
作者: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这个错误搞的差点连信心都没
有了. 自己不明白的编译选项还是默认比较好. |
|