一文了解如何制作rootfs?
二、根文件系統的組成
1. 根文件系統目錄
內容簡介
bin :基本的可執行文件opt :添加的軟件包boot :啟動時需要的一些文件proc :內核及進程信息的虛擬文件系統dev : 設備文件root:root用戶目錄etc: 系統配置文件sbin:系統管理的程序home : 用戶目錄tmp : 臨時文件lib : 庫文件usr : 應用程序mnt : 掛載文件系統的掛載點var : 存放系統日志或一些服務程序的臨時文件
2. 嵌入式環境需要移植的目錄
根文件系統中的每一個頂級目錄都有特定的用途和目的 ,但并不是所有的目錄在嵌入式環境下都需要,我們只創建需要的一些目錄:
/bin /sbin /etc /proc /tmp /var /dev /mnt
Linux根文件系統至少應包括以下幾項內容。
基本的文件系統結構,包含一些必需的目錄比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp等。基本程序運行所需的庫函數,如glibc。基本的系統配置文件,比如rc.sysinit,inittab等腳本文件。必要的設備文件支持:/dev/hd*,/dev/tty*,/dev/fd0。基本的應用程序,如sh,ls,cp,mv等。3. 移植需要做的工作把全局配置文件放入/etc目錄下。將設備文件信息放入/dev目錄下,設備名可以作為符號鏈接定位在/dev中或/dev子目錄中的其他設備存在。操作系統核心定位在/或/boot,若操作系統核心不是作為文件系統的一個文件存在,不應用它。庫存放的目錄是/lib。存放系統編譯后的可執行文件、命令的目錄是/bin,/sbin,/usr。
三、 默認預置條件
1) 交叉編譯工具
需要預先安裝好交叉編譯器 ,一口君安裝版本是:arm-none-linux-gnueabi-gcc默認在ubuntu中安裝目錄是:
/home/peng/toolchain/gcc-4.6.4/
2) tftp服務器
開發板下載內核鏡像和設備樹需要借助tftp服務器,配置信息如下:
peng@ubuntu:~$ cat /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
服務器根目錄是*tftpboot**
3) nfs服務器
內核啟動后掛載文件系統需要通過nfs服務器,nfs服務器設置如下:
peng@ubuntu:~$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/source/rootfs *(rw,sync,no_subtree_check)
四、文件系統制作步驟
1、 源碼下載
我們選擇的版本是busybox-1.22.1.tar.bz2下載路徑為:
http://busybox.net/downloads/
2、 解壓源碼$ tar xvf busybox-1.22.1.tar.bz2
3、 進入源碼目錄$ cd busybox-1.22.1
4、 配置源碼
選擇制作靜態庫,并設置交互編譯工具鏈的前綴arm-none-linux-gnueabi-如果是其他工具鏈,按照例子填寫即可。
$ make menuconfig
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
[ ] Force NOMMU build
[ ] Build with Large File Support (for accessing files > 2 GB)
(arm-none-linux-gnueabi-) Cross Compiler prefix
() Additional CFLAGS
5、 編譯$ make
6、 安裝
busybox默認安裝路徑為源碼目錄下的_install
$ make install
7、 進入安裝目錄下
默認創建以下4個文件或者文件夾
$ cd _install
$ ls
bin linuxrc sbin usr
請輸入評論內容...
請輸入評論/評論長度6~500個字


分享













