製作嵌入式Linux根文件系統

操作系統:fedora 17 (linux-3.3.4)
開發板:友善之臂Tiny6410
gcc & g++ : 4.7.2
arm-linux-gcc & arm-linux-g++ : 4.5.1
busybox-1.20.2

1.新建目錄rootfs
# mkdir rootfs
# cd rootfs

2.編譯安裝Busybox
解壓busybox源碼包
# tar jxvf busybox-1.20.2.tar.bz2

配置編譯選項
# cd busybox-1.20.2
# make menuconfig
在Busybox Settings -> Build Options -> Cross Compiler prefix 設置編譯器前綴爲 arm-linux-

編譯並安裝,默認安裝在_install目錄
# make && make install
# cp _install/* /home/sunke/work/rootfs -r

這樣就生成了bin sbin usr linuxrc ,進入usr目錄新建額外的幾個目錄
# cd usr
# mkdir lib local share

3.新建並填充lib目錄
# mkdir lib
# cd lib

從交叉編譯器的安裝路徑拷貝出對應的動態庫
# cp -d /opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/*.so* ./

額外再建一個modules目錄
# mkdir modules

4.新建並填充etc目錄
# mkdir etc
# cd etc

etc目錄較複雜,但內容固定,可直接拷貝出友善之臂的etc目錄,本手冊直接利用了國嵌提供的etc目錄
# tar zxvf etc.tar.gz
# cp etc/* /home/sunke/work/rootfs -r

5.新建並填充dev目錄
# mkdir dev
# cd dev

手動創建兩個設備,其他設備由mdev自動創建
# mknod -m 666 console c 5 1
# mknod -m 666 null c 1 3

6.新建其他目錄
# mkdir proc sys mnt mnt/nfs tmp var home root

7.將rootfs打包成ubi鏡像
需將友善之臂提供的工具解壓到/usr/sbin
mkubimage-mlc2 rootfs rootfs-201212262052.ubi

8.通過USB或SD卡下載到開發板上,啓動成功。

PS:可以在/etc/init.d/ 添加啓動項(配置網絡、設置環境變量、自啓動程序等)
PS:配置網絡的命令如下
ifconfig eth0 10.10.206.130 netmask 255.255.255.0
route add default gw 10.10.206.254
PS:也可以考慮直接拷貝友善之臂完整根文件系統中的etc目錄來使用,特別是在移植QT的時候,/etc/medv.conf需要拷貝過來。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章