0%

网件(NETGEAR)wndr4300 TTL线刷救砖记

上次调完网络,想顺便把我的路由器NETGEAR wndr4300从OpenWrt刷成石像鬼(Gargoyle)固件,结果情急之下下错了固件(应该是用sysupgrade.bin从OpenWr更新到Gargoyle,结果下成了factory.bin),等路由器重启后就无法开机了。

网上的资料说这款路由器自带不死uboot,按住reset并开机可以进入recovery模式,可以通过tftp重新刷机。可是我的路由器按住reset开机之后,只有电源灯和电脑网线对应的LAN口灯亮着,无法ping通路由器ip(192.168.1.1),tftp刷机自然也无法完成。 本来想放弃的,但几次尝试发现路由器貌似没有变砖,电脑网线插哪个LAN口,哪个LAN的指示灯能够对应亮起,所以判断应该只是recovery模式进不去了,uboot应该没坏,网上看到的资料说是可以通过TTL来操作uboot,于是就试试呗。

先找来USB转TTL线(PL2302芯片即可),拆机时发现这款路由器除开螺丝拧得紧之外竟然异常好拆(且好装),螺丝刀需要用T8的,跟之前拆的PS4一样。

拆开后主板翻过来,有TTL的接线脚,脚的顺序可以找在OpenWrt的wiki上找到。如下图,4个TTL脚在图片中的左下角处,4个脚从下往上分别是GND、RX、TX、VCC。用USB转TTL线连接时注意千万不要接主板的VCC,不然有可能烧掉转接线,只用转接线上的另外3根线即可,注意转接线上的GND接主板GND,RXD、TXD则跟其他板子一样:RXD接主板的TX、TXD接主板的RX。

转接线接好后,另一头接电脑并装好驱动,然后用Putty之类的终端工具,通过对应的串口建立连接。再打开路由器,就能在终端上看到uboot的启动信息了。

从输出中可以看到,我的路由器果然在进入recovery时失败了。于是断电再开,在出现”Hit any key to stop autoboot”提示时按任意键中断启动,进入uboot的命令行模式。

进入之后开始一筹莫展,网上的资料接下来都是通过tftpd来接收新的固件,然后通过erase来刷机了,但是这erase的地址该怎么填啊,也没有资料啊。

惆怅了半天,发现执行”help”命令后,uboot里面都没有uboot命令,但是却找到了一个叫”fw-recovery”的命令,于是听天由命执行了一下,再尝试从电脑上ping路由器,竟然通了! tftp刷机也顺利完成。

使用了一阵子石像鬼之后,发现确实比原生的OpenWrt好用。OpenWrt的Luci界面实在是反人类,晦涩复杂,而且随便装了几个软件之前Load和内存占用都非常高,暂时没用的ipv6也很难关掉。石像鬼的UI才真正是个路由器该有的样子,和常规的路由器很像,这样才符合逻辑嘛,基本的设置从UI上设置,想要高级功能就SSH上去弄。wndr4300的石像鬼默认没带ipv6也让人喜出望外,除开自带的USB存储管理、DLNA功能外再装上Transmission和SS,Load和内存占用(20%-30%)都非常低。

另外关于SS在路由器上使用,我其实一直没找到比较合适的模式,按目标ip来吧感觉总是不大合适而且不知道什么时候就走SS了让人没有安全感,按局域网内的源主机来吧但是国内网站明显又不需要绕路走SS,其实两者结合应该是比较好的模式,后面有空再弄吧。现在我采取的方式是预留了几个内网IP,当来源IP匹配时则走SS,这样如果有需要,把设备的IP改一下就走SS了。个人最满意的方式还是在电脑上使用火狐浏览器上的FoxyProxy这种,一般情况下按域名自动来还可以手动添加域名,但随时可以手动切换为全局走SS,也可以随时关闭强制全部直接连接。