Creating and Flashing UBIFS with MTD Utils
转:http://wiki.atlas-embedded.com/index.php?title=Creating_and_Flashing_UBIFS_with_MTD_Utils
Contents
- 1 UBIFS
- 2 UBIFS User-space tools
- 3 Obtaining UBIFS Tools
- 4 Creating UBIFS
- 5 Flashing and Mounting UBIFS to NAND
UBIFS
UBIFS is next generation of JFFS2 file-system.
JFFS2 file systems works on MTD devices, UBIFS is works on UBI volumes which is on MTD devices.
UBIFS is much more quicker than JFFS2 and nowadays people prefer UBI as filesystem.
For more information on MTD, refer <http://www.linux-mtd.infradead.org/doc/general.html> ,on UBI refer <http://www.linux-mtd.infradead.org/doc/ubi.html> ,on UBIFS refer <http://www.linux-mtd.infradead.org/doc/ubifs.html>
UBIFS User-space tools
Most used UBIFS User-space tools are shown below.All All UBI tools support "-h" option and print sufficient usage information.You can use "-h" option to see help about commands.
ubinfo - provides information about UBI devices and volumes found in the system;
ubiattach - attaches MTD devices (which describe raw flash) to UBI and creates corresponding UBI devices;
ubidetach - detaches MTD devices from UBI devices (the opposite to what ubiattach does);
ubimkvol - creates UBI volumes on UBI devices;
ubirmvol - removes UBI volumes from UBI devices;
ubiupdatevol - updates UBI volumes; this tool uses the UBI volume update feature which leaves the volume in
"corrupted" state if the update was interrupted; additionally, this tool may be used to wipe
out UBI volumes;
ubicrc32 - calculates CRC-32 checksum of a file with the same initial seed as UBI would use;
ubinize - generates UBI images;
ubiformat - formats empty flash, erases flash and preserves erase counters, flashes UBI images to MTD devices;
mtdinfo - reports information about MTD devices found in the system.
Obtaining UBIFS Tools
The MTD and UBI user-space tools are available from the the following git repository:
git://git.infradead.org/mtd-utils.git
However,we suggest you to download our pre-built mtd-utils at here
Creating UBIFS
From information on how to create a UBIFS image. refer create an UBIFS image
- Boot from NFS.
- You can use following command to learn parameter which is necessary for UBIFS creation.
root@bosphorus-2:/# ./sbin_mtd/mtdinfo /dev/mtd7 -u
mtd7
Name: File System
Type: nand
Eraseblock size: 131072 bytes, 128.0 KiB
Amount of eraseblocks: 4036 (529006592 bytes, 504.5 MiB)
Minimum input/output unit size: 2048 bytes
Sub-page size: 512 bytes
OOB size: 64 bytes
Character device major/minor: 90:14
Bad blocks are allowed: true
Device is writable: true
Default UBI VID header offset: 512
Default UBI data offset: 2048
Default UBI LEB size: 129024 bytes, 126.0 KiB
Maximum UBI volumes count: 128 root@bosphorus-1:/#
There are two steps for creating UBIFS.
First,
- mkfs.ubifs
General use of mkfs.ubifs,
# mkfs.ubifs -r </path/to/your/rootfs/tree> -m <min io size>
-e <LEB size> -c <Eraseblocks count>
-o </path/to/output/ubifs.img>
For Bosphorus-II,
mtd-utils# mkfs.ubifs/mkfs.ubifs -r /your-rootfs/ -F -o ubifs.img -m 2048 -e 126976 -c 4036
The output of the above command, ubifs.img is fed into the 'ubinize' program to wrap it into a UBI image.
The images produced by mkfs.ubifs must be further fed to the ubinize tool to create a UBI image which must be put to the raw flash to be used a UBI partition.
Second step,
- Create ubinize.cfg file and write the contents into it
mtd-utils# vi ubinize.cfg
[ubifs] <== Section header
mode=ubi <== Volume mode (other option is static)
image=ubifs.img <== Source image
vol_id=0 <== Volume ID in UBI image
vol_size=400MiB <== Volume size
vol_type=dynamic <== Allow for dynamic resize
vol_name=rootfs <== Volume name
vol_flags=autoresize <== Autoresize volume at first mount
- ubinize
General use of ubinize,
ubinize -o <output image> -m <min io size> -p <PEB size>KiB <configuration file>
For Bosphorus-II,
./sbin_mtd/ubinize -o ubi.img -m 2048 -p 128KiB -s 512 -O 2048 ubinize.cfg
For more information about parameter you can use "-h" option.
Where:
-o ubi.img
Output file
-m 2KiB (or 2048)
Minimum flash I/O size of 2KiB page
-p 128KiB
Size of the physical eraseblock of the flash this UBI image is created for
-O 2048 offset if the VID header from start of the physical eraseblock
The output of the above command, 'ubi.img' is the required image.
Flashing and Mounting UBIFS to NAND
Yo can use following command to flash UBIFS.
root@bosphorus-2:/# ./sbin_mtd/ubiformat /dev/mtd7 -f ubi.img -s 512 -O 2048
ubiformat: mtd7 (nand), size 529006592 bytes (504.5 MiB), 4036 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 4035 -- 100 % complete
ubiformat: 4036 eraseblocks have valid erase counter, mean value is 1
ubiformat: flashing eraseblock 53 -- 100 % complete
ubiformat: formatting eraseblock 4035 -- 100 % complete
Attaching UBIFS, you can use following command.If you want to mount UBIFS, firstly you should attach it.You can use ubidetach for detaching.
root@bosphorus-2:/# ./sbin_mtd/ubiattach --vid-hdr-offset 2048 /dev/ubi_ctrl -m7
[ 1211.819305] UBI: attaching mtd7 to ubi0
[ 1211.823455] UBI: physical eraseblock size: 131072 bytes (128 KiB)
[ 1211.830078] UBI: logical eraseblock size: 126976 bytes
[ 1211.835723] UBI: smallest flash I/O unit: 2048
[ 1211.840698] UBI: sub-page size: 512
[ 1211.845520] UBI: VID header offset: 2048 (aligned 2048)
[ 1211.851867] UBI: data offset: 4096
[ 1216.159484] UBI: max. sequence number: 0
[ 1216.197570] UBI: volume 0 ("rootfs") re-sized from 3304 to 3992 LEBs
[ 1216.211334] UBI: attached mtd7 to ubi0
[ 1216.215301] UBI: MTD device name: "File System"
[ 1216.221099] UBI: MTD device size: 504 MiB
[ 1216.226318] UBI: number of good PEBs: 4036
[ 1216.231262] UBI: number of bad PEBs: 0
[ 1216.235931] UBI: number of corrupted PEBs: 0
[ 1216.240600] UBI: max. allowed volumes: 128
[ 1216.245452] UBI: wear-leveling threshold: 4096
[ 1216.250396] UBI: number of internal volumes: 1
[ 1216.255065] UBI: number of user volumes: 1
[ 1216.259735] UBI: available PEBs: 0
[ 1216.264404] UBI: total number of reserved PEBs: 4036
[ 1216.269592] UBI: number of PEBs reserved for bad PEB handling: 40
[ 1216.276000] UBI: max/mean erase counter: 4/2
[ 1216.280487] UBI: image sequence number: 295372338
[ 1216.285919] UBI: background thread "ubi_bgt0d" started, PID 1967
UBI device number 0, total 4036 LEBs (512475136 bytes, 488.7 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB)
root@bosphorus-2:/#
To mount UBIFS,
root@bosphorus-2:/# mount -t ubifs ubi0:rootfs /mnt/
[ 1310.544067] UBIFS: start fixing up free space
[ 1311.091491] UBIFS: free space fixup complete
[ 1311.098175] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[ 1311.104553] UBIFS: file system size: 505491456 bytes (493644 KiB, 482 MiB, 3981 LEBs)
[ 1311.112945] UBIFS: journal size: 9023488 bytes (8812 KiB, 8 MiB, 72 LEBs)
[ 1311.120635] UBIFS: media format: w4/r0 (latest is w4/r0)
[ 1311.126770] UBIFS: default compressor: lzo
[ 1311.131072] UBIFS: reserved for root: 0 bytes (0 KiB)
root@bosphorus-2:/#
U-Boot Bootargs Command for UBIFS
setenv bootargs console=ttyO0,115200 ubi.mtd=X,YYYY rootfstype=ubifs root=ubi0:rootfs rw
Where X is the MTD partition number being used for file system and YYYY is the NAND page size.Make sure that an UBI file system is flashed into this partition before passing it as a boot partition for Linux
Assuming mtd 5,
setenv bootargs console=ttyO0,115200 root=ubi0:rootfs ubi.mtd =7,2048 rw rootfstype=ubifs ip=dhcp
saveenv
Note : Above steps can be done with Network File System or SD/MMC File System.
Creating and Flashing UBIFS with MTD Utils的更多相关文章
- UBIFS介绍 - MTD网站
转:http://blog.csdn.net/kickxxx/article/details/6583463 目录(?)[-] Big red note Overview Scalabity Writ ...
- Ubifs Support
参考:http://processors.wiki.ti.com/index.php/UBIFS_Support#Creating_UBIFS_file_system UBIFS UBIFS may ...
- android和ubifs
原文地址: http://opendevkit.com/?e=37 1. ubifs号称性能比yaffs2 好,同时压缩可读写,文件系统image体较小同时可写,相当不错 2. ubifs制作 (1) ...
- Is an MTD device a block device or a char device?
转:http://www.linux-mtd.infradead.org/faq/general.html#L_mtd_what Note, you can find Ukranian transla ...
- 让Android系统支持ubifs文件系统
原文地址:http://www.cnblogs.com/linucos/p/3279381.html 1. ubifs号称性能比yaffs2 好,同时压缩可读写,文件系统image体较小同时可写,相当 ...
- UBIFS - UBI File-System
参考:http://www.linux-mtd.infradead.org/doc/ubifs.html#L_raw_vs_ftl UBIFS - UBI File-System Table of c ...
- 使用ubifs格式的根文件系统
配置内核,使其支持ubifs文件系统 1)Device Drivers --->Memory Technology Device (MTD) support --->UBI - Uns ...
- 使用ubifs格式的根文件系统---过程记录
配置内核,使其支持ubifs文件系统 1)Device Drivers --->Memory Technology Device (MTD) support --->UBI - Uns ...
- UBI 文件系统移植 sys 设备信息【转】
转自:http://blog.chinaunix.net/uid-25304914-id-3058647.html cat /sys/class/misc/ubi_ctrl/dev --------- ...
随机推荐
- HDU 3577 Fast Arrangement ( 线段树 成段更新 区间最值 区间最大覆盖次数 )
线段树成段更新+区间最值. 注意某人的乘车区间是[a, b-1],因为他在b站就下车了. #include <cstdio> #include <cstring> #inclu ...
- [问题解决]ps aux中command命令相同,如何找出自己要的进程号?
问题提出: 我们通过ps aux能够查看各个进程的状态,很多时候启动命令相同,我们没有办法判断,我们要查找的进程到底是那个? 我们该用什么方式来找出我们要操作的进程号呢? 解决步骤: 找出有可能的进程 ...
- 201621123033 《Java程序设计》第4周学习总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 父类 子类 继承 覆盖 抽象 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多的字. 1.3 可选: ...
- 【bzoj1899】[Zjoi2004]Lunch 午餐 dp
题目描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各 ...
- BeanUtils Date
在jdbc封装(基础的CRUD)的时候(查询一条数据,查询多条数据,更新....)经常会用到一个BeanUtil来设置属性值,当对象中存在Date类型的时候,会报错:如下: 2017-11-03 13 ...
- java中的URLEncoder.encode对应JS中用decodeURIComponent,js和java编码,解码
用get请求传中文,经常搞到乱码,这几天搞搞这个东西,总结一下,以方便以后处理这类的问题. Java代码中的URLEncoder.encode方法和JS的encodeURIComponent功能差不多 ...
- pagination用法
pagination用法: 1.html 要用两层div <script src="${app }/pc/js/media/pagination.js"></s ...
- OpenCV3.1.0+VS2015开发环境配置
摘要: 由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而在AR中最重要的两个技术就是跟踪识别和增强渲染,其中跟踪识别是通过OpenCV这个开源的计算机视觉库来实现的, ...
- 转 python数据类型详解
python数据类型详解 目录 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 1.1.如何在Python中使用字符串 a.使用单引号(' ...
- C/S模式和BS模式是什么?
C/S是Client/Server,即客户端/服务器:B/S是Browser/Server,即浏览器/服务器的意思. C/S (Client/Server)结构,即大家熟知的客户机和服务器结构.它 ...