LinuxSir.cn,穿越时空的Linuxsir!

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

编译内核碰到的错误总结

[复制链接]
发表于 2005-1-2 19:59:19 | 显示全部楼层 |阅读模式
编译内核碰到的错误总结:


      虽然用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这个错误搞的差点连信心都没
有了. 自己不明白的编译选项还是默认比较好.
发表于 2005-1-15 07:44:53 | 显示全部楼层
兄弟,咱俩的配置是一样的哦。有缘阿!把你的.config 给我看看行不,我遇到你上面的问题,解决不了。谢谢了
回复 支持 反对

使用道具 举报

发表于 2005-1-15 11:51:52 | 显示全部楼层
提个建议
能不能改写一下,使用置顶帖子中,我提到的那种繁复的格式?谢谢!
回复 支持 反对

使用道具 举报

发表于 2005-1-15 21:25:38 | 显示全部楼层
我的编经过:2.6.10内核
修改/boot/config,把需要的加进,不需要的去掉。
make oldconfig
make (会自动执行make modules,不象2.6.9要make modules)
make modules_install
make install
搞定!
回复 支持 反对

使用道具 举报

发表于 2005-1-15 22:36:20 | 显示全部楼层
VFS:Cannot open root device "/dev/hda7" or unknown-block(0,0)
please append a correct "root=" boot option
Kernel panic:VFS: Unable to mount root fs on unknown-block(0,0)
今天编译内核碰到了这个问题。
似乎是<*> ATA/ATAPI/MFM/RLL support 这里没有编译好的原因。
<*>         Intel PIIXn chipsets support 这里编译进内核后就正常了
回复 支持 反对

使用道具 举报

发表于 2005-1-17 21:49:04 | 显示全部楼层
源码在哪里?
我在lib/modules/2.6.9-1.681_FC3/build下运行make xconfig保存后,make出现以下错误:
# make
  CHK     include/linux/version.h
  SPLIT   include/linux/autoconf.h -> include/config/*
  CHK     include/asm-i386/asm_offsets.h
make[1]: *** 没有规则可以创建“init/built-in.o”需要的目标“init/main.o”。 停止。
make: *** [init] 错误 2
回复 支持 反对

使用道具 举报

发表于 2005-1-17 22:43:06 | 显示全部楼层
源码要自己去下载,已有的源码是用来编译模块的
回复 支持 反对

使用道具 举报

发表于 2005-1-17 23:16:20 | 显示全部楼层
非常感谢上面的兄弟,我在编译内核的时候,FC3编译2.6.9标准内核,重起之后,内核我认为已经装载完毕,而不能继续,说找不到控制台,而不能INIT,不知道大家遇到过没有,请大家帮忙!
回复 支持 反对

使用道具 举报

发表于 2005-1-18 23:04:36 | 显示全部楼层
看不懂哦,把提示信息抄一点贴上来,什么叫做找不到控制台啊
装载完毕,而不能继续,说找不到控制台,而不能INIT,
回复 支持 反对

使用道具 举报

发表于 2007-2-28 20:45:40 | 显示全部楼层

在VMWARE中编译

老是因为没有选择pcnet32模块而使得无法在VMWare中使用网络适配器。这里顺便提醒众位F友
回复 支持 反对

使用道具 举报

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

本版积分规则

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