Get TL-WR703N Unbricked

如果无意中在WR703N中误烧了别的固件,导致变砖,这时候用TTL重新烧写固件是简单方便的选择。

网上有很多教程,这里简述一下我的操作过程遇到的问题和解决办法。

救砖所需工具:
电烙铁等焊接工具
PL2303USB转串口线(用于连接WR703N与计算机)
SecureCRT(用它作为串口通信工具)
tfptd服务器
装Ubuntu的计算机一台
装Windows的计算机一台

1、引出WR703N的串口线
首先是拆开WR703N,用小号的平口螺丝刀从WR703N网口的蓝色上盖与白色底框中间撬开,撬开后可以比较轻松地把板子拿出来。板子上标有TP_IN和TP_OUT,分别是串口的RX和TX,由于焊盘很小而且氧化严重,直接从这里引出连接线比较麻烦,很可能把焊盘焊坏掉。好在这两个点分别在另外有两个容易焊接的点上有引出来,所以参考下图进行焊接。GND在板子上有个很大的焊点,也很容易引出来。
tl-wr703n_pcb-gpio_2

51_2_50b376a4b4ae569

2、用串口线连接板子和装SecureCRT的计算机
总共就三根线,注意不要把RX和TX线接反了,应该是TX->RX,RX->TX。安装好串口驱动的计算机应该能够顺利识别出串口线,接着打开
SecureCRT软件,选择建立串口连接,参数设置如下:
注意波特率设置为115200,Flow control不进行任何勾选。
3、从串口进入板子的U-Boot
这时候需要两个人操作,一个人给板子上电,另一个人在板子上电,有信息输出的同时,依次迅速按下tpl键,这一点很重要,顺利地话,会
进入u-boot控制台,也就是出现命令提示符:hornet> ,如果没有出现,重复上电与按键操作,直至进入控制台。
4、通过tftp下载固件
这一步之前都很顺利,在使用tftp这里卡了好久,所以细说一下。首先参照网上的方法,在windows下用Tftpd32软件当做tftp服务器,
执行如下三行指令:
hornet>setenv ipaddr 192.168.1.1
hornet>setenv serverip 192.168.1.2
hornet>tftp 0x80000000 fac.bin
其中fac.bin文件包含在Tftpd32软件指定的当前目录中,192.168.1.2是主机的IP,也在Tftpd32软件的Server interfaces中指定了。
结果在执行最后一行通过tftp下载固件的指令的时候,总是提示出错,具体信息是:“ TFTP error: ‘File not found'() ”,上网查找对应的错误,有说法是
ip地址或是端口号没有设置正确,建议用wireshark抓包看看。于是用wireshark抓包后,可以清楚地看到板子和计算机通信的数据包,信息如下:
在板子发给主机的数据包中是tftp协议的消息: 69 read request, File: fac.bin, transfer type: octet, timeout\000=5\000
主机回給板子的数据包中的tftp协议消息是: 62 Error Code, Code: File not found, Message: File not found.
从板子和主机之间交互的消息来看,ip和端口是没有错的,问题应该是:虽然tftp软件启动了,但它无法找到文件。鉴于没有查到如何在Windows下
解决找不到文件的问题,转而试试在Ubuntu下用tftp行不行。
先安装tfpt软件
sudo apt-get install tftp-hpa tftpd-hpa
在安装好之后,可以在配置文件中制定目录、地址:端口以及选项等信息。下面是我的设置:

$ sudo vi /etc/default/tftpd-hpa

/etc/default/tftpd-hpa

TFTP_USERNAME=”tftp”
TFTP_DIRECTORY=”/homt/tu/tftpboot” # 这里是你的tftpd-hpa的服务目录,这个想建立在哪里都行
TFTP_ADDRESS=”192.168.1.2:69″
TFTP_OPTIONS=”-l -c -s” #-c是可以上传文件的参数,-s是指定tftpd-hpa服务目录
要注意TFTP_DIRECTORY中的路径要包含你想要板子访问的文件,如fac.bin,TFTP_ADDRESS中指定的是用于服务的主机ip和端口号,可以和wireshark
抓取的数据包信息对应上。同时要确保fac.bin文件能够被读,通过命令 chmod 777 fac.bin 进行设置。设置完后重启tftp服务:sudo service tftpd-hpa restart
连接好板子和Ubuntu主机的网线,重复指令:
hornet>setenv ipaddr 192.168.1.1
hornet>setenv serverip 192.168.1.2
hornet>tftp 0x80000000 fac.bin
发现可以顺利的下载固件了,下载完成后进行下面两步:
hornet>erase 0x9f020000 +0x3c0000
hornet>cp.b 0x80000000 0x9f020000 0x3c0000
完成后启动新固件:
hornet>bootm 0x9f020000
发现可以正常启动啦!