kernel+initrd(busybox)+rootfs(busybox)
查看本机硬件信息
1、cat /proc/cpuinfo
2、lsusb
3、lspci
4、hal-device
编译内核
1、make menuconfig
make gconfig
make kconfig
2、make
3、make modules_install // /lib/modules/VERSION
4、make install
部分编译
1、只编译某子目录下的代码
make dir/sudir
make ./arch/
make ./drivers/net/
2、只编译部分模块
make M=./dir/
3、只编译某一个模块
make drivers/net/pcnet32.ko
4、将编译好的模块放到其他目录中
make -O=/tmp/kernel/
# cd /tmp/busybox/
创建根文件系统
1、 创建必要的设备文件
mknod /dev/console c 5 1
mknod /dev/null c 1 3
2、 mkdir -pv dev etc/init.d/ proc sys tmp mnt/sysroot/
创建initrd(busybox)
1、 rm linuxrc
2、 编辑init
#!/bin/bash
#
mount -t proc proc /proc
mount -t sysfs sysfs /sys
insmod /lib/modules/jbd.ko
insmod /lib/modules/ext3.ko
mdev -s
mount -t ext3 /dev/hda2 /mnt/sysroot
exetc switch_root /sysroot /sbin/init
3、 给此脚本执行权限
chmod +x init
4 制作initrd
find . |cpio -H newc --quiet -o |gzip -9 > /mnt/boot/initrd
创建真正的根文件系统
cd /tmp/busybox
1.mkdir -pv dev etc/rc.d/ lib/modules proc sys root home usr
2./etc/inittab
::sysinit:/etc/rc.d/rc/sysinit:
console::respawn:-/bin/sh
3.编辑fstab
挂载 proc sys /dev/hda1 /dev/hda2
busybox的init不支持运行级别,并且/etc/inittab的格式也跟linux有所不同
转载于:https://blog.51cto.com/jiaoxianyao/1919669