嵌入式文件系統的構建

參考《開源》雜誌08年第9期嵌入式Linux文件系統的構建。

 

嵌入式文件系統有安全性和均衡負載這樣的要求,而日誌型文件系統可以很好地解決安全性的問題。
經過幾年來的發展。日誌型的嵌入式文件系統已成爲嵌入式文件系統的主流。

 

● 構建文件系統

首先建立一個文件系統的工作空間。如圖:

 

整個文件系統中除了tmp 和var目錄放在SDRAM內以外,其他所有目錄都放在Flash中。

 

物理文件系統是JFFS2 ,考慮到擴充物理文件系統的要求,保留了Linux的VFS層次。考慮到
存儲設備擴充的要求,在Linux內核中加入了對MTD設備的支持。如圖:

 

構建文件系統最基本的要求就是系統能夠在此基礎上啓動運行起來,所以,/sbin下的init程序必不可少。
init程序是引導過程完 成後內核運行的第一個程序,它能啓動全部其他程序。

init會執行/etc/inittab配置文件。

 

把嵌入式環境所需要的文件統統cp到對應的目錄,如/lib下存放庫,/bin下是應用程序。

 

·MTD設備配置

第一步,配置內核參數

     對於flash設備都需要MTD設備的支持,需要在內核中選中Memory Technology Devices(MTD)support,

 

第二步,編寫針對目標平臺Flash設備的MTD驅動程序

    就像寫其他linux驅動程序一樣,要給MTD設備完成相應的驅動程序。這屬於驅動程序範疇,以後再研究。

 

第三步,將修改過的MTD驅動文件作爲內核文件的補丁,並給內核文件打上這個補丁,最後,
編譯生成內核文件。

 

第四步,使用mknod命令建立MTD設備。

 

·JFFS2映象文件的生成

第一步,配置內核

配置內核,選中(JFFS2)suppor

 

假設從一個RAMDISK的文件系統中得到建立根文件系統所需的全部文件和系統所有的設備等信息。
製作步驟如下:

 

第一步,在開發主機上將這個Ramdisk以loop的方式掛接到某個臨時目錄下。在這個目錄下就出現
了一些文件系統的基本文件和信息,可以做增刪以達到定製的目的。

 

第二步,修改/etc/rc.d/rc.sysinit
文件,使得文件系統在remount時不會出現只讀的情況。具體修改如下:
Mount -n -o remount.rw//加入這一行
Mount -n -t proc/proc rw//在這一行中加入-n

第三步,使用mkfs.jffs2生成JFFFS2的映像文件。具體的命令格式如下:
Mkfs.jffs2 -d<文件系統所在目錄>-o<映像文件名>
這時,就得到了一個JFFS2的映像文件,將它下載到目標平臺。最後就是如何掛載它,使它成爲一個
根文件系統了。

 

這篇文章到了後邊具體操作的時候說明的還是不夠細緻,只是一個大體的流程,每一個步驟都需要很多其他知識,就單單MTD驅動這塊,就夠寫的。以後我再找更詳細的資料進行補充。

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