zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Robot Framework(一)安装笔记
    Postman之获得登录的token,并设置为全局变量
    Postman之简单使用
    Postman之前言
    LoadRunner之使用JSEESIONID访问网站
    Jmeter之逻辑控制器/定时器
    android 解决小米手机上选择照片路径为null情况
    spring MVC学习之二
    Spring MVC学习一
    Struts学习总结(一)
  • 原文地址:https://www.cnblogs.com/pengdonglin137/p/3408650.html
Copyright © 2011-2022 走看看