编译 linux 2.6 内核
1. virtualbox上编译内核
用virtualbox装了一个debian,开始试着自己编译linux内核,把ext2、ext3都编译进去,配置好grub,重启,结果终端报:
unbale to mount root fs . tried ext2, ext3, ...(后面还有一些我编进去的文件格式)
几年前我编译内核没起来就是这个错误,现在依旧,真是路窄。我试着加了一些设备驱动进去,加了一些文件格式进去,报错依然,我的虚拟硬盘就两个分区,一个是ext2,另一个是swap,这内核启动也不认得?最后才发现:必须把cramfs格式编进去,位置在内核配置界面:
File systems
==> Miscellaneous filesystems
==> Compressed ROM file system support (cramfs)
打开之,内核终于正常启动了。后来才想明白,linux2.6以上内核开始使用ramfs做为初始化时的根文件系统,故必须标此编译选项。
系统是进去了,但上不了网,网卡是PCI网卡,于是再编内核,把设备驱动里与PCI相关的标上,还在
Device Drivers
==> Network device support
==> Ethernet (100 or 1000 Mbit)
中把Intel Pro网卡的驱动选上(我在virtualbox里的网络选的是Intel Pro/1000 MT Desktop网卡),最后启动,一切正常了。
2. 我的真实老机器上编译内核
有了virtualbox上的教训,配置和编译内核快了很多,但郁闷的是终端挂起,和virtualbox上不同:
Waiting for mount root fs......
仔细想想,我的硬盘是ATA接口的,与ATA相关的驱动我都选了啊,最后才发现位置:
Device Drivers
==> ATA/ATAPI/MFM/RLL support
==>ELSA,VLB,PCI and onboard controllers(先选上这个,才能看到下面的选项)
选中后多出来很多驱动供选择,我是VIA硬盘接口芯片(不了解的人可以都选上,反正慢不了多少),选了其中的
VIA82xx...
再编译、启动,ok了。
但网又上不去,最后发现我的只是老的百兆网卡,在
Device Drivers
==> Network device support
==> Ethernet (10 or 100 Mbit)
里选定所有关于Reltek的驱动,这下网络也能用了。
用virtualbox装了一个debian,开始试着自己编译linux内核,把ext2、ext3都编译进去,配置好grub,重启,结果终端报:
unbale to mount root fs . tried ext2, ext3, ...(后面还有一些我编进去的文件格式)
几年前我编译内核没起来就是这个错误,现在依旧,真是路窄。我试着加了一些设备驱动进去,加了一些文件格式进去,报错依然,我的虚拟硬盘就两个分区,一个是ext2,另一个是swap,这内核启动也不认得?最后才发现:必须把cramfs格式编进去,位置在内核配置界面:
File systems
==> Miscellaneous filesystems
==> Compressed ROM file system support (cramfs)
打开之,内核终于正常启动了。后来才想明白,linux2.6以上内核开始使用ramfs做为初始化时的根文件系统,故必须标此编译选项。
系统是进去了,但上不了网,网卡是PCI网卡,于是再编内核,把设备驱动里与PCI相关的标上,还在
Device Drivers
==> Network device support
==> Ethernet (100 or 1000 Mbit)
中把Intel Pro网卡的驱动选上(我在virtualbox里的网络选的是Intel Pro/1000 MT Desktop网卡),最后启动,一切正常了。
2. 我的真实老机器上编译内核
有了virtualbox上的教训,配置和编译内核快了很多,但郁闷的是终端挂起,和virtualbox上不同:
Waiting for mount root fs......
仔细想想,我的硬盘是ATA接口的,与ATA相关的驱动我都选了啊,最后才发现位置:
Device Drivers
==> ATA/ATAPI/MFM/RLL support
==>ELSA,VLB,PCI and onboard controllers(先选上这个,才能看到下面的选项)
选中后多出来很多驱动供选择,我是VIA硬盘接口芯片(不了解的人可以都选上,反正慢不了多少),选了其中的
VIA82xx...
再编译、启动,ok了。
但网又上不去,最后发现我的只是老的百兆网卡,在
Device Drivers
==> Network device support
==> Ethernet (10 or 100 Mbit)
里选定所有关于Reltek的驱动,这下网络也能用了。
相关文章
- [kernel] 如果在linux内核模块里用错锁? - 08 04, 2010
- [kernel] linux在多核处理器上的负载均衡原理 - 07 20, 2010
- [linux] tail和poll无关 - 06 01, 2010
留言: