【转】UBI文件系统

来源:互联网 发布:什么是win10 ump软件 编辑:程序博客网 时间:2024/06/07 21:04

原文地址:http://www.embedu.org/Column/Column102.htm 

 

     在linux-2.6.27以前,谈到Flash文件系统,大家很多时候多会想到cramfs、jffs2、yaffs2等文件系统。它们也都是基于文件系统+mtd+flash设备的架构。linux-2.6.27后,内核加入了一种新型的flash文件系统UBI(Unsorted Block Images)。这里简单介绍下UBI文件系统加入的原因,及使用方法。

 

一、产生的背景

     FLASH具有的“先擦除再写入”、坏块、“有限的读写次数”等特性,目前管理FLASH的方法主要有:

     1、采用MTD+FTL/NFTL(flash 转换层/nand flash转换层)+ 传统文件系统,如:FAT、ext2等。FTL/NFTL的使用就是针对FLASH的特有属性,通过软件的方式来实现日志管理、坏块管理、损益均衡等技术。但实践证明,由于知识产权、效率等各方面因素导致本方案有一定的局限性。

     2、采用硬件翻译层+传统文件系统的方案。这种方法被很多存储卡产品采用,如:SD卡、U盘等。这种方案对于一些产品来说,成本较高。

     3、采用MTD+ FLASH专用文件系统,如JFFS1/2,YAFFS1/2等。它们大大提高了FLASH的管理能力,并被广泛应用。

JFFS2、YAFFS2等专用文件系统也存在着一些技术瓶颈,如:内存消耗大,对FLASH容量、文件系统大小、内容、访问模式等的线性依赖,损益均衡能力差或过渡损益等。在此背景下内核加入了UBI文件系统的支持。

 

二、使用方法

 

     环境:omap3530处理器、 (128MByte 16 位NAND Flash) 、linnux-2.6.28内核


     1、配置内核支持UBIFS:

 

       配置mtd支持UBI接口

      Device Drivers  --->Memory Technology Device (MTD) support  --->UBI - Unsorted block images  --->Enable UBI
     

       配置内核支持UBIFS文件系统 
      File systems  --->Miscellaneous filesystems  --->UBIFS file system support 
      

     2、将一个MTD分区4挂载为UBIFS格式

     3、制作UBIFS文件系统

     在制作UBI镜像时,需要首先确定以下几个参数:

     参数可以由几种方式得到

     1)如果使用的是2.6.30以后的内核,这些信息可以通过工具从内核获得,如:mtdinfo –u。

     2)之前的内核可以通过以下方法:

     3)也可以通过ubi和mtd连接时的产生的信息获取,如:

     其中,ubinize.cfg的内容为:

 
 

原创粉丝点击