zoukankan      html  css  js  c++  java
  • 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/
  • 相关阅读:
    (转)正则表达式与Python(RE)模块
    (转)【面试】【MySQL常见问题总结】【03】
    (转)MySQL性能调优my.cnf详解
    (转)python logging模块
    (转)python collections模块详解
    mysql故障总结
    rocksdb 编译安装 日志
    c++11 gcc4.8.x安装
    Install ssdb-rocks on CentOS 6
    在Shell里面判断字符串是否为空
  • 原文地址:https://www.cnblogs.com/linux-farmer/p/7152883.html
Copyright © 2011-2022 走看看