- 论坛徽章:
- 0
|
目标:
使用linux-2.6.29.4 kernel源码包和原系统rootfs,编译基于X86架构最简配置而且不需要
initrd能正常启动的kernel
软件编译环境:
linux-2.6.29.4 kernel源码包, ubuntu 9.04, 使用原系统的root file system(EXT3)
硬件配置:
thinkpad SL400 2743NCC
(CPU:CORE 2 Duo T5870@2.00GHz, ICH9M 2port SATA IDE硬盘接口)
制作过程关键点:
1.硬盘和文件系统驱动是系统启动加载rootfs所必需,所以必须编译进KERNEL。
文件系统选项配置比较简单,选择1.File systems->Ext3 journalling file system support(支持EXT3),
2.File systems->Dnotify support,3.File systems->Inotify file change notification support,
2,3选项如果不选,重启后键盘不能使用。是否可以修改启动脚本来加载键盘驱动,有待验证。
硬盘驱动的选择理由如下:
X86的南桥连接相对低速设备(SATA/USB设备,PCI声卡等),北桥连接相对高速设备(RAM,AGP/PCI显卡),
南桥和北桥以前使用PCI总线相连(现在有所变化),PCI位于SATA/USB设备的上方,所以必须将Bus options->PCI support
编译进kernel.
SCSI接口被linux硬盘驱动(包含SATA硬盘)所采用,所以必须将SCSI device support->SCSI disk support编译进kernel.
硬盘接口是SATA ICH9 ,所以将Serial ATA...->Intel ESB,ICH..., SATA support编译进kernel.
2.Packet socket,Unix domain sockets, PF_KEY sockets必须编译进kernel,因为进程间通信需要使用socket,否则会kernel panic
3.根据我的硬件环境,Processor family当然选Core 2/newer Xeon
4.Linux可执行文件格式是ELF,所以选kernel support for ELF binaries
5.启动时,我们不要initrd,所以不选Initial RAM filesystem and RAM disk (.../initrd)...
6.启动后,键盘是必须的,因为没有initrd,所以将键盘驱动相关选项编译进kernel.
HID Devices->Generic HID support;keyboards->XT keyboard.
是否可以将键盘相关选项编译进MODULES,在启动脚本加载键盘驱动,需要以后实验。
7.启动后,希望动态加载/卸载USB设备,所以将USB下的UHCI,EHCI选项选为编译进MODULE
实验结果生成的.config见附件。附件x86-defconfig.tar要用tar -xvf解压,并将.config放在linux kernel源码根目录下。
[ 本帖最后由 swangwu 于 2009-11-15 13:43 编辑 ] |
|