已有 UBI文件的修改


1. UBI/UBIFS不是一個東西。。。

ubifs使用mkfs.ubifs工具直接生成的image(文件系統鏡像),可以使用uboot來升級系統。

ubi是直接可以燒寫再flash的文件(帶有UBI文件系統鏡像卷標),二者需要轉化!

2. 這里修改的是已有的ubi的文件!

3. Mount過程

3.1 首先,虛擬一個nandflash

modprobe nandsim first_id_byte=0x2c second_id_byte=0xda third_id_byte=0x00 fourth_id_byte=0x15

可以使用下面命令查看:cat /proc/mtd,mtdinfo /dev/mtd0

 

 

 

 

3.2 將 ubi 與 /dev/mtd0 關聯

modprobe ubi mtd=0

3.3 格式化前先解綁定

ubidetach /dev/ubi_ctrl -m 0

3.4 把rootfs.ubi格式化到mtd0

ubiformat /dev/mtd0 -s 2048 -f rootfs.ubi

 

 

3.5 綁定

ubiattach /dev/ubi_ctrl -m 0 -O 2048

 

 

 這樣設備為ubi0

3.6 掛載設備到本地目錄(已經存在的目錄)

mount -t ubifs ubi0 ./targer_dir

 

 

 至此,完成了ubi文件的mount。

也可以使用umount ubifs卸載。

3.7 可以復制文件再新的目錄,修改之!

cp -r ./target/* /new/directory

4. 重新生成ubi文件

4.1 生成ubifs(rootfs.ubifs

mkfs.ubifs -r ./target -m 0x800 -e 0x1F000 -c 2024 -o ./rootfs.ubifs

4.2 轉換為ubi文件

ubinize -o rootfs.ubi -m 2048 -p 128KiB -s 512 -O 2048 ubinize.cfg

其中ubinize.cfg文件,是ubinize工具的配置文件,直接編輯一個即可(image=rootfs.ubifs指的是要轉換的文件,命令行中是輸出文件)

[ubifs]  
mode=ubi  
image=rootfs.ubifs          #這里指的是需要輸入的ubifs文件
vol_id=0  
vol_size=100MiB  
vol_type=dynamic 
vol_name=rootfs
vol_flags=autoresize

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM