busybox
在配置busybox,在是否選擇要靜態鏈接庫時,在靜態下,busybox中的工具不需要動態鏈接庫,能夠直接運行。而用戶自己編寫的程序如果需要動態鏈接庫,還是依然需要有。
(從http://www.busybox.net/downloads/可以下載busybox工具)
如果是動態鏈接庫,則busybox和用戶自己編寫的程序都需要動態鏈接庫。
這里,因為我們以后需要使用自己編寫的程序,故選擇使用動態鏈接庫。
busybox 要支持mdev、Tab補全功能、insmod模塊安裝命令、ifconfig命令等。
Busybox Settings
Busybox Library Tuning
Tab completion
然后就是編譯、安裝。安裝的時候一定要跟上路徑,不然很有可能破壞電腦的文件系統。
修改Makefile
CROSS_COMPILE ?= arm-linux-
make
make CONFIG_PREFIX=/work/nfs_root/first_fs install
bootargs = noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
構建最小文件系統。
首先創建最基本的設備文件。(/dev/console和/dev/null)。
在pc上查看當前電腦的設備號。
zws@z-pc:/home/jz2440/fsroot$ ls /dev/console -l crw------- 1 root root 5, 1 10月 22 12:45 /dev/console zws@z-pc:/home/jz2440/fsroot$ ls /dev/null -l crw-rw-rw- 1 root root 1, 3 10月 22 12:45 /dev/null
然后在相應的文件夾中創建對應的設備文件。
mkdir dev
cd dev/ sudo mknod console c 5 1 sudo mknod null c 1 3
構造inittab
mkdir etc cd etc/ touch inittab
console::askfirst:-/bin/sh
構建C庫
mkdir lib cp 。。。。/arm-linux/lib/*.so* ./ -D
完成最小根文件系統的構建。
使用 mkyaffs2image 制作文件系統。
將文件系統通過tftp下載到開發板板,並寫入到nand Flash
tftpboot 30000000 fsroot.yaffs2 nand erase root nand write.yaffs 0x30000000 root $(filesize)
最小文件系統完成。
支持PS命令。
mkdir sys
mkdir proc
mdkir etc/init.d
tocuh etc/init.d/rcS
在inittab中添加
::sysinit:/etc/init.d/rcS
在rcS中添加
mount -a
在etc下新建fstab。 添加
#device mount-point type option dump fsck order proc /proc proc defaults 0 0
使用udev。而mdev是udev的簡化版本。
使用mdev自動創建設備文件
在fstab中添加
sysfs /sys sysfs defaults 0 0 tmpfs /dev tmpfs defaults 0 0
在rcS中添加
mkdir /dev/pts mount -t devpts devpts /dev/pts echo /sbin/mdev > /proc/sys/kernel/hotplug mdev -s
到此為止,一個基本的文件系統已經創建完成。
設置啟動參數:
set bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200
NFS網絡文件系統
在UBUNTU的/etc/exports中修改共享的目錄路徑Document/nfsroot.txt。
set bootargs=root=/dev/nfs rw nfsroot=<serverip>:/home/zht/rfsys nfsaddrs=<clientip>:<serverip>:192.168.1.1:255.255.255.0::eth0:off console=ttySAC0,115200
添加文件系統的命令工具
我們制作的最小根文件系統只有基礎的一些功能,比如當我們需要在開發板上執行格式化磁盤命令mkdosfs、磁盤分區命令fdisk 等的命令時會發現我們制作的根文件系統沒有這些命令工具,因此我們需要自己添加相應的命令工具。
從http://pkgs.fedoraproject.org/repo/pkgs/dosfstools/網站上下載dosfstools-3.0.16.tar.gz文件,在PC機上進行解壓讓后通過make CC=arm-linux-gcc進行交叉編譯得到mkdosfs文件。將mkdosfs拷貝到開發板的/usr/sbin/目錄下即可。
