LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 小wing

编译2.6.15.2内核时碰到问题了,请大家帮帮忙(疯了,又失败了!!!)

[复制链接]
发表于 2006-2-7 21:06:03 | 显示全部楼层
Files system =>
                       Miscellaneous filesystems =>   
                                                           <M> Compressed ROM file system support (cramfs)      
不过我好像是选的是M耶
呵呵
自己捣鼓吧
呵呵

http://ary.chiname.cn/107320.asp
这个人写的不错
可惜就是没写完
如果写完了中国人编译linux内核基本就没有什么问题了
你可以google一下
不过2.6的内核指南全而精的还真不多见
回复 支持 反对

使用道具 举报

发表于 2006-2-8 00:54:13 | 显示全部楼层
自己编译内核往往是在充分了解自己机器硬件配置的基础上,将内核编译成单块式的;而发行版所带的内核则是为了保证最大限度的通用性而将内核编译成模块式的,在系统启动时检测硬件,需要什么模块就临时加载什么模块,initrd-img实际上就是一个模块的包,内核在启动时可将其载入内存成为一个内存文件系统,内核将其作为临时的根文件系统并从中搜索载入内核模块。也就是说当自己清楚地知道自己需要什么内核特性功能、驱动程序等的时候,则可以将他们全部编译进内核,从而省去用initrd-img 的种种麻烦,亦可提高启动速度。在选择内核特性功能时要依据自己的应用目标和机器配置,而驱动程序要与自己的硬件相对应,选择太多的内核特性和功能,加入了太多的驱动程序会使自己的内核变的臃肿而低效,对于那些非必需的但有可能用到的内核特性和功能以及驱动程序则应该编译成模块而不要加入内核。

在Debian中编译内核有标准方式和传统方式之别,标准方式即制作内核.deb的方式,传统方式则是linux源代码tarbll中README文件所提供的方法。一般而言自己编译内核用传统方式就行了。

编译内核是一个系统性的任务,需要你具备一定的操作系统原理、Linux内核原理、硬件、以及一些其他辅助工具方面的知识,不需太深,只要有一个基本的了解就行。建议先不要急着编译内核,先学习一些基本的知识,有了一定的底蕴再说,贸然地、无目的地、无目标地编译内核不仅会徒然地浪费很多时间,而且还会给自己带来很多麻烦和烦恼。编译内核也是一门技术,需要在练习和总结中提高,编译出一个稳定、高效、无赘余的内核实属不易,失败随时都会发生,不要气馁。

多学习、多实践、多研究、多分享,要踏踏实实不要好高骛远——愿与大家共勉之!
回复 支持 反对

使用道具 举报

发表于 2006-2-8 11:28:09 | 显示全部楼层
你先试试默认的选项能不能起来
回复 支持 反对

使用道具 举报

发表于 2006-2-8 14:51:31 | 显示全部楼层
我的做法是:
安装deb包以后,再
mkinitrd -o /boot/initrd-2.6.15-2  2.6.15-2
然后,vi /boot/grub/menu.lst
添加
initrd   initrd-2.6.15-2  2.6.15-2
回复 支持 反对

使用道具 举报

发表于 2006-2-8 15:05:42 | 显示全部楼层
Post by 小wing
在下是初次转用Debian,用的系统是Debian 3.1r1。编译2.6.15.2内核时整个编译过程已经完成,而且也作成了deb包。只是在安装了这个包之后,确认了grub.conf中已经被添加了新内核的引导信息后再次重启时碰到了下面的出错信息:

VFS: Cannot open root device "hda10" or unknown-block(0,0)
Please append a correct "root" boot option
Kernel panic - not sysncing: VFS: Unable to mount root fs on unknown-block(0,0)

看了这个信息后,我自作聪明地将grub.conf中的root=/dev/hda10改成了RH中常见的root=LABEL=/,但是修改之后再重启还是同样的问题,只不过错误信息中变成了Cannot open root device "LABEL=/"了。

这样的问题,我没有见到过,不知该如何处理,还请各位达人们帮忙解决一下,十分感谢~~~
我编译时也碰到了同样的显示问题,我将ide的驱动支持编译进了内核而不是作为模块
Ata/atapi/mfm/rll/support 一栏中只要是通用的我都是编译进了内核,结果就可以了.哪个问题就消失了,不过由于声卡驱动没有选好,mplayer不能播放电影了,但是bmp可以播放mp3,
<*> ATA/ATAPI/MFM/RLL support                                                                  │ │
  │ │                    <*>   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support                                      │ │
  │ │                    ---     Please see Documentation/ide.txt for help/info on IDE drives                           │ │
  │ │                    [ ]     Support for SATA (deprecated; conflicts with libata SATA driver)                       │ │
  │ │                    [ ]     Use old disk-only driver on primary interface                                          │ │
  │ │                    <*>     Include IDE/ATA-2 DISK support                                                         │ │
  │ │                    [ ]       Use multi-mode by default                                                            │ │
  │ │                    <*>     Include IDE/ATAPI CDROM support                                                        │ │
  │ │                    <M>     Include IDE/ATAPI TAPE support (EXPERIMENTAL)                                          │ │
  │ │                    <M>     Include IDE/ATAPI FLOPPY support                                                       │ │
  │ │                    <M>     SCSI emulation support                                                                 │ │
  │ │                    [ ]     IDE Taskfile Access                                                                    │ │
  │ │                    
  •      IDE Taskfile IO (EXPERIMENTAL)                                                         │ │
      │ │                    ---     IDE chipset support/bugfixes                                                           │ │
      │ │                    <*>     generic/default IDE chipset support                                                    │ │
      │ │                    
  •      CMD640 chipset bugfix/support                                                          │ │
      │ │                    [ ]       CMD640 enhanced support                                                              │ │
      │ │                    <M>     PNP EIDE support                                                                       │ │
      │ │                    
  •      PCI IDE chipset support                                                                │ │
      │ │                    
  •        Sharing PCI IDE interrupts support                                                   │ │
      │ │                    [ ]       Boot off-board chipsets first support                                                │ │
      │ │                    <*>       Generic PCI IDE Chipset Support                                                      │ │
      │ │                    < >       OPTi 82C621 chipset enhanced support (EXPERIMENTAL)                                  │ │
      │ │                    < >       RZ1000 chipset bugfix/support                                                        │ │
      │ │                    
  •        Generic PCI bus-master DMA support                                                   │ │
      │ └────────────────────┴(+)────────────────────────────────────────────
  • 回复 支持 反对

    使用道具 举报

    发表于 2006-2-8 15:13:45 | 显示全部楼层
    查找内核编译选项
    可以用make menuconfig
    然后在里面按/
    回复 支持 反对

    使用道具 举报

     楼主| 发表于 2006-2-8 17:01:16 | 显示全部楼层
    感谢各位,我今晚再来尝试一下~~~
    回复 支持 反对

    使用道具 举报

     楼主| 发表于 2006-2-8 19:39:53 | 显示全部楼层
    再次光荣地失败了,要好好总结一下了:

    首先先说可疑度较大的cramfs文件系统,经过检查,由于我将原来2.6.12-1的config文件直接拿来使用,在这时的默认选项就是将cramfs直接编译进内核。所以应该不是cramfs的问题。

    第二个可能问题就是ext2和ext3。每次编译内核时我都十分小心将它们全部编译进了内核,所以这种错误也不存在。

    下面就是ide驱动支持问题。本来我的确也没有太重视这个,后来看到了nkbai兄的跟帖,这次编的时候也格外小心,也是只要是通用的IDE支持就全部编进内核。

    我所知道的最后一个可疑点就是initrd了,所以这次我不单是自己做initrd,而且不用debian原来提供的mkinitrd,而是用的是最新的mkinitrd.yaird来做的,但似乎问题也没有解决。

    以上,就是这一阶段的小结。没想到在Debian下编一个内核居然如此之麻烦,非常郁闷。希望各位朋友能够继续帮我想办法,共同学习~~~
    回复 支持 反对

    使用道具 举报

    发表于 2006-2-8 21:01:34 | 显示全部楼层
    我猜可能是有些选项没选对吧,把你的.config 上传来看看 (注:太长了,是上传,不要贴)
    回复 支持 反对

    使用道具 举报

    发表于 2006-2-8 21:07:33 | 显示全部楼层
    Post by xep007
    不必用initrd,文件系统得Y上,直接编进内核。



    难道编完了以后GRUB中连initrd这行没有都行?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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