MTD 工具使用

1. mtd_debug

 

# mtd_debug
usage: mtd_debug info <device> mtd_debug read <device> <offset> <len> <dest-filename> mtd_debug write <device> <offset> <len> <source-filename> mtd_debug erase <device> <offset> <len>

mtd_debug info

可以查看 flash 类型、块大小及 mtd 分区总大小,大小以10进制显示,分区大小就是 len

mtd_debug write

把文件写入 mtd,offset 和 len 可以用十进制表示也可以用十六进制表示,十六进制要用 0x 作为前缀, len 要小于等于文件长度和 mtd 分区大小,写入之前要 erase mtd 分区

mtd_debug read

参数含义跟 mtd_debug write 用法差不多

mtd_debug erase

擦除 mtd 分区,参数含义跟前面的 mtd_debug write 也是差不多啦

如:

mtd_debug read /dev/mtd2 0x0 0x009000000 config.img

 

2. flashcp

 

# flashcp
usage: flashcp [ -v | --verbose ] <filename> <device> flashcp -h | --help -h | --help Show this help message -v | --verbose Show progress reports <filename> File which you want to copy to flash <device> Flash device to write to (e.g. /dev/mtd0, /dev/mtd1, etc.)

 

用来把 flash 镜像写入 mtd 分区,如

flashcp -v rootfs.image /dev/mtd1

该命令把 erase,write verify 一块完成了

mtd_debug 和 flashcp 执行的时候 cpu 战胜比较高,会导致系统响应缓慢甚至假死机,耐心等待就好了

dd 时候不要使用 mtdblock 作为设备名, mtdblock 属于 ftl 层,ftl 转换的效率很低,而且不安全,操作 ftl 不需要 erase 操作,完全像 block 设备一样。

 

你可能感兴趣的:(工具)