開發板 : JZ2440 Linux內核 : Linux-2.6.22.6 Busybox1.29.3 最小根文件系統所需的部分: 1./dev/console /dev/null :創建根文件系統所必備的,指出了所需要的標準輸入,標準輸出,標準錯誤設備終端。 2.init 程式: 當busybox ...
開發板 : JZ2440
Linux內核 : Linux-2.6.22.6
Busybox1.29.3
最小根文件系統所需的部分:
1./dev/console /dev/null :創建根文件系統所必備的,指出了所需要的標準輸入,標準輸出,標準錯誤設備終端。
2.init 程式: 當busybox安裝好時,init程式文件已有。
3./etc/inittab:
4.配置文件指定的應用程式;
5.c庫
一、編譯安裝busybox:生成init
make menuconfig :創建一個.config的文件
make CROSS_COMPILE := arm-linux-
make CONFIG_PREFIX=/path install :將busybox安裝到指定的文件中;
(不要直接make,避免對其他文件造成損壞,新建目錄/work/nfs_root/first_fs,安裝於此)
安裝完成後有 bin linuxrc->bin/busybox sbin usr 目錄
二、創建/dev/console /dev/null
查看設備文件中兩個文件的相關信息,並以此創建
crw
c表示字元設備文件,b表示塊設備文件,l表示符號鏈接文件,r表示可讀許可權,w表示可寫許可權。
5, 1 與1, 3表示主從設備
sudo mknod console c 5 1
sudo mknod null c 1 3
三、init程式已在busybox中建成
四、創建/etc/inittab
若不創建,則使用預設配置項
/etc/inittab文件中的每一個條目用來定義一個子進程,並確定啟動方法
此處只添加console::askfirst:-bin/sh
五、配置文件指定的應用程式;
.現只做最小根文件系統,所以沒有指定的用戶程式
六、C庫
glibc庫所在的位置:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
進入目錄看到主要的分類
此處只需要用到動態庫文件.so
創建lib目錄,並複製庫文件
cp *.so* /work/nfs_root/first_fs/lib/ -d
(-d:當複製符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄;)
最小根文件系統
如何將根文件系統燒寫到儲存設備上去?
製作yaffs文件系統映像文件,見下節