1、 准备工作:
硬件工具:
1、USB转TTL CH340模块
2、2.54mm间距4P单排排针
以上东西网上购买即可,2个加起来不到5块钱,还包邮。
软件工具:
1、sscom5.13.exe
2、tftpd32.exe
3、路由器原厂固件
文件下载地址: 提取码:v58c 点击前往
步骤
首先先拆开路由器,在下图画红圈的位置,有4个圆孔,分别是路由器的VCC,RX,TX,GND引脚,就是通常用的串口。在这个位置还有连个银色的焊点,用少量的锡丝短接2个焊点,然后用4P单排排针插入4个圆孔,用电洛铁在电路板背面将排针焊接上。
4个接口如下图,RX和TX有可能反了,后续步骤串口如果无输出,对调一下就可以了,VCC可以不焊,因为过程用不到。
开始刷机
a) 电脑网线插入路由器的任意一个LAN接口
b) USB转TTL模块连接电脑和路由器,插上TTL的三根线GND、RX、TX,然后插上路由器的电源。
c) 设置电脑的网络地址为192.168.1.10,255.255.255.0,192.168.1.1,网址不能改其它的,路由器Archer C5V4固件BootLoader中固定的,不能变。
d) 开启PC上的的TFTP服务器软件(tftpd32.exe)
共享网址:192.168.1.10:69
点击Browse设置官方固件所在文件夹
e) 打开Serial工具(sscom5.13)
因为这个软件可以随时调波特率,本款路由器TTL发送的时候需要用115200波特率,接收的数据却是128000波特率。
2、 下载(刷机)模式
路由器电源拔掉,重新上电,迅速在sscom5.13软件界面不断按下数字键4,进入下载(刷机)模式。
不同路由器固件停止键不一样,Archer C5V4固件按4,原厂固件上电后按Ctrl + B进入下载(刷机)模式。
SSCOM5.13软件操作
控制台波特率改为115200,逐条发送以下指令:
// 上传固件到路由器运行内存
tftp 0x80060000 mtd9_firmware.bin
// 擦除flash的内容
erase 0x0 +0x1000000
// 从内存复制数据到flash中
cp.b 0x80060000 0x0 0x1000000
// 重启路由器
reset
大功告成!!!
mtd9_firmware.bin是路由器原厂固件。
知识扩展:
3、 刷机指令:
a) 查看设置环境变量:
printenv
setenv ipaddr 192.168.0.3
setenv serverip 192.168.0.20
b) 恢复系统分区(rootfs)
// 从TFTP服务器下载文件到路由器闪存
tftp 0x80060000 mtd2_rootfs.bin
// 擦除起始位置为0x190000长度为0xBA0000的Flash内存
erase 0x190000 +0xBA0000
// 从闪存0x80060000复制到内存0x190000,长度为0xBA0000
cp.b 0x80060000 0x190000 0xBA0000
// 重启
reset
c) 恢复其它分区:
tftp 0x80060000 mtd1_kernel.bin
erase 0x40000 +0x150000
cp.b 0x80060000 0x40000 0x150000
erase 0xD30000 +0x2D0000
tftp 0x80060000 mtd3_device-info.bin
cp.b 0x80060000 0xD30000 0x10000
tftp 0x80060000 mtd4_firmware-info.bin
cp.b 0x80060000 0xD40000 0x10000
tftp 0x80060000 mtd5_tddp.bin
cp.b 0x80060000 0xD50000 0x10000
tftp 0x80060000 mtd6_log.bin
cp.b 0x80060000 0xD60000 0x20000
tftp 0x80060000 mtd7_rootfs_data.bin
cp.b 0x80060000 0xDF0000 0x200000
tftp 0x80060000 mtd8_art.bin
cp.b 0x80060000 0xFF0000 0x10000
tftp 0x80060000 mtd9_firmware.bin
erase 0x0 +0x1000000
cp.b 0x80060000 0x0 0x1000000
reset
踩坑指南:
1、 擦除内核后修复之路:
a) 想刷入breed,不敢擦原来的bootloader,把内核擦掉了,把breed写入内核的位置,结果开不了机,用USB转TTL连接,波特率128000,引导内核的时候回显:
Bad Magic Number,FFFFFFFF
b) 然后自动回到Uboot控制台:
拯救内核:
1、首先,设备线全拔了,等下重新插
2、然后,插上TTL的三根线GND、RX、TX
3、电脑无关网卡禁用,只留一个有线网卡,插入电脑网线,网线另一端插入路由器的5号LAN接口
4、打开Tftpd32软件,点击Browse设置mtd1_kernel.bin所在文件夹
5、SSCOM软件打开,波特率设置为128000,串口打开,插入路由器电源,按下电脑的Crtl + B,如无意外,界面如下:
6、网缆被拔出变成了未识别网络
7、控制台波特率改为115200,逐条发送以下指令:
tftp 0x80060000 mtd1_kernel.bin
erase 0x40000 +0x150000
cp.b 0x80060000 0x40000 0x150000
reset
发送指令后,接收的是乱码,波特率改为128000,接收会显示正常,但是发送的时候波特率一定要改回115200,要不然发送的指令不生效。
f) 至此内核拯救成功。