LinuxSir.cn,穿越时空的Linuxsir!

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

编译内核遇到的问题

[复制链接]
发表于 2008-1-21 12:38:28 | 显示全部楼层 |阅读模式
我按照置顶帖“Sarge 下一步一步编译 Debian 内核”里的方法
来编译内核,按照版主d00m3d的说明省去了以下步骤:
ln -s linux-2.6.22  linux
cd /usr/src/linux
源码包是2.6.22的,一路下来都很顺利,只有安装yaird_0.0.12-8bpo1_i386.deb时提示说没装dash,装了dash才把yaird装好。
     最后重启时未能成功引导,屏幕上的内容是
Uncompressing Linux... OK, booting the kernel.
等了好久没反应,死机状态,我觉得多半是initrd的问题,后来索性在menu.lst里加上
no initrd不用initrd,没有用。改用2.6.18.3 的内核源码包重新编译也是一样。请问我是否在make menuconfig配置内核选项时有致命的疏漏?还是别的其他原因呢?望有经验的朋友能指点一二,谢谢!
发表于 2008-1-21 13:16:00 | 显示全部楼层
楼主想说啥?
没必要严格的按照某个方法编译。make help看看就行了,我以前在FC上面可以,在Debian下还是可以。没有问题。
回复 支持 反对

使用道具 举报

发表于 2008-1-21 20:08:53 | 显示全部楼层
Post by simon22543;1809492
我按照置顶帖“Sarge 下一步一步编译 Debian 内核”里的方法
来编译内核,按照版主d00m3d的说明省去了以下步骤:
ln -s linux-2.6.22  linux
cd /usr/src/linux
源码包是2.6.22的,一路下来都很顺利,只有安装yaird_0.0.12-8bpo1_i386.deb时提示说没装dash,装了dash才把yaird装好。
     最后重启时未能成功引导,屏幕上的内容是
Uncompressing Linux... OK, booting the kernel.
等了好久没反应,死机状态,我觉得多半是initrd的问题,后来索性在menu.lst里加上
no initrd不用initrd,没有用。改用2.6.18.3 的内核源码包重新编译也是一样。请问我是否在make menuconfig配置内核选项时有致命的疏漏?还是别的其他原因呢?望有经验的朋友能指点一二,谢谢!

yaird 似乎久未更新,现在用 mkinitramfs 来做 initrd 可能会较好

initrd 就是将内核没有编入的(指编译成模块的)利用二次引导的方式加载,使系统能辨认相关的硬件或文件系统

重点并不在 initrd,而是内核里有没有启动时必要的支持,比如文件系统的支持,或者在移动硬盘启动时需要 SCSI/USB 之类的支持等,如果已编入有关内容,initrd 可以省却
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-22 15:48:35 | 显示全部楼层
多谢!我不改动目前使用的内核中文件系统配置再试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-22 20:16:44 | 显示全部楼层
d00m3d兄,我做了个试验,将menu.lst中目前正常内核的引导项(single mode)initrd部分改成no initrd,发现不能启动了。我在网上看过initrd 好像跟SCSI有关,可我机子不是服务器没有这类设备照理说是可以省却initrd的呀,还是耐心看看引导过程的知识吧。
按照原来编译内核的方法在现有/boot中config基础上稍微无关痛痒地动了动,去掉一些IPV6等东东,原封不动编译怕太不甘心呵呵……最后也是用mkinitrd.yaird来做了initrd.img……重启选择新内核居然成功了!
       以后就在此基础上再对内核进行痩身吧。
回复 支持 反对

使用道具 举报

发表于 2008-1-22 20:24:36 | 显示全部楼层
都说了嘛,如果内核已编入必要的支持,那麽就可以不用 initrd

你内核的配置取自 Debian 原来的,那麽很多支持都被编成模块了,也就是内核本身没有支持,你去掉 initrd 或者用 no initrd 当然不行了!

必要的支持上面已解释过了,好好的痩身吧 ;)
回复 支持 反对

使用道具 举报

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

本版积分规则

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