linux内核创建ubi,UBI文件系统制作和挂载
關(guān)于參數(shù)可以參考attach的命令輸出:
root@ubuntu:~# ubiattach? /dev/ubi_ctrl -m 4 -d 0
UBI device number 0, total 4000 LEBs (516096000 bytes, 492.2 MiB), available 0LEBs (0 bytes), LEB
size 129024 bytes (126.0 KiB)
root@ubuntu:~#
ubinize.cfg文件
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=450MiB --》一般要比真實的size要小
vol_type=dynamic
vol_alignment=1
vol_name=rootfs
vol_flags=autoresize
5. UBI文件系統(tǒng)鏡像在Linux下的燒寫
flash_eraseall /dev/mtd4
ubiformat /dev/mtd4 -s 512 -f /xxx/ubi.img
6、 UBI文件系統(tǒng)鏡像在U-BOOT下的燒寫
//load ubi image to RAM
tftp ubi.img
//erase MTD4 nand space
nand erase 0x6c0000 0xc820000
//write image to nand
nand write.i 0x81000000 0x6c0000 0xxxxx(image size)
7. UBI文件系統(tǒng)鏡像在Linux下的掛載和卸載
掛載
ubiattach /dev/ubi_ctrl -m 4 -d 0
mount -t ubifs ubi0_0 /mnt/ubi
卸載
umount /mnt/ubi
ubidetach -d 0
8、使用ubi做根文件系統(tǒng)
需要在bootargs中設(shè)置如下信息:
root=ubi0:rootfs ubi.mtd=4 rootfstype=ubifs
配置linux內(nèi)核
配置的時候選上
1)Device Drivers?--->Memory Technology Device (MTD) support? --->UBI - Unsorted blockimages? --->Enable UBI
2)File systems?--->Miscellaneous filesystems? --->UBIFS file system support
這樣我們的內(nèi)核就支持UBIFS文件系統(tǒng)了
9、ubi命令
在mtd-utils/ubi-utils中生成的工具是針對UBIFS的,包含:
(1)mtdinfo:?輸出指定的mtd分區(qū)的信息, 該命令只對可讀的設(shè)備分區(qū)有效。
用法: ./mtdinfo /dev/mtd1
(2)ubinfo:??輸出指定的ubi設(shè)備的信息,不帶參數(shù)時,輸出系統(tǒng)所有的ubi設(shè)備以及ubi控制設(shè)備信息。ubi控制設(shè)備即/dev/ubi_ctrl是一個字符設(shè)備,在后面還將用到。
用法:./ubinfo
./ubinfo/dev/ubi0
(3)ubiformat:格式化指定的mtd分區(qū), 參數(shù)使用的是mtd的字符設(shè)備
用法:./ubiformat /dev/mtd1
(4)ubiattach:將指定的mtd分區(qū)關(guān)聯(lián)到ubi上
用法:./ubiattach /dev/ubi_ctrl -m 1, 將mtd1關(guān)連ubi
(5)ubidetach:解除mtd與ubi的關(guān)聯(lián)
用法:./ubidetach /dev/ubi_ctrl -m 1
(6)ubimkvol:創(chuàng)建一個voluem,volume才是最終用戶掛載文件系統(tǒng)的地方。
用法:在ubi2上創(chuàng)建4個olume,每個大小是20M, 名字分別為my_vol_a, my_vol_b, my_vol_c, my_vol_d.
./ubimkvol/dev/ubi2 -s 20Mib -N my_vol_a
./ubimkvol/dev/ubi2 -s 20Mib -N my_vol_b
./ubimkvol/dev/ubi2 -s 20Mib -N my_vol_c
./ubimkvol/dev/ubi2 -s 20Mib -N my_vol_d
(7)ubirename: 更改ubi某個olume的名字,或者完成兩個volume的互換
用法:
(1)將ubi2上名字為my_vol_a的volume名字改為my_vol_newname
./ubirename /dev/ubi2my_vol_a my_vol_newname
(2)將ubi2上名字為my_vol_b和my_vol_c的兩個volume互換,
./ubirename/dev/ubi2 my_vol_b?my_vol_c my_vol_c my_vol_b
(8)ubirmvol: 刪除某個volume,可以通過名字或id指定具體的volume
用法: ./ubirmvol /dev/ubi2 -n 1
或./ubirmvol /dev/ubi2 -N my_vol_d
(9)ubinize: 創(chuàng)建ubi image。
用法: ./ubinize -o myubi.img -p 126976 -m 2048my.ini
其中, -p, 指定的是目標(biāo)flash的physical eraseblock的大小
-s,指定的是目標(biāo)flash的minimum input/output unit 的大小, 這兩個參數(shù)的值可以通過“cat /sys/class/ubi/ubi2/*”得到
my.ini是配置文件,其中指定了原文件,目標(biāo)volume的大小、名字等。其格式如小:
[jffs2-volume]
mode=ubi
image=../jffs2.img
vol_id=1
vol_size=30MiB
vol_type=dynamic
vol_name=jffs2_volume
vol_flags=autoresize
vol_alignment=1
(10)ubiupdatevol: 向指定的volume上寫數(shù)據(jù)
用法:./ubiupdatevol /dev/ubi2_0 myubi.img
data:ubifs.img
ubinize -o datafs.img -m 2048 -p 128KiB -s 512 -O 2048 ubinize.cfg
ubifs.img:
mkfs.ubifs -r ./data/ -o ubifs.img -m 2048 -e 126976 -c 148
總結(jié)
以上是生活随笔為你收集整理的linux内核创建ubi,UBI文件系统制作和挂载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 32位oracle和64位的区别,区分你
- 下一篇: 个体工商户要报税做账吗