根文件系统制作之jaffs2

JFFS2是RedHat公司为嵌入式系统开发的闪存文件系统,主要应用于NOR型闪存,支持数据压缩和日志型操作。本文介绍了JFFS2的特点、限制以及如何添加内核支持、制作mkfs.jffs2工具和映像文件。此外,还展示了如何在uboot中添加对JFFS2的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JFFS文件系统最早是由瑞典Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。JFFS2(Journalling Flash FileSystem v2日志闪存文件系统版本2 )RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所JFFS2也可以用在Linux, uCLinux中。

它主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。Jffs2不适合用于NAND闪存主要是因为NAND闪存的容量一般较大,这样导致jffs2为维护日志节点所占用的内存空间迅速增大,另外,jffs2文件系统在挂载时需要扫描整个FLASH的内容,以找出所有的日志节点,建立文件结构,对于大容量的NAND闪存会耗费大量时间。 目前jffs3正在开发中关于jffs2系列文件系统的使用详细文档,可参考MTD补丁包中mtd-jffs-HOWTO.txt

添加内核对jffs2的支持

[fanmaolin@Centeros ~]$ cd fl2440/kernel/linux-3.0
[fanmaolin@Centeros linux-3.0]$ export TERM=vt100
[fanmaolin@Centeros linux-3.0]$ make menuconfig


 File systems  --->
      Miscellaneous filesystems  --->
           <*> Journalling Flash File System v2 (JFFS2) support
           (0)   JFFS2 debugging verbosity (0 = quiet, 2 = noisy)
           [*]   JFFS2 write-buffering support
           [ ]   JFFS2 summary support (EXPERIMENTAL)
           [ ]   JFFS2 XATTR support (EXPERIMENTAL)
           [ ]   Advanced compression options for JFFS2 

制作mkfs.jffs2mkfs.ubifs工具

mkdir mtd-utiles

cd mtd-utiles/

vim build.sh


 

#!/bin/sh

PRJ_PATH=`pwd`

 

LZO="lzo-2.04"

ZLIB="zlib-1.2.5"

e2fsprogs_ver=1.42

mtd="mtd-utils-1.4.9"

 

function decompress_packet()

(

   echo "+---------------------------------------------+"

   echo "|  Decompress $1 now"  

   echo "+---------------------------------------------+"

 

    ftype=`file "$1"`

    case "$ftype" in

       "$1: Zip archive"*)

           unzip "$1" ;;

       "$1: gzip compressed"*)

           if [ `expr "$1" : ".*.tar.*" ` ] ; then

               tar -xzf $1

           else

               gzip -d "$1"

           fi ;;

       "$1: bzip2 compressed"*)

           if [ `expr "$1" : ".*.tar.*" ` ] ; then

               tar -xjf $1

     &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值