1. 準備工作
下載busybox工具 說(shuō)明:用于制作可執行命令工具集
2. 開(kāi)發(fā)環(huán)境
1)主機:RedHat 9
2) 交叉編譯工具路徑:/usr/local/arm/3.3.2/ (用于編譯busybox1.2.0)
把/usr/local/arm/3.3.2/bin路徑添加到/etc/profile文件中
3)開(kāi)發(fā)板:友善之臂SBC2410
4)開(kāi)發(fā)板分別使用的Linux2.4.18內核和Linux2.6.14內核驗證文件系統
3. 建立目標板空根目錄文件夾及根目錄下的文件夾
[root@190 friendly-arm]# mkdir myroots
[root@190 friendly-arm]#pwd
/friendly-arm/myroots
[root@190 friendly-arm]#cd myroots
[root@190 myroots]#
[root@190 myroots]# mkdir bin sbin usr lib dev mnt opt root etc home proc tmp var
[root@190 myroots]# mkdir etc/init.d
進(jìn)入etc/init.d目錄下,建立一個(gè)腳本文件,并命名為rcS,用gedit打開(kāi),添加如下內容:
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
#
# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
trap ":" INT QUIT TSTP
[root@190 myroots]# cd ../lib
也就是進(jìn)入lib目錄,添加相應的庫文件,具體操作略。
4. 移植Busybox
進(jìn)入到壓縮文件存放的目錄下,并解壓。然后進(jìn)入解壓后的busybox目錄文件夾,隨后配置busybox 。
[root@190 busybox-1.2.0]# make menuconfig
執行之后,將出現如下圖所示的配置界面:
由于每個(gè)版本的配置選項組織有所不同。不管怎樣,我們注意以下選項就行了:
1) Support for devfs
2) Build BusyBox as a static binary ( no shared libs ) //將busybox編譯成靜態(tài)鏈接
3) Do you want to build busybox with a Cross Compile?
(/usr/local/arm/3.3.2/bin/arm-linux-) Cross Compile prefix //指定交叉編譯器
4) init
5) Support reading an inittab file //支持init讀取/etc/inittab 配置文件
6) (X) ash選中ash //建立的rcS腳本才能執行
7)ash
8)cp cat ls mkdir mv //可執行命令工具的選擇,自己看著(zhù)辦吧,需要用到的就選上
9) mount
10) umount
11) Support loopback mounts
12) Support for the old /etc/mtab file
13) insmod
14) Support version 2.2.x to 2.4.x Linux kernels
15) Support version 2.6.x Linux kernels
16) vi
以上內容必須選上,其他可按默認值;如果要支持其他功能,如網(wǎng)絡(luò )支持等,可按需選擇,英語(yǔ)不是很爛的話(huà),這些都沒(méi)有問(wèn)題。
配置好之后,保存退出。然后對其編譯和安裝到剛才建立的根文件系統目錄下:
[root@190 busybox-1.2.0] make TARGET_ARCH=arm CROSS=arm-linux- \ PREFIX=/friendly-arm/myroots/ all install
安裝好之后,將相應的二進(jìn)制文件拷貝到根文件系統相應的目錄下。
5. 制作yaffs文件系統包
[root@190 friendly-arm]# mkyaffsimage myroots myroots.img
6.下載根文件系統包到開(kāi)發(fā)板上,并運行,其結果如圖所示

7.補充
首先,本文檔制作的根文件系統,是用mkyaffsimage打包成了yaffs鏡像文件,也可以使用其他打包工具制作成其他形式的根文件系統,但必須是內核要有相應文件系統的支持,否則,將無(wú)法掛上根文件系統。
其次,我們可以根據項目需要,在相應的目錄下,添加相應的文件,并配置相應的服務(wù)。如內核動(dòng)態(tài)加載模塊可放在lib下,在啟動(dòng)腳本里掛載相應的模塊;在etc目錄下,可移植tinyligin 登錄界面應用程序,等等聯(lián)系客服