• JFFS2文件系统的移植


    Linux文件系统的移植-JFFS2

    JFFS2是JFFS的后继者,由Red Hat重新改写而成。JFFS2的全名为JournallingFlash File System Version 2(闪存日志型文件系统第2版),其功能就是管理在MTD设备上实现的日志型文件系统。与其他的存储设备存储方案相比,JFFS2并不准备提供让传统文件系统也可以使用此类设备的转换层。它只会直接在MTD设备上实现日志结构的文件系统。JFFS2会在安装的时候,扫描MTD设备的日志内容,并在RAM中重新建立文件系统结构本身。

    除了提供具有断电可靠性的日志结构文件系统,JFFS2还会在它管理的MTD设备上实现“损耗平衡”和“数据压缩”等特性。

    JFFS2 功能如下:

    Ø  支持NAND Flash。

    Ø  硬连结(Hardlinks),这是JFFS 碍于文件格式所无法支援的功能。

    Ø  压缩,有三种算法:zlib, rubin 以及 rtime.

    Ø  更佳的效能。

    缺点:

    Ø  JFFS2挂载时需要扫描整块Flash,来确定节点的合法性以及建立必要的数据结构,这使得JFFS2挂载时间比较长。

    Ø  JFFS2是将节点信息保存在内在中的,使得它所占用的内存量和节点数目成正比。

    Ø  JFFS2是通过随机方式来实现磨损平衡的,它不能保证磨损平衡的确定性。

    Ø JFFS2没有write-back机制,不能将资料暂存于缓存(cache),以致于flash I/O的动作频繁。

    移植环境:

    Ubuntu 16.04-64

    u-boot.bin

    目标板:AT91SAM9x25

    交叉编译器 arm-none-linux-gnueabi-gcc 4.4.3

    内核的支持

    也就是说您的内核必须支持jffs2。

    zlib的编译

    解压zlib-1.2.11.tar.gz并进入zlib-1.2.11配置编译安装

    $ tar zxf zlib-1.2.11.tar.gz
    
    $ cd zlib-1.2.11
    
    $ ./configure
    
    $ make
    
    $ make install

    MTD工具编译

    解压mtd-snapshot-20050519.tar.bz2 并进入mtd/util编译安装

    $ tar xvf  mtd-snapshot-20050519.tar.bz2
    $ cd mtd/util
    $ make
    $ make install

    这样我们的系统里就有了mkfs.jffs2这个工具了,可以自行检查一下。

     

     

    Jffs2文件系统镜像制作

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

    ü  -r选项指定输入的文件和目录路径,不指定则为当前路径

    ü  -e, --eraseblock=SIZE,设定擦除块大小为SIZE,缺省为64KB,如果你使用的擦除块与MTD设备的实际擦除块大小不一致,则JFFS2表现不会很好,如果SIZE设置小于4096,则假定单位为KB。

    ü  -p, --pad[=SIZE],用16進制來表示所要輸出檔案的大小,也就是root.jffs2 很重要的是, 為了不浪費flash空間, 這個值最好符合flash driver所規劃的區塊大小。如果不足则使用0xff来填充补满。

    博客园:http://www.cnblogs.com/linux-farmer/
  • 相关阅读:
    1 slow requests are blocked > 32 sec解决方法
    centos7下搭建ceph luminous(12.2.1)--无网或网络较差
    防止集群数据恢复设置
    ceph:health_warn clock skew detected on mon的解决办法
    Windows下判断jdk是否安装好以及环境变量是否配置好
    卸载Myeclipse10.5 报错“an error has occured.See the log file ...Uninstaller...”
    转: Laravel 自定义公共函数的引入
    windows下安装composer
    PHP与.Net的区别(一)接口
    phpStorm+XDebug配置
  • 原文地址:https://www.cnblogs.com/linux-farmer/p/7152883.html
Copyright © 2020-2023  润新知