在Mac OSX上修复变砖的NEXX WT3020

Openwrt Sep 05, 2015

爱生活爱折腾,一个好用舒畅的路由器必不可少,比如NEXX出的WT3020小路由:

  • MT7620 580Mhz CPU
  • 64MB RAM
  • 8MB ROM
  • ~6cm x 4.5cm x 1.7cm
  • USB 2.0
  • 2 x 100Mbps ethernet ports (不是1Gbps怨念)
  • Openwrt完整支持
  • 80~100 RMB

实在是居家旅行之必备,各种openwrt应用加持折腾不亦乐乎,最近出Chaos Calmer RC3了,忍不住又编译了一个新固件看稳定性有没提升(之前CC trunk版本刷上总是不定期crash掉DNS不知道原因也懒得troubleshooting)。得瑟地在马桶上用手机ssh然后远程wget,sysupgrade,貌似是还没完成就退出了ssh客户端锁屏手机的缘故(完事了~),重启路由后再也连接不上,reset,手动设置网口IP都无济于事,就一个小蓝灯亮着不给任何反应,WT3020变砖了…!

好吧,用串口刷砖还有救:

需要准备好的工具:

  • USB-TTL转换适配器(比如我在x宝上弄了个各种情况通刷基于Silabs CP2102芯片的,重点是有Mac驱动支持
  • 用系统自带的screen,或用更专业的Mac版minicom:

minicom安装完后在/opt/minicom/2.2/bin目录下,将其添加到PATH中(在/private/etc/paths里加上这个目录路径,然后重启terminal)。

minicom -s



确保A和E选项里的参数正确,然后“Save setup as dfl”,然后“Exit”等待后面路由启动后的串口数据吧!

  • tftp server,其实Mac就自带了,见下参考方法:

修改OSX上tftp服务的配置/System/Library/LaunchDaemons/tftp.plist:

<dict>
    <key>Disabled</key>
    <false/>

在OSX上启动tftp server:

sudo launchctl load -w /System/Library/LaunchDaemons/tftp.plist

Openwrt镜像包放入/private/tftpboot文件夹,并确保读权限:

sudo cp openwrt-ramips-mt7620n-wt3020-8M-squashfs-sysupgrade_20150829.bin /private/tftpboot/firmware.bin
sudo chmod 644 /private/tftpboot/firmware.bin

然后就用起子敲开WT3020的外壳吧,就是强力敲开,塑料壳卡口损伤会有的,不过不影响后期闭合回去的~
WT3020的串口点还是很良心的,靠近wan口的那个点是TX,接USB-TTL上的RX,靠lan口近点的是RX,接USB-TTL上的TX,两个GND点很明显,如果USB-TTL的供电与WT3020的供电都是一台电脑上的USB,GND貌似不接也是OK的,焊接技术好就直接焊上把,不好就找个帮手把引脚接触上,全程不断就行~,盗张图:

最后一步,将lan口(不是wan口)用网线和Mac连通(雷电转网口啊,USB转网口什么的),在Mac网络设置里给那个连上的口设置IP: 10.10.10.3,router: 10.10.10.1,mask: 255.255.255.0。

万事具备后,给路由器通电,一切正常就可以在terminal上看到下面输出了:

U-Boot 1.1.3 (Jan  3 2014 - 09:12:42)

MAX Board: Ralink APSoC DRAM:  64 MB
relocate_code Pointer at: 83fb4000
enable ephy clock...done. rf reg 29 = 5
SSC disabled.
spi_wait_nsec: 29
spi device id: 1c 30 17 1c 30 (30171c30)
find flash: EN25Q64
raspi_read: from:30000 len:1000
*** Warning - bad CRC, using default environment

============================================
Ralink UBoot Version: 4.1.1.0
--------------------------------------------
ASIC 7620_MP (Port5<->None)
DRAM component: 512 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 64 MBytes
Flash component: SPI Flash
Date:Jan  3 2014  Time:09:12:42
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768

 ##### The CPU freq = 580 MHZ ####
 estimate memory size =64 Mbytes

Please choose the operation:
   1: Load system code to SDRAM via TFTP.
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   7: Load Boot Loader code then write to Flash via Serial.
   9: Load Boot Loader code then write to Flash via TFTP.

You choosed 2

在倒计时之前键盘上选2,然后按提示修改路由(input)地址为10.10.10.1,电脑(server)地址为10.10.10.3,待下载的文件名为firmware.bin。

可以看到ethernet port被重新激活了,然后找到文件名开始load了~
一切顺利结束,砖头复活了,连上网线,ssh吧,一切又美好起来~