《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 嵌入式Linux NFS根文件系統(tǒng)的構(gòu)建及研究
嵌入式Linux NFS根文件系統(tǒng)的構(gòu)建及研究
電子設計工程
康天下,,支劍鋒
摘要: 在嵌入式Linux系統(tǒng)開發(fā)過程中,,根文件系統(tǒng)是構(gòu)建嵌入式Linux系統(tǒng)的重要組成部分,。為了方便和簡化嵌入式Linux開發(fā)過程中的調(diào)試過程,,主要研究了如何使用Busybox構(gòu)建出基本的嵌入式Linux根文件系統(tǒng),,包括Busybox的配置,、編譯和安裝,。在此基礎上,,進一步構(gòu)建出基于NFS的嵌入式Linux根文件系統(tǒng),,并給出了啟動腳本和配置文件,。這種根文件系統(tǒng)可以方便地在線更改、調(diào)試程序,,降低了嵌入式系統(tǒng)的開發(fā)門檻,。
Abstract:
Key words :

隨著信息技術(shù)的發(fā)展,嵌入式系統(tǒng)技術(shù)已經(jīng)廣泛應用于國防,、通信,、工業(yè)控制、消費電子等諸多領(lǐng)域,。其中,,Linux作為一款開源、成熟且高效穩(wěn)定的多任務操作系統(tǒng),,先天具有許多不可比擬的優(yōu)勢,,已成為目前最具潛力的嵌入式操作系統(tǒng)。眾所周知,構(gòu)建根文件系統(tǒng)對于嵌入式Linux開發(fā)至關(guān)重要,,它是內(nèi)核啟動后加載的第1個文件系統(tǒng),,是決定系統(tǒng)能否正常啟動的關(guān)鍵所在。在開發(fā)階段,,程序往往需要反復多次的調(diào)試,,鑒于此,構(gòu)建基于NFS(Network File System)的根文件系統(tǒng)就尤為重要,;這樣就免去了對目標開發(fā)板的反復燒寫,,方便地在線對程序進行更改與調(diào)試。本文以Busybox軟件為基礎,,介紹了一種實用的NFS根文件系統(tǒng)構(gòu)建方法,。

1 嵌入式根文件系統(tǒng)簡介
Linux啟動時,第一個必須掛載的就是根文件系統(tǒng),;若系統(tǒng)不能從指定設備上掛載根文件系統(tǒng),則系統(tǒng)會報錯進而退出啟動,。系統(tǒng)成功啟動之后,,才可以自動或手動掛載其他的文件系統(tǒng)。
Linux系統(tǒng)各個分區(qū)存儲文件時,,需要遵循一定的格式,,這種文件格式稱為文件系統(tǒng)類型,比如常見的有ext2,,ext3,,ext4等。在存儲設備方面,,F(xiàn)LASH是目前嵌入式系統(tǒng)中廣泛采用的主流存儲設備,,它是一種可電擦寫的非易失性存儲器,具有體積小,,功耗低,,密度高等優(yōu)點。目前FLASH中常見的文件系統(tǒng)主要有Cramfs,,Jffs2,,Yaffs2等。嵌入式Linux基本的根文件目錄結(jié)構(gòu)如表1所示,。

a.jpg



2 Busybox簡介
Busybox常被形象地稱為嵌入式Linux系統(tǒng)開發(fā)中的“瑞士軍刀”,,它將許多常用的UNIX命令和工具結(jié)合到了一個單獨的可執(zhí)行程序中。雖然與相應的GNU工具相比較,,Busybox所提供的功能和參數(shù)略少,,但在比較小的系統(tǒng)或者嵌入式系統(tǒng)中已經(jīng)足夠了。它僅用一個可執(zhí)行文件就可以提供基本的Linux操作系統(tǒng)所需的命令,體積很小,,配置起來也很方便,。

3 Busybox的編譯與安裝
3.1 開發(fā)環(huán)境
基于飛凌OK-2440Ⅲ的硬件平臺采用S3C2440芯片,外圍包括64 MB的SDRAM內(nèi)存,、128 MB的NAND FLASH,,以及4 MB的NOR FLASH。采用宿主機加目標板的開發(fā)模式,,宿主機的系統(tǒng)是Fedora12,,目標板的內(nèi)核版本是Linux2.6.30.4,Bootloader采用U-boot,。
3.2 配置Busybox
Busybox的源碼在官方網(wǎng)站www.Busybox.net/下載,,然后解壓并進行配置安裝,具體步驟如下:
b.jpg

在執(zhí)行make命令之前應該修改頂層Makefile文件(ARCH=arm,,CROSS_COMPILE=arm-linux-),,也可以在make menuconfig進一步根據(jù)自己的需要來靈活配置Busyhox。執(zhí)行完make install命令后會自動在當前目錄的_install目錄下生成bin,,sbin,,linuxrc三個文件。
配置界面如圖1所示,。

g.jpg



4 構(gòu)建根文件系統(tǒng)
4.1 創(chuàng)建腳本文件
為了簡化構(gòu)建根文件系統(tǒng)的操作,,首先進入到開發(fā)目錄,如下新建一個腳本文件create_myrootfs_bash:
c.jpg
使用命令chmod+x create_myrootfs_bash改變文件的可執(zhí)行權(quán)限,,./create_myrootfs_bash運行腳本,,就完成了基本根文件系統(tǒng)目錄的創(chuàng)建。

4.2 建立系統(tǒng)配置文件inittab,,fstab,,rcS
d.jpg
4.3 安裝動態(tài)庫
如果Busybox采用動態(tài)鏈接的方式編譯,還需要加載器和鏈接庫執(zhí)行如下命令:
h.jpg

5 NFS的安裝與配置
NFS(Network File System)是由SUN公司推出的一種分布式文件系統(tǒng),,它能使用戶在使用另外的聯(lián)網(wǎng)機文件或外設時,,與使用本地機一樣方便。以root的身份在控制臺輸入setup,,在系統(tǒng)服務選項中選中nfs服務,,如圖2所示。

i.jpg


配置NFS服務器的共享主目錄,,注意權(quán)限問題:
k.jpg

6 掛載NFS根文件系統(tǒng)
通過串口和RJ45網(wǎng)口連接宿主機與目標開發(fā)板,,啟動超級終端,輸入以下命令:
l.jpg
目標板啟動后在超級終端中顯示的結(jié)果如圖3所示,??梢姡琋FS根文件系統(tǒng)已經(jīng)成功加載。

j.jpg



7 結(jié)語
對以Busybox制作嵌入式Linux根文件系統(tǒng)的基本方法進行了歸納和總結(jié),,進一步給出了基于NFS構(gòu)建的嵌入式Linux根文件系統(tǒng)的一般方法,。利用此法構(gòu)建出來的NFS根文件系統(tǒng)可以直接用于嵌入式Linux系統(tǒng)的開發(fā),實時方便地對開發(fā)程序進行更改和調(diào)試,,有效地避免了反復對目標開發(fā)板的直接燒寫,,提高了開發(fā)效率,縮短了開發(fā)周期,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。