原文地址: 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内核
配置的时候选上
这样我们的内核就支持UBIFS文件系统了
2. UBIFS工具
mtd-utils工具中提供了对UBIFS的支持,所以我们需要下载和编译这些工具,下载以下几个文件
1)下载(mtd-utils、zlib、lzo)源码
2)编译安装zlib
3)编译安装lzo
4)编译mtd-utils
mkfs.ubifs子目录下生成我们需要的mkfs.ubifs工具,通过这个工具我们能打包一个文件夹,生成UBIFS系统镜像
三、如何使用UBIFS
1) 制作根文件系统,比如我们的根文件目录为rootfs
2) 生成ubi烧写映像
3) 通过UBOOT制作UBI分区
目前最新的UBOOT已经支持UBI分区,进入UBOOT命令行
我的分区表配置如下:
现在UBI分区已经创建完毕,我们可以通过tftp等手段把ubifs.img下载到RAM中, 0x30008000 为下载的地址, 0x2f8000 为 长度,文件系统烧写完成,修改uboot中的内核启动参数为:
内核的下载没有什么变化,不在叙述,OK,工作到此结束,目前ubi文件已经移植到P1310上,工作正常。由于采用了压缩方式,UBI文件系统占用的空间比yaffs要小,而且避免了nand flash中OOB数据的操作,使得移植变得简单,值得推荐.