根文件系統一般包括:
1)基本的文件系統結構,包含一些必須的目錄,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;
2)基本程序運行所需的庫函數,如:libc/uC-libc;
3)基本的系統配置文件,如:rc,inittab等腳本文件;
4)必要的設備支持文件,如:/dev/hd*,/dev/tty,/dev/fdO;
5)基本的應用程序,如:sh,ls,cp,mv等。
根文件系統的制作就是生成包含上述各種文件的文件系統的過程,可通過直接拷貝宿主機上交叉編譯器處的文件來制作根文件系統,但是這種方法制作的根文件系統一般過於龐大。也可通過一些工具如busybox來制作根文件系統,用busybox制作的根文件系統可以做到短小精悍並且運行效率較高。寫成shell文件便於操作,有些人將BusyBox稱為Linux工具裡的瑞士軍刀.
根文件系統是linux啟動時使用的第一個文件系統。沒有根文件系統,linux將無法正常啟動。根文件系統:有一系列的目錄組成,目錄中包含了應用程序、c庫、以及相關的配置文件。
step1:創建根文件系統目錄
cd /opt/FriendlyARM/mini6410/linux
mkdir rootfs
cd rootfs
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
step2:創建設備文件:
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
cd ..
step3:安裝/etc(配置文件可以從其他做好的嵌入式系統中cp)
tar etc.tar.gz –C /xxx/rootfs
step4:編譯內核模塊:
進入Linux內核目錄(linux 2.6.36)
make modules ARCH=arm CROSS_COMPILE=arm-linux-
step5:安裝內核模塊
make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs
step6: 配置busybox
Busybox: 嵌入式開發中的瑞士軍刀
進入busybox目錄執行
make menuconfig
a.進入 Busybox Settings à
build Options->
選中 “Build busybox as a static binary”, 靜態鏈接
Cross Compiler prefix (arm-linux-)
Installation Options->
選中 “Don‘t use /usr”, 選中該項可以避免busybox 被安裝到宿主系統的/usr目錄下,破壞宿主系統
Busybox Installation Prefix (/xxx/rootfs)
該選項表明編譯後的busybox的安裝位置
step7: 編譯,安轉busybox
配置內核使內核支持此文件系統:在generalsetup中: