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/
  • 相关阅读:
    显示文件本地文件夹
    Select Dependencies选择依赖项
    搜索小技巧
    783. Minimum Distance Between BST Nodes BST节点之间的最小距离
    5. Longest Palindromic Substring 最长的回文子串
    12. Integer to Roman 整数转罗马数字
    3. Longest Substring Without Repeating Characters 最长的子串不重复字符
    539. Minimum Time Difference 最小时差
    43. Multiply Strings 字符串相乘
    445. Add Two Numbers II 两个数字相加2
  • 原文地址:https://www.cnblogs.com/linux-farmer/p/7152883.html
Copyright © 2011-2022 走看看