at9261根文件系統的建立

這兩天自己動手焊了塊9261的工業級ARM板,然後就打算在上面搭建系統。相應的bootloader和內核(linux-2.6.24)都是從相應的9261光盤裏得到併成功燒寫,至於文件系統,我自己就打算搭建NFS網絡文件系統,一來方便調試,二來是自己從頭開始搭建的系統,用起來肯定非常順手,而且也知根知底。我的步驟如下:

編譯所用交叉編譯器版本:arm-2007q1(來自9261光盤)

一,編譯busybox

從網上下載busybox-1.11.2-tar.bz2

解壓busybox,進入相關目錄,修改Makefile:

CROSS_COMPILE ?=arm-none-linux-gnueabi-

ARCH ?= arm

然後make menuconfig,進入busybox配置界面,配置時需要注意幾點:

1.添加如下兩個選項

Busybox Settings --->
                BusyboxLibrary Tuning --->
                        [*]Username completion

                        [*]Fancy shell prompts

如果不添加,文件系統是不識別PS1這個環境變量的參數的,也就無法修改shell終端的提示行(本人血和淚的教訓,足足折騰了兩天才搞明白這點

2.選上靜態編譯

網上很多人說這樣在make時會出現很多警告和莫名其妙的錯誤,但是本人這裏卻很正常

3.[ ]Don't user usr

如果選上這項,假如你選的默認的安裝路徑_install,那麼busybox安裝的時候就會在_install下生成bin、sbin、linuxrc,不生成usr目錄;如果不選的話,就會生成bin、sbin、linuxrc、usr四個文件和目錄。
有文說如果不選此項的話安裝時就會覆蓋宿主系統的/usr,經驗證這種說法有誤。

make menuconfig後保存退出

make

make install 就可以在設定的目錄下生成bin,sbin.usr等目錄,裏面放的都是到busybox程序的軟鏈接


二. 製作根文件系統

1.建立根文件系統結構

編譯busybox的時候我已經設置安裝路徑在/opt/at9261/myrootfs目錄下,make install後已經生成了bin,sbin,usr,linuxrc,因此用mkdir命令生成其他的目錄:

mkdir -p dev etc home lib mnt proc sbin sys tmp var root

2.複製文件

複製所用交叉編譯器的庫文件(一般在相應編譯器目錄的arm-none-linux-gnueabi/libc/armv4t/lib下)到myrootfs的lib目錄下。

3.建立相關文件

首先刪除myroofs下的linuxrc文件。linuxrc是到busybox init 的鏈接,這裏不需要,因此刪除不要。

(1)inittab

inittab腳本告訴init在它的每個運行級別上需要做那些事情,詳情見

參考文章:http://blog.csdn.net/madding/article/details/4337316  inittab文件詳解

但是上面鏈接裏詳解的是PC上的inittab文件,busbox的init對inittab的解析不同,

詳解見參考文章http://linfengdu.blog.163.com/blog/static/1177107320111186458110/
嵌入式linux啓動時運行的inittab文件      或
http://blog.sina.com.cn/s/blog_5f26cfd20100x3ox.html

BusyBox init及其inittab文件分析


(2)fstab

本文件配置了系統啓動後自動掛載的文件系統。 至於fstab裏的文件系統何時掛載,bootloader與kernel載入內存時以只讀掛載一次
這樣纔有/etc/rc.d/rc.sysinit裏寫的目錄結構 ;然後執行/etc/rc.d/rc.sysinit時以可讀寫方式再掛載一次。

(3)passwd,group

passwd文件記錄linux用戶的信息,每行代表一個用戶;group記錄相應的組的信息,每行代表一個組。

(4)host.conf,hosts,resolv.conf

host.conf文件記錄瞭解析器解析IP地址的順序,hosts文件記錄了主機名和IP地址的對應關係,resolv.conf設置了DNS

(5)ld.so.conf

配置除/lib,/usr/lib外系統自動查找的庫信息

(6)mdev.conf

mdev的配置文件,新建爲一個空文件即可

(7)profile

系統設置環境變量的文件,對每個用戶都有效。

(8)init/rcS

該文件一般是自啓動文件,設置在inittab裏。

這一切都做好後根文件系統就建立完畢了。

注:NFS掛載時uboot設置的bootargs環境變量如下:(以本人的IP地址202.4.155.188爲例)

setenv bootargs 'mem=64M console=ttyS0,115200 root=/dev/nfs rw nfsroot=202.4.155.188:/opt/at9261/myrootfs ip=202.4.155.98:202.4.155.1:255.255.255.0:eth0:off'

saveenv.

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