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来填充补满。

转载于:https://www.cnblogs.com/linux-farmer/p/7152883.html

JFFS2文件系统的移植相关推荐

  1. linux文件系统的移植-制作JFFS2文件系统

    JFFS2全名是 Journalling Flash File System Version2,是Redhat公司开发的快闪存储器(简称:闪存:英文: Flash Memory)的档案系统[1],其前 ...

  2. u-boot-2012.04.01移植到TQ2440(七):添加分区信息并启动jffs2文件系统

    一.添加分区信息并启动jffs2文件系统 烧写之前的内核看输出分区信息 TQ2440 # tftp 32000000uImage dm9000 i/o: 0x20000000, id:0x90000a ...

  3. ZYNQ开机挂载SPI FLASH中的jffs2文件系统

    目录 写在前面 Vivado工程建立 petalinux工程建立 下载程序,开机测试 没成功的话看这里 写在前面   做类嵌入式开发很久了,从51到STM32,Arduino,ESP8266,ESP3 ...

  4. JFFS2文件系统挂载过程优化的分析报告

    一 问题描述 在上电启动优化中发现Linux系统下挂载JFFS2文件系统耗时较长,以128M的NOR FLASH为例,用时接近20秒.后续单板的FLASH容量为256M,时间会更长.如此长的挂载时间, ...

  5. 挂载jffs2文件系统遇到的问题

    在板子里面使用如下命令mount -t jffs2 /dev/mtdblock7 /var/dr_bin/挂载文件系统时遇到几个问题,如下: 提示No such device问题 报错提示如下: 1. ...

  6. 3--新唐nuc980 kernel支持jffs2, Jffs2文件系统制作, 内核挂载jffs2, uboot网口设置,uboot支持tftp

    本文目录 1.uboot网口设置 2.内核创建MTD分区,Jffs2文件系统制作 3.内核支持jffs2 4.内核挂载jffs2 首先支持spi nor flash https://blog.csdn ...

  7. Fatfs(文件系统的移植)

    Fatfs(文件系统的移植) 一.文件系统介绍 二.移植条件.说明 1.FatFs模块在可移植性方面设定了以下条件: 2.数据类型说明 3.系统框架 三.文件移植操作 四.接口的实现 修改后的disk ...

  8. ARM单片机FATFS文件系统的移植

    ARM单片机FATFS文件系统的移植 测试效果 前提条件 下载所需源码 FATFS 文件系统 SFUD万能驱动 加入工程 接口驱动 测试代码 FreeRTOS10.0.1 FATFS FF14A SF ...

  9. jffs2文件系统删除文件不释放空间

    本文记录了jffs2文件系统释放空间失败问题的解决,以及追踪过程. 最近在调试时发现对jffs2文件系统下的文件执行删除动作时,不释放空间. 翻阅了jffs2的讲解http://www.ibm.com ...

  10. jffs2文件系统[1]--简介

    jffs2文件系统[1]--简介 背景 特点 不足 推荐 文档 网站 内核源码 背景 jffs2全名JournallingFlashFileSystemVersion2,闪存日志型文件系统.日志型文件 ...

最新文章

  1. mapreduce工作流程
  2. 兼容性好的CSS字体投影
  3. 资源收集流程为SDN控制器
  4. cac会议投稿难度大吗_注册化工师考试难度大吗?
  5. idea导入nodejs插件_sbt 项目导入问题
  6. LeetCode 2042. 检查句子中的数字是否递增
  7. JAVA入门级教学之(break跳出)
  8. 计算机专业直接工作简历,2017计算机专业工作简历
  9. 和平精英现在服务器暂时未开放,和平精英为什么登陆不进去 和平精英服务器分批登陆是什么意思...
  10. mina 和 xsocket
  11. java 数字字符串排序_对Java中包含数字的字符串进行排序
  12. 高仿大漠找字FindStr
  13. 【MacOS】必备的常用快捷键
  14. hive打patch流程说明
  15. Binder 机制详解—Binder Java框架(转自Cloud Chou's Tech Blog)
  16. 进入微信企业项目授权回跳之后退出项目需要点击两次(手机的返回主键,回退键)才能正常退出的问题解决
  17. 电磁场与仿真软件(34)
  18. 【JVM学习笔记】内存回收与内存回收算法 就哪些地方需要回收、什么时候回收、如何回收三个问题进行分析和说明
  19. 请求接口参数正确请求失败的问题
  20. 图片转为字符串(蔡徐坤之舞动人生)

热门文章

  1. 300本计算机编程的经典书籍下载
  2. Gradle依赖的统一管理
  3. python替换word中字符串_python:替换/替换字符串中的所有wholeword匹配
  4. 存储过程写法_计算机组成原理学习笔记:三 存储系统
  5. shell进阶之tree、pstree、lsof命令详解
  6. Linux服务之DNS服务篇
  7. spark 三种部署模式的区别对比
  8. day12 装饰器的进阶
  9. 【夯实PHP基础】PHP的反射机制
  10. 猎豹MFC--图片控件CStatic和动画控件CAnimateCtrl