• 已有 JFFs2文件系统的修改


    项目应用中,对于前人留下的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=10000 erase_size=128 (单位: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: 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.   附记

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

    umount fsmount
    
    flash_eraseall /dev/mtd0

    Ubuntu下对jffs2的修改:

    0. 在线安装工具:

     

    apt-getinstall mtd-tools

    1. 挂载文件系统

     

    mount一个jffs2文件系统过程:

    #创建MTD设备:

    1 modprobe-v mtd
    2 modprobe-v jffs2
    3 modprobe-v mtdram total_size=10000 erase_size=128 (单位:K)
    4 modprobe-v mtdchar
    5 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: 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
    博客园:http://www.cnblogs.com/linux-farmer/
  • 相关阅读:
    Unable to connect to web server 'IIS Express'(无法连接到Web服务器“IIS Express”)的解决方式-Jexus Manager
    temp_web
    使用Fluent配置表关系
    面试题链接记录
    面试题
    SQL语言基础
    .net core中DbProviderFactories配置问题
    Swagger UI in AspNetCore WebAPI
    JS实现国密算法SM2加密,后端Java解密
    Java读取磁盘指定扇区
  • 原文地址:https://www.cnblogs.com/linux-farmer/p/7379929.html
Copyright © 2020-2023  润新知