Posted in: IT

把红米 AX5 路由器刷成了 OpenWrt 系统

三年前,我曾经写过一篇文章提到给红米 AX5 路由器开启 SSH 的方法。当时浏览热度相当高,其实这个内容在其他 blog 里面也能经常见到,可能是时间比较早的缘故吧。但是开启了之后有什么用呢?这个路由器内存只有 256 MB,内置的是一个极度精简的 OpenWrt 系统,基本上就是“啥也干不了”的状态。于是就萌生了刷机的想法。

参考资料

可能你会问:既然已经有教程了,为什么还要再水一篇?那是因为我发现实操的某些过程和教程不太一样。

准备工具

  1. Uboot 和 MIBIB 刷写件。网上很多人说要付费购买,其实不用,在 Github 就能免费下载获得。我选择的是 uboot/coolsnowwolf/ 里面的文件 (AX5_MIBIB.binAX5_UBoot.bin)。实测可行。
  2. OpenWrt 过渡固件(可以理解为精简版)。我使用的是此处openwrt-ipq60xx-Redmi_AX5-squashfs-nand-factory.ubi 文件,大小约 13MB。实测可行。
  3. 能插网线的电脑一台。例如我的是 Macbook,没有网线接口,就需要购买一个 LAN – USB 转换头。注意买的时候看清楚是否是“免驱动即插即用”
  4. OpenWrt 最终固件。这里有坑,后面再说。

刷机步骤

开启 SSH

已经写过了。

备份、刷入 Uboot

备份就不说了。直接看参考材料。

刷入 Uboot 的方法是:首先要把 AX5_UBoot.bin 这个文件上传到路由器的 /tmp 目录下。然后执行:

mtd write /tmp/AX5_UBoot.bin /dev/mtd7

此时会显示如下信息,并且是瞬间完成。

root@AX5:/tmp# mtd write AX5_UBoot.bin /dev/mtd7
Unlocking /dev/mtd7 …
Writing from AX5_UBoot.bin to /dev/mtd7 …

参考资料上都建议等 20 秒之后再操作,我也等了。

坑:macOS 怎么向路由器传输文件?

macOS 上没有 winSCP 可用,也无法使用 FileZilla 来传文件(不信可以试试,必败)。原因是因为 macOS 上的 scp 默认会调用 sftp,而红米 AX5 路由器上没有 sftp(也不可能去安装一个),因此唯一的办法是给 scp 加上 -O 参数,这样可以避免 scp 调用 sftp:

# 假设路由器的 IP 是 192.168.0.1
scp -O AX5_UBoot.bin [email protected]:/tmp/

进入Uboot界面,刷写过渡件

首先把参考材料上的原文抄过来:

  1. 进入Uboot后台方法:先把路由器断电,推荐直接拔路由器屁股的电源口而不是插座,然后用牙签或者其他工具按住路由器后面的RESET不要放开,然后插上电源,此时路由器会黄灯闪烁5次变为蓝灯,然后就松开RESET(松开牙签)。
  2. 准备根网线接到路由器的LAN口和电脑的网口,设置电脑的IP为192.168.1.X(随意不能是1)。从此处开始到结束,网线要一直插着。
  3. 在浏览器输入 192.168.1.1 进入uboot。
  4. 然后选文件过渡固件(例如我选的 openwrt-ipq60xx-Redmi_AX5-squashfs-nand-factory.ubi
  5. 点击Update firmware等待写入。路由器指示灯开始闪烁,直到不闪烁亮蓝灯为止。
来自 https://www.right.com.cn/forum/thread-8278695-1-1.html

我也是这么操作的,没有遇到问题。首先放一张 uboot 界面图(上面第 3 步)。

然后放一张 Update firmware等待写入的图(上面第 5 步的过程)。

最后放一张过渡固件刷完之后的图(上面第 5 步的结果)。

如果上面第五步操作之后路由器一直不亮蓝灯,则表明过渡固件写入失败,需要重新从第一步(路由器断电)开始操作。

刷入MIBIB

这一步参考材料上写得不是很清楚。归纳起来应该这样:

  1. 连接路由器的 SSH,IP 是 192.168.1.1,用户名是 root,不用密码。
  2. 同样用 scp -O 命令,复制 AX5_MIBIB.bin 文件到路由器的 /tmp 目录下面。
  3. 执行 mtd write /tmp/AX5_MIBIB.bin /dev/mtd1 。过程和结果与刷入 Uboot 那一步很像,也是瞬时完成,但是等 20 秒左右。

升级 OpenWrt 为最终固件(重大的坑)

操作方法就像参考资料里说的,在 192.168.1.1 的 web 界面上进行升级操作,点击按钮,上传最终固件,点击执行,等待路由器变蓝灯就好了。好像很傻瓜式。但是这里坑最多了。

用什么浏览器?

我在 macOS 上一直用 Safari 浏览器,因为省电。可是在这一步用 Safari 浏览器有可能导致升级失败(路由器一直黄灯)。建议用 Chrome 浏览器

选哪个固件?

开始直接选择参考资料里面的固件,效果很不理想:

  • 有的过于精简,后续想安装 Wireguard 安装不上,因为固件在编译时缺少一些必要的库。(OpenWrt 可不是 Ubuntu,一旦固件在编译时缺少库的话,是无法后续安装的)
  • 有的过于臃肿,什么都有,安装完之后有些分区目录居然接近 100%(别忘了红米 AX5 只有 256MB 存储),导致接下去不能安装任何额外东西。
  • 有的安装完之后居然不能 SSH 登陆,原因是因为 /etc/shells 只有 /bin/ash,这种情况只能呵呵呵了。
  • 大部分固件内核都太老了,新内核固件要付费才能下载(说的就是那个只谈技术、莫论政事的著名论坛)。

我用了 openwrt.ai 这个网站来自行构建固件,免费用户每天可以构建一次。在网页上可以选择需要添加哪些软件包或者删除哪些软件包!

  • 红米 AX5 是没有 USB 接口的,因此我去掉了 -kmod-usb 开头的软件包。
  • 因为红米 AX5 内存只有 256MB,因此去掉了带 wifi 的软件包。
  • 由于我想要后续使用 Wireguard,因此添加了 luci-proto-wireguard、 luci-app-wireguard、 kmod-wireguard、 wireguard-tools 这四个软件包。

构建大约 2 分钟即可完成,固件(kwrt-xx.xx.xxxx-qualcommax-ipq60xx-xx_xx-squashfs-sysupgrade.bin)大小只有 22MB。

升级需要多久?

大约半分钟到一分钟。如果 1 分钟之后路由器仍然不亮蓝灯,基本可以判断为升级失败,需要重新从 Uboot 界面那一步开始操作。

最终效果

下面放一下最终固件的 web 截图。

SSH 的欢迎界面挺漂亮。

使用 openwrt.ai 构建固件优势明显:因为内核新,很多东西操作起来方便。例如 SSH 自带支持 ed25519,不用额外添加 RSA 了。而且由于可以自己删减软件包,因此很省空间(我用了 7.8 MB 的空间)。

[root@Kwrt:12:09 AM ~] # df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                15.5M     15.5M         0 100% /rom
tmpfs                    63.4M      1.3M     62.1M   2% /tmp
/dev/ubi0_2              40.4M      7.8M     30.5M  20% /overlay
overlayfs:/overlay       40.4M      7.8M     30.5M  20% /
tmpfs                   512.0K         0    512.0K   0% /dev

至于接下来要用 wireguard 做什么,以后再写了。

Comments (8) on "把红米 AX5 路由器刷成了 OpenWrt 系统"

    1. Safari 18.2 Mac OS X  10.15.7

      是的,但是想要用路由器翻牆的話,需要路由器的硬件比較好,因為要翻牆的內容太多了

  1. Firefox 129.0 Windows 10 x64 Edition

    用wireguard估计是组网了,虽然我感觉zerotier更适合
    另外日本宽带普遍有公网ipv4吗

      1. Firefox 134.0 Windows 10 x64 Edition

        盲猜动态公网v4,记得wg配ddns有点坑
        不过v6总该是静态的吧,至少我墙国移动几个月没变过了

        1. Safari 18.2 Mac OS X  10.15.7

          v4静态的。问题出在别处,我下一篇文章再写。

          v6主要是很多公共 wifi 和公司 wifi 没有,不方便。

    1. Safari 18.2 Mac OS X  10.15.7

      哈,这不是软路由。软路由是说本来是一台电脑台式机,安装了一些特殊的软件把它变成了具有路由功能的电脑。我这个本来就是路由器,只不过家里有好几个,废物利用了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注