|
本帖最后由 ghostja 于 2015-4-3 17:55 编辑
隔壁 论坛 的 @nbdbx 发过一篇 《 菜篮子磊科NO1不拆机刷不死uboot、TTL串口接法,编程器固件、telnet ssh刷uboot分享 》
在里面提到使用tftp方法可以替换uboot
电脑改ip为192.168.1.33 路由按住no1特有的usb的退出按键,上电启机,tftp服务器里面日志显示,路由请求的文件是uboot.bin ,将uboot名uboot.bin放在tftp根目录,看日志传输成功,路由也启动了,这时就替换了原版uboot。
本论坛的 @wuciti 朋友用的也是这个方法,得以无损替换uboot。
但是我发现有个奇怪现象。他们的机器不知道是版本比较高还是怎么的,请求的文件是uboot.bin,而我的第一批版本的机器请求的是ra288.bin 文件,而我把uboot改名成 ra288.bin可以传输过去。但是在写入的时候提供CRC检验失败,这样就无法替换uboot,我是从TTL 的输出信息上看到这些信息。而我的机器还有一点更奇葩的地方,TTL 无法输入,换了三个TTL 小板都不行,反复检查了接触确定是没有问题的。小板从PL2303到CP21XX到CH341,都不行。这样我就无法通过TTL 去替换uboot了。所以就产生了如下方法。
NO1的原版系统可以telnet上去的,默认账户guest 默认密码guest,(如果改过路由登陆管理密码,请使用新密码,账户还是guest)
---输入cat /proc/mtd 查看闪存分布。
/dev/mtd1就是uboot,
系统里面有个 mtd_write命令 ,理论上telnet 中输入mtd_write write u.bin Bootloader 就能替换成功,但是这个write命令似乎是被阉割过的,无效。
查看mtd_write 语法发现有unlock和erase命令,好在这两个还是可以用的。所以
1. 使用mtd_write unlock /dev/mtd1 解锁
2. 使用mtd_write erase /dev/mtd1 清除原uboot内容
3. 使用DD 命令写入新uboot,在我这是: dd if=/tmp/u.bin of=/dev/mtd1 ,这样就搞定了。捅菊花重启就可以进入uboot了
|
评分
-
查看全部评分
|