新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于s3c2410的CramFS根文件系統(tǒng)的移植

基于s3c2410的CramFS根文件系統(tǒng)的移植

作者: 時(shí)間:2012-05-21 來源:網(wǎng)絡(luò) 收藏

4.2、拷貝需要加入的其他文件和鏈接庫

(1)、Busybox 是 Debian GNU/Linux 的大名鼎鼎的 Bruce Perens 首先開發(fā)的。Busybox 編譯出一個單個的獨(dú)立執(zhí)行程序,就叫做 busybox。但是它可以根據(jù)配置,執(zhí)行 ash shell的功能,以及幾十個各種小應(yīng)用程序的功能。這其中包括有一個迷你的vi編輯器,系統(tǒng)不可或缺的/sbin/init程序,以及其他諸如 ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat等等。而所有這一切功能卻只有區(qū)區(qū)1M左右的大小,Busybox已經(jīng)成為構(gòu)建嵌入式Linux文件系統(tǒng)的必備軟件。

首先我們從官方網(wǎng)站(http://www.busybox.org/)上下載BusyBox 的版本1.0.0。

#tar xvfz busybox-1.00.tar.gz
#cd busybox-1.00
#make menuconfig

下面是需要編譯進(jìn)busybox的功能選項(xiàng),其他的可以根據(jù)需要自選。

Build Options
[*] Build BusyBox as a static binary (no shared libs)

這個選項(xiàng)是一定要選擇的,這樣才能把busybox編譯成靜態(tài)鏈接的可執(zhí)行文件,運(yùn)行時(shí)才獨(dú)立于其他函數(shù)庫,否則必需要其他庫文件才能運(yùn)行,在單個linux內(nèi)核不能使他正常工作。
[*] Do you want to build BusyBox with a Cross Compiler
選擇你自己定義的交叉編譯環(huán)境。

Installation Options
[*] don’t use /usr

這個選項(xiàng)也一定要選,否則make install 后busybox將安裝在原系統(tǒng)的/usr下,這將覆蓋系統(tǒng)原有的命令。選擇這個選項(xiàng)后,make install后會在busybox目錄下生成一個叫_install的目錄,里面有busybox和指向他的鏈接。

其他選項(xiàng)都是一些linux基本命令選項(xiàng),自己需要哪些命令就編譯進(jìn)去,一般用默認(rèn)的就可以了,配置好后退出并保存。編譯BusyBox,如果能成功編譯BusyBox,就將編譯好的busybox 復(fù)制到文件系統(tǒng)的/bin 目錄下,然后創(chuàng)建常用命令的建立快捷方式。建立快捷方式很簡單,只要建一個符號鏈接,比方ln -s /bin/busybox /bin/ls,那么,執(zhí)行/bin/ls的時(shí)候,busybox 就會執(zhí)行l(wèi)s的功能,也會按照ls的方式處理命令行參數(shù)。

(2)、拷貝一些管理員控制程序到/sbin目錄下,最重要的就是要包含一個init命令,可以使用busybox提供的系統(tǒng)工具。比如 ln -s /bin/busybox /sbin/init,這樣我們就有了系統(tǒng)運(yùn)行不可或缺的 /sbin/init 程序了。

(3)、拷貝應(yīng)用程序運(yùn)行時(shí)所需要的庫到/lib,庫文件可以從PC機(jī)上的交叉編譯工具安裝目錄下拷貝,如libc- 2.2.2.so、libcryt-2.2.2.so、libm-2.2.2.so、libutil-2.2.2.so等,為部分相應(yīng)庫建立快捷方式,提供一些應(yīng)用程序按快捷方式名稱調(diào)用。值得注意的是C庫要采用C庫的版本glibc, glibc位于/lib/libc.so.6。

4.3、利用mkcramfs工具生成cramfs壓縮文件系統(tǒng)

一般情況下都要把已經(jīng)規(guī)劃好的目錄結(jié)構(gòu)轉(zhuǎn)換成一個映象文件,創(chuàng)建Cramfs文件系統(tǒng)需要mkcramfs工具,mkcramfs能把相應(yīng)的Cramfs目錄樹壓縮成為單一的映象文件,這個映象文件就是我們需要移植的文件系統(tǒng)。Mkcramfs的命令格式為:

Mkcramfs [-h] [--e edition] [-I file] [-n name] DirName OutFile

#mkcramfs root cramfs.Img

用以上的命令就可以生成我們需要的cramfs文件系統(tǒng)映象文件,我們可以發(fā)現(xiàn)原本為2.36Mbytes大小的目錄內(nèi)容,被壓縮成一個1.08Mbytes的文件系統(tǒng)映象文件,通過vivi或測試程序?qū)⑵鋵懭隖lash中就可以驗(yàn)證是否移植成功。

五、小結(jié)

是一個壓縮格式的文件系統(tǒng),如果系統(tǒng)存儲資源比較緊張的話,采用CramFS作為嵌入式Linux系統(tǒng)的是一個不錯的選擇。

創(chuàng)新點(diǎn):

由于的內(nèi)存資源比較緊張, 采用CramFS作為嵌入式Linux系統(tǒng)的是一種解決內(nèi)存資源緊張的比較可行的方法。本文討論了在嵌入式Linux系統(tǒng)中構(gòu)建CramFS文件系統(tǒng)的詳細(xì)過程,為解決內(nèi)存資源緊張?zhí)峁┮环N參考。

參考文獻(xiàn):

1、 李巖、榮盤祥,基于S3C44B0X嵌入式Uclinux系統(tǒng)的原理及應(yīng)用[M],清華大學(xué)出版社,2005。

2、 ARM 9 Linux實(shí)驗(yàn)教程,深圳市英蓓特信息技術(shù)有限公司[M],2005。

3、 王集森、劉昊、胡晨,嵌入式Linux中多文件系統(tǒng)的構(gòu)建[J],單片機(jī)與應(yīng)用,2005 12,12-15頁。

4、 周宏霖,CramFS在Linux嵌入式環(huán)境的應(yīng)用,http://www.lee-1.com/hlchou/LinuxCramFS.htm

5、 郝淑鳳等,基于ARM的uCLinux啟動引導(dǎo)實(shí)現(xiàn)的分析[J],微計(jì)算機(jī)信息,2005,8-2,50-52頁

作者簡介:

盧劍翔(1978-),男,廣西玉林人,西南科技大學(xué)在讀碩士研究生;主要研究方向:嵌入式操作系統(tǒng)。

劉成安(1965-),男,西南科技大學(xué)副教授,碩士生導(dǎo)師;主要研究方向:開發(fā)與應(yīng)用。

胡和智(1976-),男,陜西商南人,河北工業(yè)大學(xué)廊坊分院教師,主要研究方向:集成電路設(shè)計(jì)與制造。

劉振剛(1981-),男,山東青島,西南科技大學(xué)在讀碩士研究生;主要研究方向:控制理論與控制工程。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉