学会用mkfs.jffs2命令制作jffs2镜像文件

 下载:

ftp://sources.redhat.com/pub/jffs2/mkfs.jffs2

 学会用mkfs.jffs2命令制作jffs2镜像文件_设计制作_制造/封装

或者使用命令:
apt-get install mtd-u     ti   ls
命令使用实例:
mkfs.jffs2  -s 0x1000 -e 0x40000 -p 0x500000 -d  rootfs/ -o  jffs2.img
说明:
页大小0x1000   4k
块大小0x40000  256k
jffs2分区总空间0x500000即5M
当然生成的jffs2.img并没有一下子分配5M,还是实际大小0xc0000

mkfs.jffs2使用方法
选项含义(man a mkfs.jffs2)

mkfs.jffs2: Usage: mkfs.jffs2 [OP  TI ONS]
Make a JFFS2 file sys     te   m image f     rom   an exis  TI ng directory tree
Op  TI ons:
-p, --     pad   [=SIZE]       用16進制來表示所要輸出檔案的大小,也就是root.jffs2的size。
很重要的是, 為了不浪費flash空間, 這個值最好符合flash driver所規劃的區塊大小。
如果不足则使用0xff来填充补满。
-r, -d, --root=DIR      指定要做成image的源資料夾.(默认:当前文件夹)
-s, --pagesize=SIZE     节点页大小(默认: 4KiB)
-e, --eraseblock=SIZE   设定擦除块的大小为(默认: 64KiB)
-c, --cleanmarker=SIZE Size of cleanmarker (default 12)
-m, --compr-mode=MODE   Select compression mode (default: prior  TI ry)
-x, --disable-compressor=COMPRESSOR_NAME
Disable a compressor
-X, --enable-compressor=COMPRESSOR_NAME
Enable a compressor
-y, --compressor-priority=PRIORITY:COMPRESSOR_NAME
Set the priority of a compressor
-L, --list-compresso     rs   Show the list of the av     ai   able compressors
-t, --test-compression Call decompress and compare with the original (for test)
-n, --no-cleanmarkers   指明不添加清楚     标记   (nand flash 有自己的校检块,存放相关的信息。)
如果挂载后会出现类似:
CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0
的警告,则加上-n 就会消失。
-o, --output=FILE       指定輸出image檔案的文件名.(default: stdout)
-l, --little-endian     指定使用小端格式
-b, --big-endian        指定使用大端格式
-D, --devtable=FILE     Use the named FILE as a device table file
-f, --faketime          Change all file times to '0' for regression testing
-q, --squash            Squash per     mi   ssions and owners making all files be owned by root
-U, --squash-uids       将所有文件的拥有者设为root用户
-P, --squash-perms      Squash permissions on all files
--with-xattr        stuff all xattr entries into image
--with-se     linux   stuff only SELinux Labels into jffs2 image
--with-posix-acl    stuff only POSIX ACL entries into jffs2 image
-h, --help              显示这些文字
-v, --verbose           Verbose operation
-V, --version           显示版本
-i, --incremental=FILE Parse FILE and generate appendage output for it

生成的rootfs.img可通过u-boot直接烧写至nand flash:
nand erase 0x200000 0x3e00000//擦写
tftp 0x30000000 rootfs.img//下载
nand write.jffs2 0x200000 $(filesize)//烧入

(二) 在linux的PC上挂载jffs2根文件系统映像
因为jffs2是构建于MTD设备上的文件系统,所以无法通过loop设备来挂载,但是可以通过mt     dram   设备来挂载。mtd     ram   是在用RAM实现的MTD设备,可以通过mtdblock设备来访问。使用mtdram设备很简单,只要加载mtdram和mtdblock两个内核模块即可。这两个内核模块一般的linux内核发行版都有编译好的,直接用modprobe命令加载。
下面是具体步骤:
(1).加载mtdblock内核模块
modprobe mtdblock
(2).加载mtdram内核模块,将该设备的大小指定为jffs2根文件系统映像的大小,块擦除大小(即flash的块大小)指定为制作该jffs2根文件系统时“-e”参数指定的大小,缺省为64KB。下面两个参数的单位都是KB。
modprobe mtdram total_size=5120 erase_size=256

(3).这时将出现MTD设备/dev/mtdblock0,使用dd命令将jffs2根文件系统拷贝到/dev/mtdblock0设备中。
dd if=jffs2.img of=/dev/mtdblock0
(4).将保存了jffs2根文件系统的MTD设备挂载到指定的目录上。
mount -t jffs2 /dev/mtdblock0 /mnt/mtd

这之后就可以到/mnt/mtd目录查看、修改挂载的jffs2根文件系统了,修改后的jffs2根文件系统可以通过dd命令拷贝为一个jffs2的映像文件



32
61
0
80

相关资讯

  1. 1、七月荧屏迎暑期“黄金档”改编当道故事为王2634
  2. 2、曾穷到摆地摊,捧红黄渤郭涛,宁浩为他拍一部电影票房11亿1485
  3. 3、“黄渤”现身车站引围观,本尊回应逗笑众人,网友直呼笑skr人5006
  4. 4、蒋勤勤晒照庆祝小儿子锵锵满月,与陈建斌甜蜜合影一家四口超恩爱228
  5. 5、“过亿院线电影”副导演潜规则女演员,被其他副导演们围殴4042
  6. 6、男神老了就是老男神4951
  7. 7、李连杰《英雄》虽然在模仿周润发《卧虎藏龙》,但依然很经典1217
  8. 8、美剧《法官大人》:你愿意为了救孩子走多远?4544
  9. 9、《刁蛮公主》14年后,女一凉了、女二不温不火,女三却成当红女星1927
  10. 10、《锦心似玉》中的美女排行,刘芸第八,颖儿第二,谭松韵排第几?2115
全部评论(0)
我也有话说
0
收藏
点赞
顶部