前不久有同事找我借无线路由器,我正好有一个闲置的(TP-LINK WR843N),里面是以前刷的Openwrt,怕他搞不定,决定刷回原版,当时没有查一下,就直接在web界面刷了原版ROM,结果就悲剧了,重启后所有灯都在闪,妥妥的变砖了。本来想弃置不管了,可是好歹花了138块大洋买的啊,有点舍不得,赶紧上网查了一下,发现有救砖的教程,但是要焊TTL线,哈哈,又要干老本行了,马上采办:USB-TTL转换器,30W烙铁,松香,焊锡,加运费一共34块,不贵!
东西很快到货,周末开搞:
1.拆机,找到电路板上的三个焊点,TP2(GND),TP5(TX),TP6(RX),先上锡,然后分别焊上连接线,其中TP5考验焊工,因为焊点实在太小了(一定是故意的吧!),加上十几年没焊过东西了,试了几次才弄上锡。焊完后TP2接USB-TTL转换器上的GND,TP5接转换器上RXD,TP6接TXD,就连这三根线,转换器上的VCC空置,不用连。
2.准备软件,USB-TTL转换器是PL2303的,这个很常见,内核已经有驱动了,终端软件就用screen了(minicom好难用,还要各种设置)。原版的ROM文件,tftp软件直接装了个tftp-hpa。
3.路由器上电,所有指示灯一阵阵的闪啊,不管它,从LAN口连根网线到电脑上,插好转换器,开screen:
screen /dev/ttyUSB0 115200
一切正常的话,会看到路由在不停的滚屏重启(Autobooting in 1 seconds ,难怪灯在一遍遍的闪啊),开始的时候我没接GND,结果全是乱码,接好地就正常了。
4.路由器滚屏重启的时候,注意了,不停的按t p l 三个字母,成功的话,就能中断重启过程,得到一个wasp>的提示符,下面开始干正事了。
5.输入printenv,会显示默认的IP地址等信息,ipaddr是路由器的,serverip是tftp服务器的,我就按这个来了,把连接路由器的网卡IP设置成192.168.1.100,tftp设置下目录,把原版的ROM文件(843.bin)放进去,启动tftp(这个时候ping路由器的ip是不通的):
wasp> printenv ... ipaddr=192.168.1.111 serverip=192.168.1.100 ...
6.把ROM文件下载到内存:
wasp> tftpboot 0x80000000 843.bin enet1 port1 up dup 1 speed 1000 Using eth1 device TFTP from server 192.168.1.100; our IP address is 192.168.1.111 Filename '843.bin'. Load address: 0x80000000 Loading: ############################################################ done Bytes transferred = 3997696 (3d0000 hex)
7.擦除FLASH:
wasp> erase 0x9f020000 +0x3c0000 First 0x2 last 0x3d sector size 0x10000 61 Erased 60 sectors
8.把内存里的ROM写到FLASH里:
wasp> cp.b 0x80000000 0x9f020000 0x3c0000 Copy to Flash... write addr: 9f020000 done
9,搞定,启动新ROM:
wasp> bootm 0x9f020000 ## Booting image at 9f020000 ... Uncompressing Kernel Image ... OK Starting kernel ... Booting Atheros AR934x Linux version 2.6.31--LSDK-9.2.0_U5.508 ([email protected]) (gcc version 4.3.3 (GCC) ) #15 Fri Dec 23 14:58:51 CST 2011 ...
(啧啧,系统就是Linux啊!这要在美国,TP也得跟思科一样公开源代码啊。)
10.路由器一切正常了,救砖成功!
2 reactions
1 From Druggo - 18/11/2013, 19:40
注意,文中具体数字仅适合WR843N。
2 From yq - 23/01/2017, 18:27
大神,你好。我又一款wr843n的路由器,刷的是自己编译的openwrt固件。最近突然挂掉,开机只有Internet一个灯在亮。安装reset上电也无法进入breed。网线连接电脑,电脑显示未连接,跟没插网线一样。
想问一下大神,这样是不是硬件某些地方坏了?ttl能救么?