JFFs2文件系统的重新定制

来源:互联网 发布:mysql if exists用法 编辑:程序博客网 时间:2024/06/05 06:52

项目应用中,对于前人留下的JFFS2的文件,有时候我们需要修改,但是苦于没有源文件,实际操作很多时候无所适从。每次支持生产之后再进行人为的升级。这样费时费力,也给生产人员增加了负担。

为了解决这个问题,参考了一些资料,总算解决了这个问题!

基本的原理就是:

1. linux支持mount JFFS2到本地目录

2. 这是一个完整的文件目录,我们可以修改mount后的文件目录,修改完成之后,重新使用mkfs.jffs2工具打包即可。


Ubuntu下对jffs2的修改:

0.   在线安装工具:

apt-getinstall mtd-tools

1.   挂载文件系统

mount一个jffs2文件系统过程:

#创建MTD设备:                          

modprobe -v mtdmodprobe -v jffs2modprobe -v mtdram total_size=10000 erase_size=128 (单位:K)modprobe -v mtdcharmodprobe -v mtdblock

#擦除mtd0: 

 flash_eraseall /dev/mtd0

#用dd命令装入mtd0分区:

dd if=rootfs.jffs2 of=/dev/mtd0

#新建一个挂载点:

mkdir fsmount

#用mount挂载jffs2文件系统:

mount -t jffs2 /dev/mtdblock0 fsmount

#用umount卸载: 

umount fsmount

2.   修改文件系统

成功挂在jffs2之后便可以对立面的内容进行修改,如添加和删除文件、修改文件等。比如我们要增加一个helloworld的文件,操作如下:

cp helloword fsmountsync

3.   重新生成jffs2文件系统

mkfs.jffs2 -r fsmount -o rootfs_new.jffs2 -e 0x20000 --pad=0x800000 -n

这里指定的块大小是:128K


4.   用mtdinfo命令可以查看文件系统的信息

mtdinfo /dev/mtd0mtd0Name:                           mtdram test deviceType:                           ramEraseblocksize:                131072 bytes, 128.0KiBAmount oferaseblocks:          78 (10240000 bytes,9.8 MiB)Minimuminput/output unit size: 1 byteSub-pagesize:                  1 byteCharacterdevice major/minor:   90:0Bad blocksare allowed:         falseDevice iswritable:             true


5.   附记

挂载文件之后如果要重新挂载,可以先umount,之后擦除

umount fsmountflash_eraseall /dev/mtd0




 

Ubuntu下对jffs2的修改:

0.   在线安装工具:

apt-getinstall mtd-tools

1.   挂载文件系统

mount一个jffs2文件系统过程:

#创建MTD设备:                          

modprobe-v mtd

modprobe-v jffs2

modprobe-v mtdram total_size=10000 erase_size=128 (单位:K)

modprobe-v mtdchar

modprobe-v mtdblock

#擦除mtd0:                       flash_eraseall /dev/mtd0

#用dd命令装入mtd0分区:        ddif=rootfs.jffs2 of=/dev/mtd0

#新建一个挂载点:                mkdir fsmount

#用mount挂载jffs2文件系统:    mount -t jffs2 /dev/mtdblock0fsmount

#用umount卸载:                  umountfsmount

#可以删除MTD模块:              modprobe –r xx(xx)

2.   修改文件系统

成功挂在jffs2之后便可以对立面的内容进行修改,如添加和删除文件、修改文件等。比如我们要增加一个helloworld的文件,操作如下:

cp hellowordfsmount

sync

3.   重新生成jffs2文件系统

mkfs.jffs2 -r fsmount -o rootfs_new.jffs2 -e 0x20000 --pad=0x800000 -n

4.   用mtdinfo命令可以查看文件系统的信息

mtdinfo /dev/mtd0

mtd0

Name:                           mtdram test device

Type:                           ram

Eraseblocksize:                131072 bytes, 128.0KiB

Amount oferaseblocks:          78 (10240000 bytes,9.8 MiB)

Minimuminput/output unit size: 1 byte

Sub-pagesize:                  1 byte

Characterdevice major/minor:   90:0

Bad blocksare allowed:         false

Device iswritable:             true

5.   xx

0 0
原创粉丝点击