【轉】UBI文件系統

原文地址:http://www.embedu.org/Column/Column102.htm 

 

     在linux-2.6.27以前,談到Flash文件系統,大家很多時候多會想到cramfs、jffs2、yaffs2等文件系統。它們也都是基於文件系統+mtd+flash設備的架構。linux-2.6.27後,內核加入了一種新型的flash文件系統UBI(Unsorted Block Images)。這裏簡單介紹下UBI文件系統加入的原因,及使用方法。

 

一、產生的背景

     FLASH具有的“先擦除再寫入”、壞塊、“有限的讀寫次數”等特性,目前管理FLASH的方法主要有:

     1、採用MTD+FTL/NFTL(flash 轉換層/nand flash轉換層)+ 傳統文件系統,如:FAT、ext2等。FTL/NFTL的使用就是針對FLASH的特有屬性,通過軟件的方式來實現日誌管理、壞塊管理、損益均衡等技術。但實踐證明,由於知識產權、效率等各方面因素導致本方案有一定的侷限性。

     2、採用硬件翻譯層+傳統文件系統的方案。這種方法被很多存儲卡產品採用,如:SD卡、U盤等。這種方案對於一些產品來說,成本較高。

     3、採用MTD+ FLASH專用文件系統,如JFFS1/2,YAFFS1/2等。它們大大提高了FLASH的管理能力,並被廣泛應用。

JFFS2、YAFFS2等專用文件系統也存在着一些技術瓶頸,如:內存消耗大,對FLASH容量、文件系統大小、內容、訪問模式等的線性依賴,損益均衡能力差或過渡損益等。在此背景下內核加入了UBI文件系統的支持。

 

二、使用方法

 

     環境:omap3530處理器、 (128MByte 16 位NAND Flash) 、linnux-2.6.28內核


     1、配置內核支持UBIFS:

 

       配置mtd支持UBI接口

      Device Drivers  --->Memory Technology Device (MTD) support  --->UBI - Unsorted block images  --->Enable UBI
     

       配置內核支持UBIFS文件系統 
      File systems  --->Miscellaneous filesystems  --->UBIFS file system support 
      

     2、將一個MTD分區4掛載爲UBIFS格式

     3、製作UBIFS文件系統

     在製作UBI鏡像時,需要首先確定以下幾個參數:

     參數可以由幾種方式得到

     1)如果使用的是2.6.30以後的內核,這些信息可以通過工具從內核獲得,如:mtdinfo –u。

     2)之前的內核可以通過以下方法:

     3)也可以通過ubi和mtd連接時的產生的信息獲取,如:

     其中,ubinize.cfg的內容爲:

 
 

發佈了10 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章