EdgeRouter-X 的Reset孔比较神奇,别人家(尤其是OpenWRT)的Reset都是一键还魂,而ER-X这个仅仅是把Configure替换成出厂设置。除非你只用GUI,否则其他文件出错的话大铁棍子医院找捅主任是救不回来ER-X的。
由于ER-X又没有Serial Consol接口,就只能开膛破肚找主板上的TTL接口刷机了。
按着官方论坛上EdgeRouter-X (erx) 系列TTL连接救砖/刷固件(EdgeOS/OpenWRT/LEDE)/教程一步步搞下来算是成功把ER-X给救回来了。
那篇帖子是macOS环境下的,跟Windows还是有一点区别,我在他的基础上把Windows救砖的一些细节补上。
准备工作
首先要下载几个东西,分别是:
openwrt 引导固件:openwrt-ramips-mt7621-ubnt-erx-initramfs-kernel.zipopenwrt-ramips-mt7621-ubnt-erx-initramfs-kernel.zip (2.8 MB, 1 次)
EdgeRouter-X 固件:https://www.ubnt.com.cn/download/edgemax/edgerouter-x
然后需要配置TFTP和HTTP(由于openwrt 引导固件没法用SFTP或者TFTP),我用的是tftpd和HFS。
把openwrt 引导固件解压部署在TFTP上、EdgeRouter-X 固件解压放在HTTP上。总之就像下面那样
TFTP: openwrt-ramips-mt7621-ubnt-erx-initramfs-kernel.bin
HTTP: compat squashfs.tmp squashfs.tmp.md5 version.tmp vmlinux.tmp vmlinux.tmp.md5
最后,也是最重要的是得有串口,通常都用各种USB-TTL解决,我一开始试图用DFrobot XBee USB Adapter V2 – Atmega8U2 但是没有任何输出,后来换了一个讨厌的(这东西驱动特别烦必须用旧的3.2.00版本才行)PL2303 就好了,不过这个破玩意也给我埋了个坑(蓝屏了好多次)。软件我用的是Putty不过应该任何一个串口工具都行。
捎带手还得设置一下IP:
IP地址:192.168.1.111 子网掩码:255.255.255.0 路由:192.168.1.1
拆机连线
拆机很简单,电源口那侧左右各有一个小螺钉,拧开推一下就开了。
按图接线,RX和TX我也不大确定,重启上电应该会有输出,总之没输出的话对调一下就好了。
开刷
网线连电脑和eth0,Putty开串口,波特率57600,断电重启就会看到滚屏。会有一个询问你要干什么的倒数,这时候赶紧按1。
device IP 指的是获取文件的地址,此处则是路由器即 ER-X IP 地址是 192.168.1.1。 server IP 是你想获取文件的地址,此处我们范例是使用的本机,就是刚刚填入的 192.168.1.111。 最后提示你要获取的文件名, 此处填写 openwrt-ramips-mt7621-ubnt-erx-initramfs-kernel.bin
然后会上传加载,具体的可以去看官方论坛的帖子,时间不是很长,需要注意的是默认不显示,可以敲个回车试试。能看到OpenWRT的字符画就算胜利,到这串口的使命就结束了。
网线插到eth1上,还是用Putty,这回开SSH,192.168.1.1:22,用户名root密码留空就进SSH了。为这地方不用串口了是因为我一开始用串口跑这部分的时候,蓝屏,不断蓝屏。反正到这个阶段SSH好用了何必折磨自己。
切到root文件夹,用wget把EdgeRouter-X 固件下载到路由器上:
cd root wget http://192.168.1.111/compa wget http://192.168.1.111/squashfs.tmp wget http://192.168.1.111/squashfs.tmp.md5 wget http://192.168.1.111/version.tmp wget http://192.168.1.111/vmlinux.tmp wget http://192.168.1.111/vmlinux.tmp.md5
然后就可以开始安装了
ubidetach -p /dev/mtd5 ubiformat /dev/mtd5 ubiattach -p /dev/mtd5 ubimkvol /dev/ubi0 --vol_id=0 --lebs=1925 --name=troot mount -o sync -t ubifs ubi0:troot /mnt/
将官方固件解压出来的文件改名,并复制进 mnt
cp version.tmp /mnt/version cp squashfs.tmp /mnt/squashfs.img cp squashfs.tmp.md5 /mnt/squashfs.img.md5
复制 squashfs.tmp 的时间较长
dd if=vmlinux.tmp of=/dev/mtdblock3 dd if=vmlinux.tmp of=/dev/mtdblock4
最后重启
reboot
现在你的ER-X就和新的一样了,网线插到eth0就可以用了