项目应用中,对于前人留下的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

已有 JFFs2文件系统的修改的更多相关文章

  1. hi3531 SDK已编译文件系统制作jffs2文件系统镜像并解决问题 .

    一, 安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531_SDK_Vx. ...

  2. 从零开始制作jffs2文件系统

    JFFS2 是一个开放源码的项目(www.infradead.org). 它是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用. 1.       安装mkfs工具 MTD主页:htt ...

  3. hi3531 SDK已编译文件系统制作jffs2文件系统镜像并解决这个问题 .

    一, 安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100R001***/01.software/board"文件夹下,您能够看到一个 Hi3531_SDK_Vx ...

  4. 1.移植3.4内核-分析内核启动过程,重新分区,烧写jffs2文件系统

    1.在上章-移植uboot里.我们来分析下uboot是如何进入到内核的 首先,uboot启动内核是通过bootcmd命令行实现的,在我们之前移植的bootcmd命令行如下所示: bootcmd=nan ...

  5. jffs2文件系统制作

    内核:                linux-3.0 uboot:             2010.09 开发板:             fl2440 交叉编译器:         2011. ...

  6. JFFS2文件系统的移植

    Linux文件系统的移植-JFFS2 JFFS2是JFFS的后继者,由Red Hat重新改写而成.JFFS2的全名为JournallingFlash File System Version 2(闪存日 ...

  7. JFFS2 文件系统及新特性介绍

    简介: JFFS2 是一个开放源码的项目(www.infradead.org). 它是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用.这篇文章首先分析了在闪存上使用 JFFS2 的必 ...

  8. 齐博x1更新了 提供一个部分用户期待已久的功能,修改主题后变为待审

    如下图所示,你可以设置哪些用户组修改主题后,就会把原来已审核通过的主题,变为未审核.适合所有频道.

  9. mysql 已有数据字符集的修改

    mysql 字符集的修改 可以使用set names utf8 通过修改配置文件 可修改参数 default_character_set=utf8 但是以上修改方法只对数据库中新增的记录生效,如果数据 ...

随机推荐

  1. [转]ubuntu搭建LAMP环境

    首先下载安装apache2 输入:sudo apt-get install apache2 安装完毕后,在浏览器中输入:localhost 可以看到apache的默认主页 紧接着安装php5 输入:s ...

  2. mybatis和spring整合

    参考文档: http://www.cnblogs.com/jyh317/p/3834142.html http://www.cnblogs.com/xdp-gacl/p/4271627.html ht ...

  3. vijos1051题解

    题目: 圣诞老人回到了北极圣诞区,已经快到12点了.也就是说极光表演要开始了.这里的极光不是极地特有的自然极光景象.而是圣诞老人主持的人造极光. 轰隆隆--烟花响起(来自中国的浏阳花炮之乡).接下来就 ...

  4. C# 哈希表(Hashtable)用法笔记

    一.什么是Hashtable? Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对.它使用键来访问集合中的元素. 当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值.哈 ...

  5. DDD理论学习系列(10)-- 聚合

    DDD理论学习系列--案例及目录 1.引言 聚合,最初是UML类图中的概念,表示一种强的关联关系,是一种整体与部分的关系,且部分能够离开整体而独立存在,如车和轮胎. 在DDD中,聚合也可以用来表示整体 ...

  6. Java IO在实际开发中的应用

    IO是java绕不过去的槛,在开发中io无处不在, 正如同 世界上本没有路,java io写多了,也就知道了大体是什么意思,在读完thinking in java 感觉就更清晰了,结合具体的业务场景, ...

  7. 20170711_map/reduce

    js: map: var arr = [1,2,3,4,5]; var res = arr.map(function(x){ return x * x; }); //res 现在 = [1,4,9,1 ...

  8. 西电2017ACM网络赛

    #include<bits/stdc++.h> using namespace std; typedef long long LL; #define ms(a,x) memset(a,x, ...

  9. hdu_3336: Count the string(KMP dp)

    题目链接 题意:求给定字符串中,可以与某一前缀相同的所有子串的数量 做这道题需要明白KMP算法里next[]数组的意义 首先用一数组nex[](这里与之前博客中提到的next明显不同)存储前缀后缀最长 ...

  10. (转)每天一个linux命令(50):crontab命令

    场景:在学习Linux环境下自动部署项目时候,可以通过crontab命令设定定时任务,实现服务端项目的自动部署! 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系 ...