最新消息:天气越来越冷,记得加一件厚衣裳

JFFS2文件系统制作

IOT开发 w3sun 1819浏览 0评论

JFFS2介绍

JFFS2全名是Journalling Flash File System Version2,是Redhat公司开发的Flashmemory的文件系统,其前身是JFFS,最早只支持NOR Flash,自2.6版以后开始支持NANDFlash,极适合使用于嵌入式系统。JFFS2功能如下:

  • 支持NAND flash设备;
  • 硬连结(Hard links),这是JFFS碍于文件格式所无法支持的功能;
  • 压缩,三种算法: zlib, rubin以及rtime;
  • 更佳的性能。

缺点

  • JFFS2在挂载(mount)时会扫描整个flash所有的数据,再将文件系统目录存储在system memory,会线性倍数成长,消耗很多时间;
  • JFFS2没有write-back机制,不能将数据暂存于cache,以致于flash I/O的动作频繁;
  • JFFS2设计机制过于复杂,代码不易阅读。

文件配置

Cramfs制作完成以后继续制作jffs2文件系统,关于mkfs.jffs2工具的生成可以参考网上的其他文章,本文用的官方提供的mkfs.jffs2。

  • 第一步必然是配置内核并且记得不要关闭ECC校验否则内核源码中nand分区将变成一个:
Memory Technology Devices (MTD) --->
     <*> Memory Technology Device (MTD) support
       [*] Debugging
       [*] MTD partitioning support
       [*] Command line partition table parsing
       [*] Direct char device access to MTD devices
       [*] Caching block device access to MTD devices

File systems --->
Miscellaneous filesystems --->
       <*>Journalling Flash File System v2 (JFFS2) support
       [*]JFFS2 write-buffering support
       [*]Advanced compression options for JFFS2
       [*]JFFS2 ZLIB compression support
       [*]JFFS2 RTIME compression support
       [*] JFFS2 RUBIN compression support
  • 第二步:生成jffs2文件系统,使用生成好的cramfs文件系统就可以。因为本文已经把mkfs.jffs2拷贝到/bin、/sbin文件夹所以直接mkfs.jffs2就可以了:
[root@localhost]#mkfs.jffs2 -r /rootfs -o rootfs.jffs2 -e 0x20000 -s 0x800 --pad=0xf00000 -n –l
   -e指的是擦除块的大小,因为原先制作了cramfs所以直接:cat /proc/mtd就可以查到:
          dev:   size  erasesize name
          mtd0: 00f00000 00020000 "root"
   --pad=0xf00000我指定的是15M,这是系统分区的大小。
   -n针对Nand Flash不需要在每个擦除块的开始写入CLEANMARKER 节点。
   -l指定小端模式
   -s指定分页大小,我的是2048也就是0x800

制作完成以后就可以烧录到板子上启动并进行操作。

转载请注明:雪后西塘 » JFFS2文件系统制作

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址