打包system.img成HIT archive data格式的包

有些人看了上一篇的解包过程后问到关于HIT archive data格式的打包方法,之前没有写打包的方法,现在附上。


其实方法没有解包那么麻烦。

如下:

1.  mkfs.ubifs -v -r /mnt/system/ -m 4096 -e 253952 -c 2048 -o syst.img

2.  du -h syst.img (查看大小,后面的tmp.cfg中的vol_size项用到)

3.  vi tmp.cfg

tmp.cfg的内容为:

[ubifs]
mode=ubi
image=syst.img
vol_id=0
vol_size=224MiB
vol_type=dynamic
vol_name=rootfs
vol_alignment=1
vol_flags=autoresize

4.  ubinize -o system.img -m 4096 -p 256KiB -s 1024 -O 4096 tmp.cfg

      system.img就是做成的HIT archive data格式的包了。


以上命令用到的参数的含义:

    -r:制定文件内容的位置 
    -m:页面大小 
    -e:逻辑擦除块大小 
    -p:物理擦除块大小 
    -c:最大的逻辑擦除块数量 
    -s:最小的硬件输入输出页面大小,如:k9f1208为256(上下半页访问)


在制作UBI镜像时,需要首先确定以下几个参数:
       MTD partition size; //对应的FLASH分区大小 
       flash physical eraseblock size; // FLASH物理擦除块大小 
       minimum flash input/output unit size; //最小的FLASH输入输出单元大小 
       for NAND flashes - sub-page size; //对于nand flash来说,子页大小 
       logical eraseblock size.//逻辑擦除块大小


参数可以由几种方式得到
1)如果使用的是2.6.30以后的内核,这些信息可以通过工具从内核获得,如:mtdinfo –u。


2)之前的内核可以通过以下方法:
   ● MTD partition size:从内核的分区表或cat /proc/mtd获得
       ● flash physical eraseblock size:从flash芯片手册中可以得到FLASH物理擦除块大小,或cat /proc/mtd
       ● minimum flash input/output unit size: 
           1)nor flash:通常是1个字节 
           2)nand falsh:一个页面 
       ● sub-page size:通过flash手册获得 
       ● logical eraseblock size:对于有子页的NAND FLASH来说,等于“物理擦除块大小-1页的大小”

3)也可以通过ubi和mtd连接时的产生的信息获取, 如:

           解包执行ubiattach /dev/ubi_ctrl -m 0 -O 4096命令时产生的信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值