如果说走就走的旅行算是一种美好冲动的话,说刷就刷的固件应该算是花样作死了。
一开始一切都是顺利的,刷dd-wrt官方的factory-to-ddwrt.bin,配置pptp server,设置路由规则、端口映射。就要打算收工的时候为了尝试搭建shadowsocks,直接从ddwrt的论坛中下载了一个固件,说是缩减了固件体积,允许开启JFFS,刷入过程并没有任何问题,然而执行重启后就再也没有启动起来,一直停留在无限重启的循环中,尝试了30-30-30复位方法也无济于事。
事已至此就只剩下ttl刷机和拆芯片烧录两条路了,回到家开始翻箱倒柜的找烧录器或者ttl串口线,找了一圈发现,家里荒废了才两年的实验平台还停留在串并口的时代,连一根USB转ttl串口都没有,更别说USB的烧录器了。
好在芯片还是全的,随手找一块空板子焊上个CP2102也还能用。路由器一边找串口点也还算顺利,TP-Link 742N的主板和741N基本一致,串口在TP4、TP5两个点上。其中TP4是TxD(output),TP5是RxD(input),地线从旁边的屏蔽框上接出来就可以了,接好以后如下图所示:
串口连入电脑后使用任何一款串口调试工具打开串口,并设置波特率为115200,数据位8位,停止位1位,无校验即可。如果一切正常给路由器上电后可以看到串口循环输出启动信息。
串口连接完成之后需要连接网线,从路由器的LAN口到计算机网口。需要设置计算机的IPv4属性,使用下面的IP地址,如下图所示:
同时需要使用tftpd32这个软件给路由器上传固件,好在是个小体积绿软,准备起来也不费事。
串口和网线连接完成之后就可以开始通过串口命令的方式写入固件了。首先需要等待串口输出“Autobooting in 1 seconds”的时候迅速输入“tpl”指令(不含双引号,需要回车换行,下同),目的是让路由器进入指令模式。
之后依次输入:
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.10
printenv
路由器反馈如下:
这个时候需要打开之前准备好的tftpd32,将目录定在路由器原始固件存放的目录,Server interfaces选择之前设置好的192.168.1.10。设置好后如下图所示。
之后从串口发送指令:
tftpboot 0x80000000 wr741nv1.bin
其中wr741nv1.bin是需要烧写固件的文件名,目录应该在刚才tftpd32中设置的Current Directory下。
上传完成后注意红框中的固件长度,必须等于3c0000,如果不等于将导致刷机失败,不过这个还跟后面命令中的变量有关,不知道能不能通过修改后续步骤中的参数来刷不同长度的固件。
继续从串口发送命令,等提示done或者出现ar7240>的时候再输入下一条:
erase 0x9f020000 +0x3c0000
cp.b 0x80000000 0x9f020000 0x3c0000
bootm 0x9f020000
最后一条是重启指令,如果成功启动就算刷机成功。再将之前设置过的IPv4属性都改为自动获取就大功告成了。最后附上TP-Link 741N V1的出厂固件,这个741N和742N是通用的,以及对应的dd-wrt固件。
wr741nv1.zip
factory-to-ddwrt.zip
{ 本文链接: https://www.sy2k.com/2016/tp-link-wr742n-%e6%95%91%e7%a0%96%e8%ae%b0/;
原创文章, 转载请保留. 转载自 https://www.sy2k.com }
Sukey
You can always tell an expert! Thanks for coiitrbutnng.