
1、安装所需的工具
制作UBIFS镜像所需的工具有mkfs.ubifs和ubinize,可以通过安装mtd-utils工具包获取,安装命令为:
# sudo apt-get install mtd-utils
2、UBIFS镜像的制作
?? 使用mkfs.ubifs命令将某个文件夹制作为UBIFS镜像,具体命令为:
# mkfs.ubifs -r /tmp/rootfs -m 2048 -e 126976 -c 1900 -o ubifs.img
以上命令的含义为将/tmp/rootfs文件夹制作为UBIFS文件系统镜像,输出的镜像名为ubifs.img。 -m:参数指定了最小的I/O操作的大小,也就是NANDFLASH一个page的大小;
-e: 参数指定了逻辑擦除快的大小;
-c: 指定了最大的逻辑块号。
通过此命令生成的ubifs.img镜像文件可在u-boot下使用ubi write命令烧写到目标NAND FLASH上。
?? 使用ubinize命令可将使用mkfs.ubifs命令制作的UBIFS文件系统镜像转换成可直接在FLASH上烧写的式(带有UBI文件系统镜像卷标):
# ubinize -o rootfs.ubi -m 2048 -p 128KiB -s 2048 -O 2048 ubinize.cfg
ubinize.cfg为配置参数文件,文件内容如下:
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0

vol_size=220MiB
vol_type=dynamic
vol_alignment=1
vol_name=rootfs
vol_flags=autoresize
通过此命令生成的rootfs.ubi文件可在u-boot下使用nand write.i命令烧写到目标NAND FLASH上。文件系统i o
3、在u-boot下烧写
使用ubinize命令制作的带有卷标的UBIFS文件系统镜像可以直接使用nand flash的烧写命令烧写到NAND FLASH上,具体命令为:
# tftp 0x50008000 tmp/rootfs.ubi
# nand erase 0x800000 0xf800000
4、在linux下烧写
在linux系统下,可以使用ubiformat工具烧写使用ubinize工具制作的UBIFS文件系统映像,此处以烧写到NANDFLASH的6个分区上为例,具体命令为:
?? 查看NAND FLASH的当前分区:
# cat /proc/mtd
dev: sizeerasesize name
mtd0:000c0000 00020000 "uboot"
mtd1:00040000 00020000 "uboot env"
![]()
mtd2:00100000 00020000 "splash"
mtd3:00600000 00020000 "kernel"
mtd4:0f800000 00020000 "rootfs"
mtd5:30000000 00020000 "user"
?? 烧写UBIFS文件系统:
# ubiformat /dev/mtd4 -s 2048 -O 2048 -f /mnt/rootfs.ubi
?? 挂载烧写好的文件系统:
# ubiattach /dev/ubi_ctrl -m 4 -O 2048
# mkdir /mnt/ubi0
# mount -t ubifs ubi0:rootfs /mnt/ubi0
#ls -F /mnt/ubi0
bin/ lib/media/ proc/ sbin/usr/
dev/ lib32/mnt/ root/ sys/var/
etc/ linuxrc@ opt/ run/tmp/
5、UBI文件系统启动设置
在u-boot下设置UBIFS文件系统作为根文件系统的启动参数:
setenv bootargs 'console=ttySAC,115200 ubi.mtd=4,2048 root=ubi0:rootfs rootwait rootfstype=ubifs rw ip=off'
setenvbootcmd 'nand read.i 0x50018000 0x200000 0x400000; bootm 0x50018000'
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-62081-1.html
更像是一个小帮派的首领