制作‘空‘的jffs2格式的镜像

需求:基于RK3308开发的镜像,用户分区(userdata)希望在烧写镜像的时候就全部初始化为0xFF,用户分区格式化为jffs2

实现方法:制作一个‘空’的,即全为0xFF的用户镜像,假设名称为sys_data.img,在烧写其他系统镜像的时候一同烧写


生成空的、指定大小的jffs2镜像

首先新建空文件夹,名称为jffs2
$ mkdir jffs2

然后执行如下命令:
$ mkfs.jffs2 -r jffs2 -o user_data.img -e 0x10000 --pad=0x050000 -s 0x1000 -n

Mkfs.jffs2各参数的意义如下:

-r:指定要做成image的目录名。

-o:指定输出image的文件名。

-e, --eraseblock=SIZE:每一块要擦除的block size,默认是64KB.要注意,不同的flash, 其block size会不一样。在没有加-e选项是,启动会出现以下错误:at91sam user.warn kernel: Empty flash at 0x00f0fffc ends at 0x00f10000。因此,若有类似的错误,加上-e选项,并配置nandflash的块大小,即可消除。

--pad(-p):用16进制来表示所要输出文件的大小,也就是fs.jffs2的大小,如果实际大小不足此设定的大小,则用0xFF补足。也可以不用此选项,生成的文件系统的大小跟本身大小一致,暂时还不知道有和妙用,但是加上后会少出现很多错误。很重要的是, 為了不浪費flash空間, 這個值最好符合flash driver所規劃的區塊大小。如果不足则使用0xff来填充补满。

-n,-no-cleanmarkers:指明不添加清楚标记(nandflash有自己的校检块,存放相关的信息)。如果挂载后会出现类似:CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0的警告,则加上-n就会消失。

-s, --pagesize=SIZE                   节点页大小(默认: 4KiB)

查看:确实是全为0xff

$ hexdump -C user_data.img
00000000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00050000
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值