LinuxSir.cn,穿越时空的Linuxsir!

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

编译内核成功,但是无法启动,错误提示如下,请兄弟们给予指点或告知最近有最新内核的D

[复制链接]
发表于 2008-5-2 13:22:52 | 显示全部楼层 |阅读模式
我的系统是Debian4.0 r3,内核是2.6.18-6 686
因为无法驱动3945 ABG无线网卡,在网上查资料说在2.8.22 - 2.8.24的内核才能支持,在kernel.org上下载了2.6.24的内核,自定义配置和默认配置都试过编译了,都能成功编译,但是过程中有一些warning.启动时在中间就停下了,错误提示:
usbcore: registered new interface driver usbhid
drivers/usbhid/hid-core.c: V2.6: USB HID core driver

就是在这个位置停止的,尝试进行了四次编译,都是在这个位置停止,有时还会在mount root filesystem停止,我怀疑是挂载根文件分区时有问题,文件系统是EXT3,硬盘是SATA,可能是SATA硬盘驱动没有正常编译进去,可是我尝试过了把SCSI以及EXT3格式编译进内核,可是也不行.

请哪位兄弟指点一下需要在内核里编译哪些模块以支持SATA硬盘,或者告诉我在哪些DEB源里有最新内核的包,或者告诉我在2.6.18内核下如何支持3945ABG的无线网卡.谢谢谢谢,拜托.
发表于 2008-5-2 13:43:14 | 显示全部楼层
testing不知道支不支持
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-2 14:26:21 | 显示全部楼层
我用的是官方源和cn99的源,试过testing,可是没有2.6.24内核
回复 支持 反对

使用道具 举报

发表于 2008-5-2 14:46:00 | 显示全部楼层
apt-get dist-upgrade ?
回复 支持 反对

使用道具 举报

发表于 2008-5-2 15:26:51 | 显示全部楼层
你是传统方式 编译内核, 还是用 debian 的自定义编译内核, 看你上面说的 mount root...这个提示, 我以前 传统方式编译内核的时候出现过, 因为没有编译 initrd, 后来用 debian 的经典方式编译内核, 并且编译 initrd , 就成功了.... 应该是 initrd 的问题, 你传统方式编译内核, 用 mkinitramfs 这个程序生成 initrd 也行.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-2 16:52:56 | 显示全部楼层
我用的是debian的自定义编译内核的,倒数第二次的时候用的make-kpkg kernel_image,然后最后又执行过一次mkinitrd -o initrd-2.6.23 /lib/modules/2.6.24,但是也没启动起来,很奇怪,我还用以前的内核的config文件编译过一次,因为我看里面EXT3的默认选项是M,这样可以吗?我记得在网上看到的文档里都是写,如果内核配置里有关系统文件系统的,比如硬盘驱动和文件系统都要编译进内核的.

这样,哪位兄弟是用SATA硬盘的,请说一下在内核中是如果配置对SATA硬盘的支持的,我怀疑还是跟硬盘驱动有关系.
回复 支持 反对

使用道具 举报

发表于 2008-5-2 20:57:33 | 显示全部楼层
编译内核个人更喜欢使用置顶帖子中的方法来进行编译~~~

为了免去配置的麻烦,可以使用一个可以正常工作的内核配置文件作为要编译内核的.config文件,然后再make menuconfig做些必要的修改即可(基本上没有什么需要修改的)

记得源中有2.6.24的内核,也许可以安装一下,就省去自己编译安装的麻烦了~~
回复 支持 反对

使用道具 举报

发表于 2008-5-2 21:40:22 | 显示全部楼层
我教你个方法... 你先用 最开始的内核进去, 然后 lsmod 看下他加载了 什么 模块,  或者,  modconf 然后查看里面, 模块在内核的那个位置 加载 的, 比如 网卡模块: modconf 里面, 在

kernel/net 里面可以看见你的网卡 所加载的模块, 其余没有加载的 模块, 编译内核的时候, 不编译进模块 也行, 你那个 sata 模块, 你可以 在 kernel/drivers  下面相对应的地方看见, 你可以选着编译成模块 或者 直接编译进内核.... 用 modconf 查看加载了那些 模块 等选项可以在你不确定的情形下, 安全的编译内核, 这样 基本上可以成功.....

怎么会是 sata 驱动器的问题了, 你既然可以安装成功, 并且 编译内核, 那么 默认的 sata 驱动就 可以用, 所以, 你要是不确定的时候, 安装 modconf , 这个是查看 , 并且加载模块的 菜单选项, 你参照它来 配置, 我敢说 80% 会成功...

对了, 我觉得你后来 生成的 initrd 可能有问题吧, 为什么要那样生成了, make-kpkg 就可以生
成了, 可以这样阿:
make-kpkg --initrd kernel_image modules_image

这样就生成了 initrd  内核 还有 模块了, 之后 dpkg -i 安装就可以了, 并且安装的时候还会自动更新 grub , 知道吧...

还有, 要提醒你一点, 其实 initrd 并非必要的, 只要你把 开机启动的 所需要的所有 模块, 都编译进内核, 就可以不用 initrd ... 从你的, 那个错误:   mount root filesystem .. 很有可能就是 initrd 生成错误, 因为 你的 没有把 你的 文件系统编译进内核, 所以他要 initrd 的帮忙, 然而 却出错 ... ( 我第一次编译内核的时候出现过这样的情况, 并且就是 initrd 的错)..

提醒下: 最好将你的 文件系统直接编译进内核, 还有就是 你要是用 ext3 文件系统, 必须保证 ext2 是直接编译进内核的, 不然, 即使有 正确的 initrd 也不行吧( 没有实验过, 以前查资料的时候说要 ext2 要直接编译进去)..
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-3 00:14:00 | 显示全部楼层
谢谢楼上的各位,我先试试看,有问题再请教,谢谢.
回复 支持 反对

使用道具 举报

发表于 2008-5-3 08:17:06 | 显示全部楼层
testing里早就有2.6.24的内核了,不过能不能升级到2.6.24内核,得试试了,如果升级成功,不妨告知一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

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