Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3044180
  • 博文数量: 396
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4209
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-04 13:04
文章分类

全部博文(396)

文章存档

2022年(1)

2021年(2)

2020年(8)

2019年(24)

2018年(135)

2017年(158)

2016年(68)

我的朋友

分类: 嵌入式

2018-09-06 11:10:13

转载地址:http://blog.csdn.net/muzi_csd/article/details/20076539

在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输出的信息来用下面的命令制作镜像,否则不能启动系统


  1. ///////////////////////////////////////////////// 注释ICETEK-OMAPL138- KB//////////////////////////////////////////////////////////////  
  2. Creating 5 MTD partitions on "davinci_nand.1":  
  3. 0x0000 0000 0000-0x0000 0004 0000 : "u-boot env"  
  4. 0x0000 0004 0000-0x0000 0008 0000 : "UBL"  
  5. 0x0000 0008 0000-0x0000 0010 0000 : "u-boot"  
  6. 0x0000 0020 0000-0x0000 0060 0000 : "kernel"  
  7. 0x0000 0060 0000-0x0000 40000 000 : "filesystem"  
  8. davinci_nand davinci_nand.1: controller rev. 2.5  
  9. UBI: attaching mtd4 to ubi0  
  10. UBI: physical eraseblock size:   131072 bytes (128 KiB)  
  11. UBI: logical eraseblock size:    126976 bytes  
  12. UBI: smallest flash I/O unit:    2048  
  13. UBI: VID header offset:          2048 (aligned 2048)  
  14. UBI: data offset:                4096  
  15. /////////////////////////////////////////////////注释/////////////////////////////////////////////////////////////  
  16. mkfs.ubifs -r rootfs -m 2048 -e 126976 -c 8138 -o ubifs.img  
  17.   
  18. ubinize -o ubi.img -m 2048 -p 128KiB -s 512 ubinize.cfg  
  19. /////////////////////////////////////////////////注释///////////////////////////////////////////////////////////////  

参考文献:

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

2.UBI镜像制作

阅读(2772) | 评论(0) | 转发(0) |
0

上一篇:protobuf安装

下一篇: I2C从器件地址

给主人留下些什么吧!~~