感谢网友 HongPeng Tian 鼎力支持。我查询了一下redboot命令,在没有 jtag 的情况下要备份flash 还真是麻烦。
我想到了两个办法:
一、利用 redboot 的dump 命令,命令格式如下
dump -b <内存地址> [-l <长度>] [-s] # -s 可以忽略,用于调整输出格式,参数可以为: 1,2,4
dump -b 0x50000000 -l 0x800000
但此条命令并非是 dump flash,存成一个文件,而是在屏幕上显示16进制输出。
二、使用 linux 下的 dd 指令。
启动 mi424 ,进入 openwrt ,使用 dd 指令进行备份
dd if=/dev/mtd of=flash.bin bs=1 count=8388608 # count=8388608 (8M)可以忽略,这里指定取出 8M
此条命令可行,但是有个致命缺陷。因为 flash 总共只有8M,openwrt 也在其上运行,flash.bin 往哪里保存。
除非外接硬盘,或者使用 sshfs 之类的网络存储。
折衷的办法,备份 mtd 上的每个单独分区,比如:
1、用 cat /proc/mtd 查看分区情况
2、用 dd if=/dev/mtdxxxx of=mtdxxx.bin bs=1 进行备份。
但此方法也有问题, mtd 的分区信息写在哪里,没有这个信息,单独备份是没用的。
考虑以上办法,只有《方法一》可行,可以保存完整 flash 信息。我考虑最终方法如下,利用 telnet 的记录功能,保存dump出的文件,然后编写个小程序,将该文件保存成 bin文件。具体指令如下。
1、telnet -f dump.txt 192.168.1.1 9000 # 登录至 192.168.1.1 9000端口,并将命令交互记录至 dump.txt 文件
2、运行 dump -b 0x50000000 -l 0x800000 命令 #执行时间较长
3、退出, dump.txt 文件既为 flash 完整备份,当然格式需要转换,这个我可以进行处理。
另外对于 mi424 原厂的 flash 如何去除,因为机器到手我就刷了,就不是太清楚了,还请各位朋友指教。
-----------------------------------------------------------------------
我可以略微帮助你。我没时间查redboot,你查redboot dump 8M flash的命令,我
dump 我的flash给你。
另外,我还可以给你424原厂的8M flash.
"雪见"杨幂邀你共品3D国韵网游《天下贰》,海报免费领