利用mkfs.ubifs和ubinize两个工具制作UBI镜像

UBI镜像制作

在pc上制作镜像需要mkfs.ubifs工具。安装如下
在ubuntu下面编译mtd-utils的两种方法(相信也可以用于其它发行版下):
方法一:
  从git repository获取源代码,此编译为最近更新
1. get the source code of mtd-utils
     git clone git://git.infradead.org/mtd-utils.git 
 2. cd mtd-utils
 3. make
 4. sudo make install  (需要root权限来操作)

方法二:

  从ftp网站拿打好的源代码包
1. wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.4.5.tar.bz2
2. tar -jxvf mtd-utils-1.4.5.tar.bz2
3. cd mtd-utils-1.4.5
4.  make 
5. sudo make install (需要root权限来操作)

注意: 在编译的过程中,你或许会遇到下面的问题:(In compile process, you will meet the following problem.)
 1. sys/acl.h: No such file or directory  --> sudo apt-get install libacl1-dev
 2. compr_lzo.c:29:23: error: lzo/lzo1x.h: No such file or directory  --> sudo apt-get install liblzo2-dev
 3. uuid/uuid.h: No such file or directory --> sudo apt-get install uuid-dev

有了mkfs.ubifs和ubinize两个工具后,就可以制作UBIFS镜像了,具体步骤如下:
1. 使用mkfs.ubifs命令将某个文件夹制作为UBIFS镜像,具体命令为:

mkfs.ubifs -r  /tmp/rootfs  -m 2048 -e 126976-c 992 -o ubifs.img

以上命令的含义为将/tmp/rootfs文件夹制作为UBIFS文件系统镜像,输出的镜像名为ubifs.img,-m参数指定了最小的I/O操作的大小,也就是NAND FLASH一个page的大小,-e参数指定了逻辑擦除快的大小,-c指定了最大的逻辑块号。
通过此命令制作的出的UBIFS文件系统镜像可在u-boot下使用ubi write命令烧写到NAND FLASH上。


2. 使用ubinize命令可将使用mkfs.ubifs命令制作的UBIFS文件系统镜像转换成可直接在FLASH上烧写的格式(带有UBI文件系统镜像卷标):
ubinize -o ubi.img-m 2048 -p 128KiB-s 512 -O 2048 ubinize.cfg

ubinize.cfg为一些配置参数:
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=100MiB
vol_type=dynamic
vol_alignment=1
vol_name=rootfs(最好和uboot创建的卷标一致:有些人用ubifs)
vol_flags=autoresize

其中制作出的ubifs.img 是用于uboot烧写的,

而ubi.img是用于直接使用NAND FLASH的烧写命令烧写到FLASH上烧写的ubiformat   /dev/mtd4 -s 512 -f ubi.img


命令参数
-r:制定文件内容的位置 
-m:页面大小 
-e:逻辑擦除块大小 
-p:物理擦除块大小 
-c:最大的逻辑擦除块数量
-s:最小的硬件输入输出页面大小,如:k9f1208为256(上下半页访问)
重要提示,要根据flash加载ubifs输出的信息来用下面的命令制作镜像,否则不能启动系统


/注释ICETEK-OMAPL138-KB//
Creating 5 MTD partitions on "davinci_nand.1":
0x0000 0000 0000-0x0000 0004 0000 : "u-boot env"
0x0000 0004 0000-0x0000 0008 0000 : "UBL"
0x0000 0008 0000-0x0000 0010 0000 : "u-boot"
0x0000 0020 0000-0x0000 0060 0000 : "kernel"
0x0000 0060 0000-0x0000 40000 000 : "filesystem"
davinci_nand davinci_nand.1: controller rev. 2.5
UBI: attaching mtd4 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    126976 bytes
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
/注释/
mkfs.ubifs -r rootfs -m 2048 -e 126976 -c 8138 -o ubifs.img

ubinize -o ubi.img -m 2048 -p 128KiB -s 512 ubinize.cfg
/注释///

参考文献:

1.利用mkfs.ubifs和ubinize两个工具制作UBI镜像

2.UBI镜像制作



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值