官方很大按需ubi文件系統(tǒng)使用指南_第1頁
官方很大按需ubi文件系統(tǒng)使用指南_第2頁
官方很大按需ubi文件系統(tǒng)使用指南_第3頁
官方很大按需ubi文件系統(tǒng)使用指南_第4頁
官方很大按需ubi文件系統(tǒng)使用指南_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、© 上海非經(jīng)本公司形式傳播。2019。保留一切權利。技術,任何和個人不得擅自摘抄、本文檔內(nèi)容的部分或全部,并不得以任何商標、和其他商標均為技術的商標。本文檔提及的其他所有商標或商標,由各自的所有人擁有。注意您購買的、服務或特性等應受公司商業(yè)合同和條款的約束,本文檔中描述的全部或部分產(chǎn)品、服務或特性可能不在您的購買或使用范圍之內(nèi)。除非合同另有約定,公司對本文檔內(nèi)容不做任何明示或默示的或保證。由于版本升級或其他,本文檔內(nèi)容會不定期進行更新。除非另有約定,本文檔僅作為使用指導,本文檔中的所有陳述、和建議不任何明示或暗示的擔保。上海技術:518129地址:市龍崗區(qū)坂田總部辦公樓:suppor

2、t客戶服務郵箱:UBI文件系統(tǒng)使用指南前言前言概述linux-2.6.27 后,內(nèi)核加入了一種新型的 FLASH 文件系統(tǒng)UBI (Unsorted BlockImages)。主要FLASH 的特有屬性,通過的方式來實現(xiàn)日志管理、壞塊管理、損益均衡等技術。本文主要如何在內(nèi)核中配置使用 UBI 文件系統(tǒng)以及制作對應的 UBI 文件系統(tǒng)根文了如何轉換鏡像格式以便于在 u-boot 上進行燒錄。件系統(tǒng)鏡像。同時還版本與本文檔相對應的版本如下。文檔版本 06 (2019-10-20)© 上海i技術名稱版本Hi3519V100Hi3519V101Hi3516CV300Hi3516DV200Hi

3、3516EV100Hi3516EV200Hi3516EV300Hi3518EV300Hi3559V100Hi3556V100Hi3516AV200Hi3536CV100Hi3559AV100ESHi3559AV100Hi3559CV100UBI文件系統(tǒng)使用指南前言讀者對象本文檔(本指南)主要適用于技術支持工程師。文檔版本 06 (2019-10-20)© 上海ii技術名稱版本Hi3536DV100Hi3531DV100Hi3521DV100Hi3520DV400Hi3521AV100Hi3531AV100Hi3518EV200Hi3518EV201Hi3516CV200Hi3519A

4、V100Hi3556AV100Hi3516DV300Hi3516AV300Hi3516CV500Hi3559V200Hi3556V200Hi3516EV200Hi3516EV300Hi3518EV300Hi3516DV200Hi3531DV200Hi3535AV100Hi3562V100Hi3566V100Hi3521DV200Hi3520DV500UBI 文件系統(tǒng)使用指南前言修訂修訂累積了每次文檔更新的說明。最新版本的文檔包含以前所有文檔版本的更新內(nèi)容。文檔版本 06(2019 10 20)2.1 小節(jié),步驟 1 和步驟 2,涉及更新。3.2 小節(jié),涉及更新。文檔版本 05(2019 09

5、15)添加Hi3531DV200 的相關內(nèi)容。文檔版本 04 (2018 11 30)新增Hi3516E V200/Hi3516E V300/Hi3518E V300。文檔版本 03 (2018 05 20)2.2、2.4 和 2.5 小節(jié)涉及修改。文檔版本 02 (2018 01 16)新增Hi3559AV100/Hi3559CV100。文檔版本 01 (2017 12 20)新增Hi3520DV400/Hi3521DV100/Hi3531DV100。文檔版本 00B08(2017 11 20)2.2 小節(jié)和 2.4 小節(jié),涉及更新。新增 2.5 小節(jié)。文檔版本 00B07(2017 08

6、15)添加Hi3536DV100 的相關內(nèi)容。文檔版本 00B06 (2017 05 27)添加Hi3559AV100ES 的相關內(nèi)容。文檔版本 00B05 (2017 04 10)添加Hi3536CV100 的相關內(nèi)容。文檔版本 00B04 (2017 03 27)2.2 和 3.2 小節(jié)涉及修改文檔版本 06 (2019-10-20)© 上海iii技術UBI 文件系統(tǒng)使用指南前言文檔版本 00B03 (2017 02 25)添加Hi3556V100 的相關內(nèi)容。2.1 小節(jié)涉及修改文檔版本 00B02 (2016 07 30)添加Hi3516CV300/Hi3559V100 的相

7、關內(nèi)容。文檔版本 00B01 (2015 11 04)第 1 次臨時版本發(fā)布。文檔版本 06 (2019-10-20)© 上海iv技術UBI 文件系統(tǒng)使用指南目錄目錄前言i1 內(nèi)核中使能 UBI11.2 內(nèi)核配置 UBI 選項11.3 UBI2 UBIFS驅動配置選項說明2應用樣例32.1 mount 一個空 UBIFS 文件系統(tǒng)32.22.3制作 UBIFS 根文件系統(tǒng) UBI 鏡像6空 UBIFS 文件系統(tǒng)升級為根文件系統(tǒng)92.4 UBI 鏡像的轉換格式和燒錄102.5 使用 mkubiimg.sh 腳本一鍵式制作 UBI 鏡像133 附錄143.1 UBI 和 MTD 相關的接

8、口和命令143.2 UBI 常見問題14文檔版本 06 (2019-10-20)© 上海v技術UBI 文件系統(tǒng)使用指南1 內(nèi)核中使能 UBI 1UBI內(nèi)核中使能 內(nèi)核版本明細,請參考表 1-1 所示。表1-1內(nèi)核版本本文檔中以單板上的內(nèi)核版本 linux3.18.y 為例,使用配置。UBIFS 文件系統(tǒng),可以按以下1.2 內(nèi)核配置 UBI 選項步驟 1 使能 UBI驅動文檔版本 06 (2019-10-20)© 上海1技術內(nèi)核版本Hi3519V100/Hi3519V101/Hi3516CV300/Hi3516EV 100/Hi3559V100/Hi3556V100/Hi35

9、16AV200/Hi3559AV100ES/Hi3521DV100/ Hi3531DV100/Hi3520DV400/Hi3536CV100linux3.18.yHi3536DV100/Hi3521AV100/ Hi3531AV100/Hi3518EV200/ Hi3518EV201/ Hi3516CV200/Hi3559AV100/Hi3559CV100/Hi3519 AV100/Hi3556AV100/Hi3516CV500/Hi3516DV300/ Hi3516AV300/Hi3559V200/Hi3556V200/Hi3516EV 200/Hi3516EV300/Hi3518EV300

10、/Hi3516DV200/Hi3562V100/Hi3566V100linux4.9.yHi3531DV200/Hi3535AV100/Hi3521DV200/Hi3520 DV500linux4.19.yUBI1內(nèi)核中使能 UBI文件系統(tǒng)使用指南必須先使能 UBI驅動,才能找到 UBIFS 文件系統(tǒng)選項。使能 UBIFS 文件系統(tǒng)步驟 2所有配置按以上圖中所示, 其它 UBI/UBIFS 配置選項使用系統(tǒng)默認值, 不要隨意選擇配置, 如果選擇不慎, UBI 文件系統(tǒng)可能無法正常工作。-結束驅動配置選項說明UBI wear-leveling thresholdUBI 系統(tǒng)每個擦除塊發(fā)生擦除操作

11、的次數(shù)。此選項表示所有擦除操作次數(shù)中,1.3 UBI 最小值和最大值之間的最大間隔。此值默認為 4096,對于MLC 器件,此值應該配置相對小一點,比如 256。MTD devices emulation driver (gluebi)模擬 MTD 驅動,選擇此選項,當創(chuàng)建一個卷時,UBI 將同時模擬一個 MTD 設備。這個功能提供了一個接口,供其它文件系統(tǒng)使用 UBI。比較短的 文檔版本 06 (2019-10-20)© 上海2技術File systems ->-*- Miscellaneous filesystems -><*> UBIFS file sy

12、stem supportDevice Drivers -><*> Memory Technology Device (MTD) support -><*> Enable UBI - Unsorted block images ->UBI 文件系統(tǒng)使用指南2 UBIFS 應用樣例 2 UBIFS 應用樣例一個空 UBIFS 文件系統(tǒng)單板當前有 4 個分區(qū),分區(qū)的情況如下圖。2.1 mount通過以下幾步, 就可以把 mtd3 分區(qū)成 ubi 卷,做為ubi 分區(qū)使用。格式化 ubi 分區(qū)使用以下命令格式化 ubi 分區(qū)。步驟 1 OSDRV 編譯完成后,

13、生成的 UBI 工具放在 osdrv/pub/bin/board_/目錄下,board_路徑名與編譯時選擇的工具鏈以及相關。需將 UBI 工具到單板,通過命令“chmod +x ubi 工具”加可執(zhí)行權限。 不推薦擦除(如:用命令 flash_eraseall )分區(qū), 擦除分區(qū)后,可以正常 mount 到 ubifs。 但是擦除分區(qū)操作, 將使 UBI 系統(tǒng)丟失的每個擦除塊的擦除次數(shù)。綁定 UBI 到 MTD 分區(qū)步驟 2綁定 UBI到 mtd3 分區(qū),使用以下命令。文檔版本 06 (2019-10-20)© 上海3技術# ubiformat /dev/mtd3# cat /pro

14、c/mtddev:sizeerasesize name mtd0: 01000000 00020000 "hinand"mtd1: 00400000 00020000 "kernel"mtd2: 02000000 00020000 "rootfs"mtd3: 03200000 00020000 "ubi"UBI2 UBIFS 應用樣例文件系統(tǒng)使用指南參數(shù)”-m 3”表示使用 mtd3 分區(qū),“-b n”表示保留 n 個塊用于壞塊處理。只有綁定了ubi 到 mtd 分區(qū)以后,才能在 /dev/ubi“ubi0”,如果

15、曾經(jīng)創(chuàng)建過 ubi下找到卷,那綁定以后才能在 /dev/ 下找到并且ubi 卷“ubi0_0”。命令執(zhí)行,顯示如下圖。最后一行打印“ubi_bgt0d”表示ubi0,查看所有“l(fā)s /dev/ubi*”,將創(chuàng)建“/dev/ubi0”。發(fā)現(xiàn)多一個創(chuàng)建 UBI 卷步驟 3文檔版本 06 (2019-10-20)© 上海4技術# ubiattach /dev/ubi_ctrl -m 3 UBI: attaching mtd3 to ubi0 UBI: scanning is finishedUBI: attached mtd3 (name "UBIFS01", size

16、 50 MiB) to ubi0UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048 UBI: VID header offset: 2048 (aligned 2048), data offset: 4096 UBI: good PEBs: 400, bad PEBs: 0, corrupted PEBs: 0UBI: user volume: 0, internal volumes: 1, max.

17、volumes count: 128 UBI: max/mean erase counter: 1/1, WL threshold: 4096, image sequence number: 728242785UBI: available PEBs: 376, totalPEBs: 24, PEBs for bad PEB handling: 20UBI: background th"ubi_bgt0d" started, PID 101 UBI: attaching mtd3 to ubi0UBI: scanning is finishedUBI: attached mt

18、d3 (name "UBIFS01", size 50 MiB) to ubi0UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048 UBI: VID header offset: 2048 (aligned 2048), data offset: 4096 UBI: good PEBs: 400, bad PEBs: 0, corrupted PEBs: 0UBI: user vol

19、ume: 0, internal volumes: 1, max. volumes count: 128 UBI: max/mean erase counter: 1/1, WL threshold: 4096, image sequence number: 728242785UBI: available PEBs: 376, totalPEBs: 24, PEBs for bad PEB handling: 20UBI: background th"ubi_bgt0d" started, PID 101# ubiattach /dev/ubi_ctrl m 3 b nUB

20、I2 UBIFS 應用樣例文件系統(tǒng)使用指南UBI 卷可以理解為 UBI的分區(qū)。創(chuàng)建 ubi 卷命令如下:參數(shù)“/dev/ubi0”是上一步驟創(chuàng)建的 ubi參數(shù)“-N ubifs”表示創(chuàng)建的卷名為“ubifs”。參數(shù)“-s SIZE”表示創(chuàng)建的分區(qū)大小。SIZE 值應小于“/dev/ubi0”能提供的空間大小??梢允褂妹睢皍binfo”查看當前可使用的 LEBs 大小。如下圖紅色標記行所示,當 UBI提供的空間為 50 MiB 時,可使用的空間大小為 45.5MiB。所以,應該保證所創(chuàng)建的卷的 SIZE 值小于可使用的 LEBs 空間大小。查看所有“l(fā)s /dev/ubi*”,“/dev/ub

21、i0_0”。將發(fā)現(xiàn)多一個將被在 UBI卷只用創(chuàng)建一次,創(chuàng)建后,卷上,下一次啟動,不用再次創(chuàng)建卷。刪除卷,用命令 “ubirmvol”. 如果使用此命令刪除卷,卷上所有數(shù)據(jù),也將被刪除。掛載空 UBIFS 文件系統(tǒng)步驟 4此時就可以將創(chuàng)建的卷掛載到指定的目錄上去了,命令如下:或者文檔版本 06 (2019-10-20)© 上海5技術# mount -t ubifs ubi0:ubifs /mnt/# mount -t ubifs /dev/ubi0_0 /mnt/# ubinfo /dev/ubi0 ubi0Volumes count:0Logical eraseblock size:

22、126976 bytes, 124.0 KiBTotal amount of logical eraseblocks:400 (50790400 bytes, 48.4 MiB) Amount of available logical eraseblocks: 376 (47742976 bytes, 45.5 MiB)um count of volumes128Count of bad physical eraseblocks:0Count ofphysical eraseblocks: 20Currentum erase counter value:1Minimum input/outpu

23、t unit size:2048 bytes Character device major/minor:253:0# ubimkvol /dev/ubi0 -N ubifs -s SIZEUBI 文件系統(tǒng)使用指南2 UBIFS 應用樣例參數(shù)“/dev/ubi0_0”表示mount 到卷 “ubi0_0”,也可以使用參數(shù)“ubi0:ubifs”。某些版本的內(nèi)核,不支持“/dev/ubi0_0”形式的參數(shù),只能使用“ubi0:ubifs”形式的參數(shù).“ubi0:ubifs”中的“ubifs”表示卷的名稱,在創(chuàng)建 ubi 卷時設置。Mount,將顯示如下:查看分區(qū),將顯示如下內(nèi)容:UBIFS 文件系

24、統(tǒng)顯示的分區(qū)大小、剩余空間并確。因為 UBIFS 文件保存的是文件壓縮后的內(nèi)容,壓縮比率與文件內(nèi)容相關??赡苁S嗫臻g顯示只有 2M, 但是可以將一個 4M 的文件完整保存。-結束2.2 制作 UBIFS 根文件系統(tǒng) UBI 鏡像制作 ubifs 文件系統(tǒng)鏡像,需要使用 mtd-utils 工具,命令如下:參數(shù)“-F”使能“white-space-fixup”,如果是通過 u-boot 燒寫需要使能此功能。文檔版本 06 (2019-10-20)© 上海6技術$./mkfs.ubifs F -d rootfs_uclibc -m 2KiB -o rootfs.ubiimg -e 126

25、976 -c 256 -v# df -hFilesystemSizeUsed Available Use% Mounted on/dev/root32.0M14.8M17.2M 46% /devtmpfs28.9M4.0K28.9M 0% /dev/dev/ubi0_040.3M20.0K38.2M 0% /mntUBIFS: background th"ubifs_bgt0_0" started, PID 107UBIFS: mounted UBI device 0, volume 0, name "ubifs"UBIFS: LEB size: 126

26、976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytesUBIFS: FS size: 46473216 bytes (44 MiB, 366 LEBs), journal size 2285568 bytes (2 MiB, 18 LEBs)UBIFS:for root: 2195044 bytes (2143 KiB)UBIFS: media format: w4/r0 (law4/r0), UUID 80EC88B4-1AF1-4193- AC8F-5506B1A21742, small LPT m# mou

27、nt -t ubifs /dev/ubi0_0 /mnt/ UBIFS: default file-system createdUBI2 UBIFS 應用樣例文件系統(tǒng)使用指南參數(shù)“-d rootfs_uclibc”表示將要被制作為 UBIFS 鏡像的根目錄為“rootfs_uclibc”, 這個參數(shù)也可以寫為 “-r rootfs_uclibc”。參數(shù)“-m 2KiB”表示最小讀寫單元是 2KiB,這個參數(shù)也可以寫為“-m 2048”。這里使用的 NAND頁大小為 2KiB。最小讀寫單元是指 FLASH 器件一次讀寫操作, 最小操作的字節(jié)數(shù),對 NAND 器件,是頁大小,如 2K/4K/8K;

28、對于 NOR 器件,是 1 個字節(jié)。參數(shù)“-o rootfs.ubiimg”表示制作出來的鏡像名稱為“rootfs.ubiimg”。參數(shù) “-e 126976”表示邏輯擦除塊大小。最小讀寫單元和邏輯擦除塊大小可以通過讀 MTD 和 UBI 系統(tǒng)獲得,也可以通過計算獲得。讀 MTD命令以及顯示內(nèi)容如下:讀 UBI命令(此命令需要先綁定 UBI 見 2.1.3)以及顯示內(nèi)容如下:文檔版本 06 (2019-10-20)© 上海7技術Count ofphysical eraseblocks: 20Currentum erase counter value:2Minimum input/ou

29、tput unit size:2048 bytes Character device major/minor:253:0Present volumes:0# ubinfo /dev/ubi0 ubi0Volumes count:1Logical eraseblock size:126976 bytes, 124.0 KiB Total amount of logical eraseblocks:400 (50790400 bytes, 48.4 MiB)Amount of available logical eraseblocks: 0 (0 bytes)um count of volumes

30、128Count of bad physical eraseblocks:0# mtdinfo /dev/mtd3 mtd3Name:ubiType:nandEraseblock size:131072 bytes, 128.0 KiBAmount of eraseblocks:400 (52428800 bytes, 50.0 MiB) Minimum input/output unit size: 2048 bytesSub-page size:2048 bytesOOB size:60 bytesCharacter device major/minor: 90:6 Bad blocks

31、are allowed:trueDevice is writable:trueUBI2 UBIFS 應用樣例文件系統(tǒng)使用指南參數(shù)“-c 256”表示此文件系統(tǒng)最多使用“256”個邏輯擦除塊。計算“256 * LEB”得到此文件系統(tǒng)的最大可使用空間。參數(shù)“-v”顯示制作 UBIFS 過程中的詳細。以上標記為紅色的,表示此的邏輯擦除塊大小。邏輯擦除塊大小也可以通過計算得到,計算如下表:后, “mkfs.ubifs”的詳細打印。下圖為制作文檔版本 06 (2019-10-20)© 上海8技術FLASH 種類邏輯擦除塊(LEB)大小NORLEB = blocksize 128NAND 無子頁

32、LEB = blocksize pagesize * 2NAND 有子頁LEB = blocksize pagesize * 1說明:Blocksize : flash 物理擦除塊大小; Pagesize: flash 讀寫頁大小;UBI2 UBIFS文件系統(tǒng)使用指南應用樣例這里需要注意, 制作的 UBIFS 根文件系統(tǒng)鏡像為 UBI 鏡像,可以在內(nèi)核下對空UBIFS 文件系統(tǒng)進行升級(update)操作,詳見 2.3 空 UBIFS 文件系統(tǒng)升級為根文件系統(tǒng)。該鏡像不能直接燒錄到 MTD 分區(qū)上使用,但是可以通過格式轉換,轉換成能直接燒錄MTD 分區(qū)上的格式。詳見 2.4 UBI 鏡像的轉換

33、格式和燒錄。做 UBI 鏡像需要工具和內(nèi)核版本必須搭配使用,UBI 工具版本號和單板內(nèi)核版本如果不配套,制作的鏡像無法在單板上 mount。2.3 空 UBIFS 文件系統(tǒng)升級為根文件系統(tǒng)在內(nèi)核(區(qū)別u-boot)下建立好 UBI 卷后, 可以使用應用程序, 直接對卷進行升級。升級步驟如下:步驟 1 創(chuàng)建建立 UBI 卷文檔版本 06 (2019-10-20)© 上海9技術$ ./mkfs.ubifs -d rootfs_uclibc -m 2KiB -o rootfs.ubiimg -e 126976 -c256 -v mkfs.ubifsroot:rootfs_uclibc/ m

34、in_io_size: 2048leb_size:126976max_leb_cnt: 256output:rootfs.ubiimgjrn_size:3936256:0compr:lzokeyhash:r5fanout:8orph_lebs:1space_fixup: 0super lebs:1master lebs: 2log_lebs:4lpt_lebs:2orph_lebs:1main_lebs:45gc lebs:1index lebs:1leb_cnt:55UBI2 UBIFS文件系統(tǒng)使用指南應用樣例詳見 2.1.3 創(chuàng)建 UBI 卷制作 UBIFS 根文件系統(tǒng)UBI 鏡像詳見 2

35、.2 制作 UBIFS 根文件系統(tǒng) UBI 鏡像。步驟 2tftp根文件系統(tǒng) UBI 鏡像到內(nèi)核步驟 3在內(nèi)核下升級 UBIFS 文件系統(tǒng)步驟 4使用以下命令:參數(shù)“/dev/ubi0_0”表示需要升級的卷,這個卷需要預先創(chuàng)建, 以不用擦除。升級前, 卷上的清除卷內(nèi)容,使用命令“ubiupdatevol /dev/ubi0_0 t”。設置 u-boot 啟動參數(shù)UBIFS 下 u-boot 的啟動參數(shù) bootargs 配置形式如下圖:步驟 5參數(shù)“ubi.mtd=3”表示 UBI 綁定到“/dev/mtd3”分區(qū)。參數(shù)“root=ubi0:ubifs”中“ubi0”表示使用 UBI 綁定后的

36、 UBI 分區(qū), 其中“ubifs”為創(chuàng)建 UBI 卷時定義的卷名。某些內(nèi)核版本不識別“root=/dev/ ubi0_0”形式的參數(shù)。參數(shù)“rootfstype=ubifs”表示使用 ubifs 文件。-結束2.4 UBI 鏡像的轉換格式和燒錄步驟 1 制作 UBIFS 根文件系統(tǒng)UBI 鏡像詳見 2.2制作 UBIFS 根文件系統(tǒng) UBI 鏡像。文檔版本 06 (2019-10-20)© 上海10技術setenv bootargs 'mem=128M console=ttyAMA0,115200 ubi.mtd=3 root=ubi0:ubifs rootfstype=u

37、bifs rw mtdparts=hinand:1M(boot),4M(kernel),32M(yaffs2),50M(ubi),- (reserve)'# ubiupdatevol /dev/ubi0_0 rootfs.ubiimg# tftp -g -r rootfs.ubiimg 40UBI2 UBIFS 應用樣例文件系統(tǒng)使用指南制作 UBI 鏡像轉換配置文件UBI 鏡像轉換格式時, 需要一個配置文件 ubi.cfg 作為第(3)步的輸入。內(nèi)容如下圖所示:步驟 2參數(shù)“mode=ubi”是強制參數(shù), 當前不能輸入別的值, 保留為以后擴展功能;參數(shù)“image

38、=./rootfs*.ubiimg”表示卷對應的 UBIFS 文件系統(tǒng)鏡像文件名稱,此文件即2.2 制作 UBIFS 根文件系統(tǒng) UBI 鏡像制作的鏡像文件。參數(shù)“vol_id=0”表示卷的 ID 號, UBI 鏡像可能包含多個卷, 這個用來區(qū)別不同的卷。參數(shù)“vol_type=dynamic”表示當前卷類型是可讀寫的。如果此文件為只讀,對應的參數(shù)應該為“vol_type=static”;參數(shù)“vol_name=ubifs”表示卷的名稱, UBIFS 做根文件系統(tǒng)時, 將用到卷名稱。參數(shù)“vol_flags=autoresize”表示卷大小是可以動態(tài)擴展。轉換 UBI 鏡像格式步驟 3使用以下

39、命令:參數(shù)“-o rootfs.ubifs”表示輸出的 UBI 鏡像轉換后的名稱為“rootfs.ubifs”,輸入的 UBI 鏡像文件名由 ubi.cfg 配置文件輸入。參數(shù)“-m 2KiB”表示最小讀寫單元是“2KiB”。參數(shù)“-p 128KiB”表示 flash 的擦除塊大小。注意這是物理擦除大小, 不是邏輯擦除塊大小。參數(shù)“ubi.cfg”是一個配置文件, 第(2)步已經(jīng)詳細講解過此文件。參數(shù)“-v”顯示制件過程的詳細。下圖為制作后的詳細打印。文檔版本 06 (2019-10-20)© 上海11技術$ ./ubinize -o rootfs.ubifs -m 2KiB -p

40、128KiB ubi.cfg -vubifs-volumn mode=ubiimage=./rootfs_hi35xx_2k_128k_32M.ubiimg vol_id=0vol_type=dynamic vol_alignment=1 vol_name=ubifsvol_flags=autoresizeUBI2 UBIFS文件系統(tǒng)使用指南應用樣例U-BOOT 下 ubi 鏡像轉換文件的燒寫步驟 4U-BOOT 下,燒寫 UBI 鏡像轉換文件和燒寫內(nèi)核的一樣。 命令如下圖所示: offset 即進行 flash 操作的開始地址,例 nand erase 0x800000 0x720000,即

41、 flash 從 8MB 開始擦除,擦除 7296KB 長度。len 是 UBIFS 根文件系統(tǒng)分區(qū)大小長度。 ddr_addr 即內(nèi)存地址,要選用可使用的 ddr 地址進行操作,否則可能會造成系統(tǒng)掛死。具體項目 ddr 地址請參考Hi35xx U-boot 移植應用開發(fā)指南寫。-結束文檔版本 06 (2019-10-20)© 上海12技術# nand erase offset len # mw.b ddr_addr 0xff len# tftp ddr_addr rootfs.ubifs# nand write ddr_addr flash_start_addr ubi_len$

42、./ubinize -o rootfs.ubifs -m 2KiB -p 128KiB ubi.cfg -v ubinize: LEB size:126976ubinize: PEB size:131072ubinize: min. I/O size:2048ubinize: sub-page size:2048ubinize: VID offset:2048ubinize: data offset:4096ubinize: UBI image sequence number: 2067745235 ubinize: loaded the ini-file "ubi.cfg"

43、; ubinize: count of sections: 1ubinize: parsing section "ubifs-volumn" ubinize: mode=ubi, keep parsing ubinize: volume type: dynamicubinize: volume ID: 0ubinize: volume size was not specified in section "ubifs-volumn", assume minimum to fit image "./rootfs_hi35xx_2k_128k_32M

44、.ubiimg"6983680 bytes (6.7 MiB) ubinize: volume name: ubifsubinize: volume alignment: 1 ubinize: autoresize flags found ubinize: adding volume 0 ubinize: writing volume 0ubinize: image file: ./rootfs_2k_128k_32M.ubiimg ubinize: writing layout volumeubinize: doneUBI 文件系統(tǒng)使用指南2 UBIFS 應用樣例2.5 使用 mk

45、ubiimg.sh 腳本一鍵式制作 UBI 鏡像2.1-2.4 章節(jié)繁瑣的 UBI 鏡像和 UBIFS 根文件系統(tǒng)鏡像制作步驟,在osdrv/tools/pc/ubi_sh/目錄下提供了 mkubiimg.sh 腳本,專門用于制作無子頁 Nand Flash 使用的 UBI 鏡像和 UBIFS 根文件系統(tǒng)鏡像。使用以下命令:命令:./mkubiimg.sh hi35xx 2k 128k osdrv/pub/rootfs 50M osdrv/pub/bin/pc 1舉個例子,之后會生成三個文件:rootfs_hi35xx_2k_128k_50M.ubiimg:該鏡像不能直接燒錄到 MTD 分區(qū),但是可以使用ubiupdate 命令在內(nèi)核下對空 UBIFS 文件系統(tǒng)進行升級操

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論