一、創建根文件系統
1、創建目錄
#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin sys usr mnt tmp var
#mkdir usr/bin usr/sbin usr/lib lib/modules
2、創建設備文件
#cd rootfs/dev
#mknod–m 666 console c 5 1
#mknod–m 666 null c 1 3
如果有必要也可以創建其他的設備節點,此處爲了記錄創建根文件系統的過程僅創建這兩個必備的設備節點。
3、加入配置文件
#mkdir init.d
#cd init.d
#mkdir rcS
#vim rcS //此文件爲開機後運行的第一個腳本(init進程啓動後)
#!/bin/sh
/bin/mount -a
/bin/mount -ttmpfs mdev /dev
/bin/echo/sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
#vim etc/fstab //此文件在 執行mount –a使被調用,記錄着開機自動掛載的文件系統和掛載點掛載方式等信息
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
#vim etc/inittab //此文件保存init進程的信息
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::ctrlaltdel:/bin/umount-a –r
#vim etc/profile
# /etc/profile:system-wide .profile file for the Bourne shells
echo
echo -n"Processing /etc/profile... "
# no-op
echo"Done"
echo
4、添加內核模塊
進入內核目錄
#make modules (筆者已經在Makefile中修改了ARCH 和 CROSS_COMPILE變量的值所以此處不再用參數傳遞這兩個變量的值)
#make modules_install INSTALL_MOD_PATH=/rootfs (rootfs的路徑)
5、編譯busybox
解壓並進入busybox的根目錄
#make menuconfig
Busybox Settings -> Build Options -> [*]Build BusyBox as a static binary 選中
Cross Compiler prefix 填寫交叉編譯工具,筆者已經修改了環境變量因此只填arm-linux- 就可以了
Busybox Settings -> Installation Options -> [*]Don`t use/usr 選中
Busybox installation prefix 填寫rootfs路徑
#make
#make install
二、掛載根文件系統到內核中
1、進入rootfs
2、ln –s ./bin/busybox init 創建busybox軟連接爲init 供內核啓動後調用
3、進入內核目錄
#make menuconfig
Generalsetup -> [*]Initial RAM filesystem and RAM disk support 選中
Initramfssource file(s) 填寫rootfs 的路徑
4、重新編譯內核
#make zImage
5、打開開發板電源,在串口終端中按下鍵盤任何鍵進入U-boot
6、#setenv bootargsnoinitrd console=ttuSAC2,115200 (筆者的開發板使用的是串口二,可以根據自己的情況設置)
#saveenv
7、下載啓動內核
#tftp c0008000 zImage
#bootm c0008000
等內核啓動後發現出現”#”命令行提示符,輸入ls 命令發現出現了在本機上創建的根文件系統