本文以 MacOS 做例,Windows 请自行参考。

  1. 刷前准备

(1)接线
由于 ER-X 没有 console 口,你需要 FT232 芯片板 USB 转 TTL 以及 3 根连接线。
IMAGE_2018-03-30_15_27_09
IMAGE_2018-03-30_15_27_10

在 ER-X 电路板上从上之下依次为 RXD TXD GND

(2)相关固件下载
openwrt 引导固件:openwrt-ramips-mt7621-ubnt-erx-initramfs-kernel.bin
下载地址:https://downloads.lede-project.org/snapshots/targets/ramips/mt7621/

(3)TFTP 服务器
MacOS 自带 TFTP 服务器,只要配置好路径打开即可

sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
sudo launchctl start com.apple.tftpd
sudo chmod 777 /private/tftpboot
sudo chmod 777 /private/tftpboot/*

默认路径 /private/tftpboot ,将下载好的固件复制到这里。
IMAGE-2018-04-03-13-46-30

Windows 的同学请自己研究下 TFTP server

(4)配置网络 IP 地址
IMAGE-2018-04-03-13-46-24

  1. 连接
    将芯片版连接至 Mac,另一段连接至之前图中所示的位置后,可以使用 putty 或者 mac 自带的 screen
    波特率 57600 8N1
screen /dev/cu.usbserial-[你的设备 ID] 57600

断电重启 就会刷出屏幕信息,要注意的是,如果按示例的接法始终没有信息,将 TX/RX 线对调一下在尝试是否有信息输出。
start
当出现上图信息后,快速按下 1,使用 TFTP 刷入引导固件,依次填写 IP 地址
opconfig

3.刷引导固件
使用 TFTP 时需要将机器与路由器 eth0 口连接

device IP 指的是获取文件的地址,此处则是路由器即 ER-X IP 地址是 192.168.1.1。
server IP 是你想获取文件的地址,此处我们范例是使用的本机,就是刚刚填入的 192.168.1.111。
最后提示你要获取的文件名, MacOS 默认开启了 TFTP ,地址是 /private/tftpboot,将你下载的引导固件放到此目录中,将名称填入终端。如果你已经下载了固件并放入 TFTP 文件夹中,此处填写 openwrt-ramips-mt7621-ubnt-erx-initramfs-kernel

文件名:openwrt-ramips-mt7621-ubnt-erx-initramfs-kernel

当全部准备就绪后回车,系统会自动从引导固件加载:
starting

等待启动完毕后敲击回车进去命令行,由于不会默认显示,你可以中途尝试回车键看是否引导完成。
openwrtwelcome

4.刷回官方固件

此时已经进入 openwrt 引导系统,需要将官方固件上传至路由器,注意⚠️:上传时需要将网线连接至 eth1 口!
ER-X 固件下载参考准备工作,
下载完成后解压并进入到文件夹上传文件。
上传到 /root/ 目录下
openwrtfiles

回到路由器,依次执行以下命令

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