mtd-utils 及 ubi-utils 交叉编译
参考:
http://blog.csdn.net/zjjyliuweijie/article/details/7205374
NAND是嵌入式系统一个很重要的部件,而mtd-utilts中包含了很多针对NAND的调试和测试的工具。
1. 在http://git.infradead.org/mtd-utils.git上下载最新的mtd-utils代码, 下面是以2009-07-03的代码为例。
2. 解压缩mtd-utils.tgz
3. cd mtd-utils,编辑common.mk: 增加CROSS=arm-linux-
4. 执行make即可。
在mtd-utils中生成的主要工具有:
(1) flash_eraseall, 用于擦除指定的MTD分区, 用法如下:
./flash_eraseall /dev/mtd1 擦除MTD1
./flash_eraseall -j /dev/mtd1 擦除MTD1并将其格式化为JFFS2
(2) nanddump, 打印(或保存)NAND中的内容,用法如下:
./nanddump -s 0 -l 8024 -f result.dat /dev/mtd1 将mtd1中从地址0开始的8024长度的内容保存到result.dat中,(缺省的,包含OOB的内容)
注意,用vi或vim查看result.dat的内容时是2进制,在命令模式下,输入%!xxd即可转换为十六进制的可读内容。
(3) 其他的还有nandwrite, nandtest等。
在mtd-utils/ubi-utils中生成的工具是针对UBIFS的,包含:
(1)mtdinfo: 输出指定的mtd分区的信息, 该命令只对可读的设备分区有效。
用法: ./mtdinfo /dev/mtd1
(2)ubinfo: 输出指定的ubi设备的信息,不带参数时,输出系统所有的ubi设备以及ubi控制设备信息。ubi控制设备即/dev/ubi_ctrl是一个字符设备,在后面还将用到。
用法:./ubinfo
./ubinfo /dev/ubi0
(3)ubiformat:格式化指定的mtd分区, 参数使用的是mtd的字符设备
用法:./ubiformat /dev/mtd1
(4)ubiattach:将指定的mtd分区关联到ubi上
用法:./ubiattach /dev/ubi_ctrl -m 1, 将mtd1关连ubi
(5)ubidetach:解除mtd与ubi的关联
用法:./ubidetach /dev/ubi_ctrl -m 1
(6)ubimkvol:创建一个voluem,volume才是最终用户挂载文件系统的地方。
用法:在ubi2上创建4个olume,每个大小是20M, 名字分别为my_vol_a, my_vol_b, my_vol_c, my_vol_d.
./ubimkvol /dev/ubi2 -s 20Mib -N my_vol_a
./ubimkvol /dev/ubi2 -s 20Mib -N my_vol_b
./ubimkvol /dev/ubi2 -s 20Mib -N my_vol_c
./ubimkvol /dev/ubi2 -s 20Mib -N my_vol_d
(7)ubirename: 更改ubi某个olume的名字,或者完成两个volume的互换
用法:
(1)将ubi2上名字为my_vol_a的volume名字改为my_vol_newname
./ubirename /dev/ubi2 my_vol_a my_vol_newname
(2)将ubi2上名字为my_vol_b和my_vol_c的两个volume互换,
./ubirename /dev/ubi2 my_vol_b my_vol_c my_vol_c my_vol_b
(8)ubirmvol: 删除某个volume,可以通过名字或id指定具体的volume
用法: ./ubirmvol /dev/ubi2 -n 1
或./ubirmvol /dev/ubi2 -N my_vol_d
(9)ubinize: 创建ubi image。
用法: ./ubinize -o myubi.img -p 126976 -m 2048 my.ini
其中, -p, 指定的是目标flash的physical eraseblock的大小
-s, 指定的是目标flash的minimum input/output unit 的大小, 这两个参数的值可以通过“cat /sys/class/ubi/ubi2/*”得到
my.ini是配置文件,其中指定了原文件,目标volume的大小、名字等。其格式如小:
[jffs2-volume]
mode=ubi
image=../jffs2.img
vol_id=1
vol_size=30MiB
vol_type=dynamic
vol_name=jffs2_volume
vol_flags=autoresize
vol_alignment=1
(10)ubiupdatevol: 向指定的volume上写数据
用法:./ubiupdatevol /dev/ubi2_0 myubi.img
mtd-utils 及 ubi-utils 交叉编译的更多相关文章
- Creating and Flashing UBIFS with MTD Utils
转:http://wiki.atlas-embedded.com/index.php?title=Creating_and_Flashing_UBIFS_with_MTD_Utils Contents ...
- Utils
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.collections.CollectionUtils ...
- 模块工具类--utils
File: js\utils.js/** * 模块工具类,用来初始化各模块视图.自定绑定事件以及其他辅助功能等 * @class Utils */Utils = (function() { var i ...
- Mac OS X 10.8.4下面XZ Utils(*.tar.xz)压缩解压缩命令工具的安装
主要参考:http://bbs.chinaunix.net/thread-3610738-1-1.html 现在很多找到的软件都是tar.xz的格式的,xz 是一个使用 LZMA压缩算法的无损数据压缩 ...
- Knockout中ko.utils中处理数组的方法集合
每一套框架基本上都会有一个工具类,如:Vue中的Vue.util.Knockout中的ko.utils.jQuery直接将一些工具类放到了$里面,如果你还需要更多的工具类可以试试lodash.本文只介 ...
- js常用utils
var utils = { /** * 日期格式化 * * @param {Date} date 指定日期 * @param {String} format * @returns {String} * ...
- DCloud-JS-MUI-JS:utils.js
ylbtech-DCloud-JS:utils.js 1. 导航返回返回顶部 1. var oldBack = mui.back; mui.back = function () { mui.back ...
- robotframework API 源码阅读笔记----robot.utils.asserts
http://robot-framework.readthedocs.io/en/latest/autodoc/robot.utils.html#robot.utils.asserts.assert_ ...
- C++ 常用数学运算(加减乘除)代码实现 Utils.h, Utils.cpp(有疑问欢迎留言)
Utils.h #pragma once class Utils { public: static double* array_diff(double*A,double B[],int n); sta ...
- UBI 文件系统移植 sys 设备信息【转】
转自:http://blog.chinaunix.net/uid-25304914-id-3058647.html cat /sys/class/misc/ubi_ctrl/dev --------- ...
随机推荐
- google protobuf 中的proto文件编写规则
1. 简单介绍 protobuf文件:就是定义你要的消息(类似Java中的类)和消息中的各个字段及其数据类型(类似java类中的成员变量和他的数据类型) 2. Protobuf消息定义 消息由至少一个 ...
- 软工实践 - 第十九次作业 Alpha 冲刺 (10/10)
队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/10046955.htmlz 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 ...
- qemu中device和driver的区别 使用9p文件系统
qemu配置中经常会出现-driver/-device的选项,可以理解成-driver是后端设备,即一个实际的物理的磁盘:device是把这块磁盘插入到虚机中的pci控制器中. 这样的话,虚机也能看到 ...
- 当网卡收到一个包的目的地址是本主机其他接口的IP时.2
arp包进入主机后要经过的过滤是:rp_filter rp_filter会过滤网段 所以说不要在进行arp_ignore测试的时候把rp_filter设置成2, 此时就不会对源地址进行路由的检查了 然 ...
- OpenNI2安装
1.Openni2:从官网下载linux用zip压缩包,解压再解压2.终端转到解压目录下,找到install.sh文件,执行$sudo ./install.sh 3.执行后,生成OpenNIDevEn ...
- mysql数据定期备份删除
1.这里只写备份mysql的数据库的方法,全备份,包括定时删除. 准备工作,弄一个文件夹存数据库备份数据 第一步:编写shell 脚本,命名为shell.sh #备份数据库 backupdir=/we ...
- js判断中出现两个!!是什么意思?
在js中看源码时有时候出现两个!!,我起初以为是js的其他语法,其实!!就是两次取“非”的运算. 下面证明我的说法. alert(null);//false alert(!null);//true a ...
- display 垂直居中
/* Center slide text vertically */ display: -webkit-box; display: -ms-flexbox; display: -webkit-flex ...
- [ CodeVS冲杯之路 ] P1044
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1044/ 机房连续断网,搞得现在才能上博客…… 很经典的DP题,把问题转换一下就是分别求最不降序列和最长上升序列 f[i ...
- 基于CSOCKET的Client简单实例(转)
原文转自 http://blog.csdn.net/badagougou/article/details/78410382 第一步:创建一个基类为CSOCKET类的新类,Cclient,并在主对话框类 ...