UBIFS 文件系统的使用

原文地址: http://www.study-bbs.com/thread-30290-1-1.html

一、 UBIFS 简介
由IBM、nokia工程师Thomas Gleixner,Artem Bityutskiy等人于2006年发起,致力于开发性能卓越、扩展性高的FLASH专用文件系统,以解决当前嵌入式环境下以FLASH作为MTD设备使用时的技术瓶颈。

UBI:一种类似于LVM的逻辑卷管理层。主要实现损益均衡,逻辑擦除块、卷管理,坏块管理等。
UBIFS:基于UBI的FLASH日志文件系统。

有关ubifs的详细介绍,请参考:
http://www.linux-mtd.infradead.org/doc/ubi.html
http://www.linux-mtd.infradead.org/doc/ubifs.html

二、使用UBIFS前的准备
1. 配置linux内核
配置的时候选上

  1. 1)Device Drivers --->Memory Technology Device (MTD) support --->UBI - Unsorted block images --->Enable UBI
  2. 2)File systems --->Miscellaneous filesystems --->UBIFS file system support

这样我们的内核就支持UBIFS文件系统了
2. UBIFS工具
mtd-utils工具中提供了对UBIFS的支持,所以我们需要下载和 编译这些工具,下载以下几个文件
1)下载(mtd-utils、zlib、lzo)源码
  1. wget http://debian.mirror.inra.fr/deb ... 0080508.orig.tar.gz
  2. wget http://www.zlib.net/zlib-1.2.3.tar.gz
  3. wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz

2)编译安装zlib
  1. tar xzvf zlib-1.2.3.tar.gz
  2. cd zlib-1.2.3
  3. make
  4. make install
  5. cd ..

3)编译安装lzo
  1. tar xzvf lzo-2.03.tar.gz
  2. cd lzo-2.03
  3. make
  4. make install
  5. cd ..

4)编译mtd-utils
  1. tar xzvf mtd-utils_20080508.orig.tar.gz
  2. cd mtd-utils-20080508
  3. make


mkfs.ubifs子目录下生成我们需要的mkfs.ubifs工具,通过这个工具我们能打包一个文件夹,生成UBIFS系统镜像

三、如何使用UBIFS

1) 制作根文件系统,比如我们的根文件目录为rootfs
2) 生成ubi烧写映像
  1. mkfs.ubifs -r rootfs -m 512 -e 15872 -c 7976 -o ubifs.img

3) 通过UBOOT制作UBI分区
目前最新的UBOOT已经支持UBI分区,进入UBOOT命令行

  1. jacob@myubu$> mtdparts default //加载默认分区表

我的分区表配置如下:

  1. #define MTDPARTS_DEFAULT "mtdparts=nandflash0:320k(bootloader)," /
  2. "64k(params)," /
  3. "3m(kernel)," /
  4. "-(root)"

[c-sharp] view plain copy print ?
  1. Uboot$> flash erase root //格式化分区,root为文件系统分区
  2. Uboot$> ubi part root //root分区作为ubi文件系统
  3. Uboot$> ubi create rootfs //创建UBI volume
  4. Uboot$> ubi write 0x30008000 rootfs 0x2f8000

现在UBI分区已经创建完毕,我们可以通过tftp等手段把ubifs.img下载到RAM中, 0x30008000 为下载的地址, 0x2f8000 为 长度,文件系统烧写完成,修改uboot中的内核启动参数为:

  1. #define CONFIG_BOOTARGS "ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs console=ttySAC0 mem=64M init=/linuxrc"

内核的下载没有什么变化,不在叙述,OK,工作到此结束,目前ubi文件已经移植到P1310上,工作正常。由于采用了压缩方式,UBI文件系统占用的空间比yaffs要小,而且避免了nand flash中OOB数据的操作,使得移植变

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值