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

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

基本的原理就是:

linux支持mount JFFS2到本地目录

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

Ubuntu下对jffs2的修改:

0. 在线安装工具: apt-getinstall mtd-tools

apt-getinstall mtd-tools

1.   挂载文件系统

mount一个jffs2文件系统过程:

#创建MTD设备:

modprobe -v mtd

modprobe -v jffs2

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

modprobe -v mtdchar

modprobe -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 fsmount

sync

3. 重新生成jffs2文件系统

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

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

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

mtdinfo /dev/mtd0

mtd0

Name: mtdram test device

Type: ram

Eraseblocksize:  bytes, .0KiB

Amount oferaseblocks:  ( bytes,9.8 MiB)

Minimuminput/output unit size:  byte

Sub-pagesize:  byte

Characterdevice major/minor: :

Bad blocksare allowed: false

Device iswritable: true

5.   附记

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

umount fsmount

flash_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= erase_size= (单位:K)
modprobe-v mtdchar
modprobe-v mtdblock

#擦除mtd0:

flash_eraseall /dev/mtd0

#用dd命令装入mtd0分区:

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

#新建一个挂载点:

mkdir fsmount

#用mount挂载jffs2文件系统:

mount -t jffs2 /dev/mtdblock0fsmount

#用umount卸载:

umount fsmount

#可以删除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:  bytes, .0KiB

Amount oferaseblocks:  ( bytes,9.8 MiB)

Minimuminput/output unit size:  byte

Sub-pagesize:  byte

Characterdevice major/minor: :

Bad blocksare allowed: false

Device iswritable: true

最新文章

  1. Dapper where Id in的解决方案
  2. [poj1182]食物链(并查集+补集)
  3. WebStorm 9 配置 Live Edit 功能与浏览器实现同步
  4. Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file
  5. ASP.NET MVC 中使用 AjaxFileUpload 插件时,上传图片后不能显示(预览)
  6. oracle nologging用法
  7. 10 Questions To Make Programming Interviews Less Expensive--reference
  8. JAX-WS 学习二:基于WEB容器,发布WebService
  9. Struts2第二天
  10. HDU 2671 Can't be easier
  11. C# 汉字转拼音 将中文转换成拼音
  12. centos 使用 beyond compare 对比工具
  13. Android 社区App 《窝吧》开源分享
  14. Fiddler - 工具配置及在ios抓取不了https的解决方法
  15. 关于mvc中传递匿名对象,view中无法解析
  16. [python] 溜了,溜了,七牛云图片资源批量下载 && 自建图床服务器
  17. Android使用Mob ShareSDK 分享不同平台
  18. ORM框架的前世今生
  19. layui(八)——轮播图常见用法总结
  20. 【CentOS】centos7 稳定使用版本,centos镜像的下载

热门文章

  1. Java程序设计模式系列之适配器模式
  2. 【请求之密】payload和formData有什么不同?
  3. C++ 宏定义#define 中##的使用
  4. ES6的十大特性和认知
  5. Go学习笔记(二)十分钟上手
  6. Django学习(四)---Admin配置
  7. Python爬虫从入门到放弃(十五)之 Scrapy框架中Spiders用法
  8. 编写一个可配置的网页信息提取组件 (二)—— 优雅的.net core 配置系统
  9. [补] winpcap编程——EAP协议与EAPSOCKET实现
  10. 用Node.JS+MongoDB搭建个人博客(安装环境)(一)