OK210製作根文件系統(1)initramfs

一、創建根文件系統

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 命令發現出現了在本機上創建的根文件系統

 

發佈了31 篇原創文章 · 獲贊 9 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章