UBI文件系统和镜像的制作及分区挂载说明
定義:無排序區(qū)塊圖像文件系統(tǒng)(Unsorted Block Image File System, UBIFS),主要適用于nand flash設(shè)備。
三個子系統(tǒng):
UBIFS文件系統(tǒng)
可以理解為用戶層,工作于UBI之上。
比如我們設(shè)備中掛載可見的分區(qū)。
UBI
是MTD設(shè)備的高層次表示,一般用戶層也可以在這里做開發(fā)定制,比如升級,通過ioctl控制MTD設(shè)備的讀寫。
MTD子系統(tǒng)
提供nand flash底層訪問接口。
下面是這三個子系統(tǒng)的關(guān)系圖,畫圖太費時,借用一下牛畫好滴~~
好了,接下來就可以講UBIFS文件系統(tǒng)的制作和鏡像的制作,以及分區(qū)的掛載了,順序就是先制作*.ubifs,然后制作*.img,最后mount分區(qū)。
一、UBIFS文件系統(tǒng)制作
我們先手動通過命令來制作UBIFS
這兩條命令后,就會產(chǎn)生my.ubifs了,mkfs.ubifs工具mtd-utils中會提供,這個大家就想辦法自己去弄吧。
參數(shù)說明如下:
這里重點講一下這個-c 400是怎么得來的,首先我的物理分區(qū)大小是100MB
公式:(10010241024)/ 4096 / 64 = 400
理論上要給bad block壞塊預(yù)留點空間,大家制作的時候盡量預(yù)留一點出來,-c 指定該分區(qū)最大邏輯擦除塊數(shù)量,該值隨著根文件系統(tǒng)分區(qū)的大小和該分區(qū)的壞塊數(shù)調(diào)整。
二、UBI鏡像的制作
有了my.ubifs后,就可以使用如下命令制作img鏡像了,命令如下:
其中ubinize.cfg內(nèi)容如下:
[ubifs] mode=ubi image=./my.ubifs vol_id=0 vol_type=dynamic vol_name=rootfs vol_flags=autoresize如上,ubinize是mtd-util中提供的,
“配置文件說明:
mode=ubi
image=./my.ubifs 指定mkfs.ubifs制作生成的根文件系統(tǒng)鏡像文件路徑;
vol_id=0 指定根文件系統(tǒng)樹的卷標(biāo)為0,u-boot的bootargs參數(shù)需要根據(jù)它來設(shè)置;
vol_size=xxx指定該UBI邏輯卷的大小,該值計算公式一般為 邏輯擦除塊大小邏輯擦除塊個數(shù),
該值一般不用寫,默認(rèn)值是image大小。
vol_type=dynamic
vol_name=rootfs 指定UBI卷的名稱,u-boot的bootargs參數(shù)需要根據(jù)它來設(shè)置;
vol_flags=autoresize UBI Subsystem在系統(tǒng)啟動時自動調(diào)整邏輯擦除塊的個數(shù)”
三、ubifs分區(qū)的掛載
有了鏡像,在gtp分區(qū)表中添加新增的分區(qū)配置,我這里是添加了100MB的空間,然后燒錄到設(shè)備中,那開機(jī)的時候需要去掛載新增的分區(qū)。
需要兩個步驟完成:
1、ubiattach
shell腳本如下,10是dev/mtd10的序號,2是整個ubifs中的第二個序號
2、mount
將/dev/ubi2_0掛載/data目錄,這個2就是上面的第二個參數(shù)序號2
最終的開機(jī)效果:
/dev/ubi2_0 79284 24 79260 0% /data四、分區(qū)的讀寫
最后我還想講一下如何在用戶層對這個/dev/ubi2_0進(jìn)行讀寫操作,比如OTA
Nand flash設(shè)備和eMMC的有些不同,需要先erase后write,不然數(shù)據(jù)是不會成功的。
這里提供一下最終的幾個系統(tǒng)調(diào)用,這些是kernel提供給上層的操作接口。
ioctl(dev_fd, MEMGETINFO, &meminfo); 查詢 ioctl(dev_fd, MEMGETBADBLOCK, &offset); 判斷是否有壞塊 ioctl(dev_fd, MEMERASE, &erase);erase擦除 寫入的話,直接write到指定的fd就可以了好了,以上就是整理的nand相關(guān)的ubifs的內(nèi)容,希望對大家有所幫助!
總結(jié)
以上是生活随笔為你收集整理的UBI文件系统和镜像的制作及分区挂载说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Page.OnPreInit 方法
- 下一篇: 成都电子计算机实验中学 孙蕾,痴迷物理