UBI根檔案的製作

2021-06-27 21:27:34 字數 2629 閱讀 8910

ubi檔案系統的簡介:我們傳統對flash上的日誌和壞塊管理都是通過mtd+flash專用檔案系統來進行管理(如jffs2、yaffs2),但這兩種檔案系統也存在著一些技術瓶頸:磨損均衡,讀寫速度等問題。所以在這樣的背景下,我們通常用ubi檔案系統來對flash進行管理就比較方便。ubi檔案是建立在ubi一層上的,通過ubi的特有頭部資料實現邏輯擦除塊到物理擦除塊的對映,卷管理,磨損均衡等問題,它是建立在mtd子系統之上。

在製作ubi檔案系統時主要會遇到三個方面的問題:製作ubi工具的生成,核心支援,u-boot引數的傳遞。

製作ubi檔案時用到的工具:

mkfs.ubifs和ubinize

然後對他們進行解壓縮,每個壓縮包解壓後都會生成對應的子目錄:

然後我們在分別進入子目錄進行交叉編譯,以其中乙個為例:

在每個子目錄下都有乙個configuer檔案,它是我們用來生成對應的makefile檔案,其相關用法可以用./configure --help命令來進行了解,其中包括你交叉編譯後相關的庫的安裝路徑,是否使能動態庫,靜態編譯等等。比如第一幅圖的install目錄就是我指定的安裝路徑。

最後我們在進入到

執行make進行編譯,在編譯過程中我們會遇到相關庫找不到的問題,這時我們就用export cflags或ldflags = -i或-l來指定相關庫的絕對路徑。

最後編譯成功後會生成mkfs.ubifs,這個工具是用來生成ubi檔案的映象檔案的。我們生成映象檔案後我們會用ubinize工具來

將mkfs.ubifs

製作的映像轉換為可以直接用

nand write

命令燒錄的映像檔案。這個工具在

接下來我們就用這兩個工具來製作ubi的映象檔案

說明一下各個引數的意思:

-r:制定檔案內容的位置 

-m:頁面大小 

-e:邏輯擦除塊大小 

-p:物理擦除塊大小 

-c:最大的邏輯擦除塊數量

不同的flash對應的引數的值不同

然後對生成的映象檔案使用

對於$sub-page_size和vid_head_offset都是512,而對於config_file檔案的內容:

其中指定了等會u-boot引數要使用到的變數,比如vol_id=0,指定了相應卷標的序列號。

當核心啟動時,會根據相應的卷標名去尋找根檔案系統最後就會生成乙個根據你的目錄樹所製作成的ubi檔案系統。  

2.   新增核心支援

device drivers  --->

memory technology device (mtd) support  --->

enable ubi - unsorted block images  --->

--- enable ubi - unsorted block images                                     

(4096) ubi wear-leveling threshold (new)                                   

(1)   percentage of reserved eraseblocks for bad eraseblocks handling (new)

mtd devices emulation driver (gluebi) (new)                          

[ ]   ubi debugging (new)                     

file systems  --->

[*] miscellaneous filesystems  --->

ubifs file system support          

[*]     extended attributes support      

[*]     advanced compression options     

[*]       lzo compression support (new)  

[*]       zlib compression support (new) 

[ ]     enable debugging support (new)

另外還要取消以下選項:

取消游標所在處和samsung s3c nand hardware ecc校驗,不然我們在掛載檔案系統時會出現錯誤。

詳情請參考:

3. 修改u-boot的引數

這是我的核心分割槽及ubi掛載時相應的資訊

解壓ubi檔案 製作ubi檔案系統

製作 ubi檔案系統 目錄開發環境 ubi檔案系統簡介 ubi檔案系統前期準備 核心配置 開發板ubifs 工具 flash eraseall ubiattach ubimkvol 主機mtd utils 工具 mkfs.ubifs ubinize 編譯問題 製作ubi 檔案系統映象 生成ubifs...

解壓ubi檔案 製作ubi檔案系統 pdf

製作ubi檔案系統.pdf 製作ubi 檔案系統 目錄開發環境1 ubi 檔案系統簡介1 ubi 檔案系統前期準備2 核心配置2 開發板ubifs 工具 flash eraseall ubiattach ubimkvol 2 主機mtd utils 工具 mkfs.ubifs ubinize 4 編...

根檔案的製作與掛接

tar jxf busybox 1.20.0.tar.bz2 設定busybox cd busybox 1.20.0 make menuconfig 進入選單,在cross compiler prefix選項填寫 arm linux 編譯 make 建立目錄 mkdir work fs mini m...