小米 AX3000T 路由器刷入使用官方原版 OpenWrt / ImmortalWrt 固件

status
Published
type
Post
slug
xiaomi-ax3000t-router-install-openwrt-immortalwrt
date
Aug 18, 2024
tags
Share
Config
OpenWrt
summary
文章介绍了如何将小米 AX3000T 路由器刷入官方原版 OpenWrt 或 ImmortalWrt 固件,包括降级系统、获取 stok 值、开启 SSH、备份原始分区、刷入 initramfs system 以及最终升级固件的全过程。

更新:

💡
自8月左右新版本的 AX3000T 设备(固件版本为 1.0.84 或更高版本),已换用新的硬件(AN8855 交换机),暂时与 OpenWrt 镜像不兼容,需等待适配。 https://forum.openwrt.org/t/openwrt-support-for-xiaomi-ax3000t/180490/1176 若在此类设备上通过小米路由器修复工具降级系统版本,后续路由器的有线网口将表现为交换机工作模式,不能通过一般 Wan 口接入宽带网络。 除非只使用原厂固件,否则建议及时退换货。

前言

小米路由器从刚开始推出时的争议吐槽不断到现在一路走过来隐隐成了性价比之选。在此前曾使用过小米路由器mini、红米AC2100、红米AX6(S)等热门型号机器,整体体验还是很不错的,尤其是在刷了 OpenWrt 之后(hhh 😂) 。
小米 AX3000T 路由作为一款入门级的 Wi-Fi 6 路由,使用了发哥(联发科)的方案,正是继红米 AX6S 之后的又一款热门路由。但硬件虽好,软件并不能满足我的需求,下面是将其整成 OpenWrt 固件的记录。
展开 小米 AX3000T 基础配置信息
CPU : 联发科 FiLogic 820系列的MT7981(12nm 双核A53架构,12nm工艺制程,1.3GHz主频)
ROM : 128MB
RAM : 256MB
网络 : 4个自适应千兆口,天线数量4根(其中一根为 5GHz 和 2.4GHz 共用)支持 Wi-Fi 6 160MHz频宽
 

过程记录

整个刷入过程主要分为以下几步:
  1. 降级系统至旧版本(版本号 1.0.47,该版本存在漏洞可开启 SSH)
  1. 获取 stok 值,执行命令请求开启 SSH 访问权限
  1. 登录 SSH ,备份原始分区
  1. 刷入 OpenWrt initramfs system
  1. 进入 OpenWrt initramfs system 升级 OpenWrt 正式固件
 

安装降级固件

⬇️ 下载降级固件
此处需要用到小米路由器修复工具,仅支持 Windows。下载地址:
notion image
下载并运行此修复工具,选择上面👆下载的降级固件(版本 1.0.47),然后选中要使用的网卡,此处建议将其他网卡都先关闭以避免干扰,只保留物理网口对应的以太网网卡即可。
notion image
按修复工具的提示逐步操作,到如下界面时:断开路由器电源,用网线将路由器网口和电脑网口连接。然后用牙签或卡针顶住路由器上的 reset 按键,保持不松开。此时再插上电源,约莫8秒左右直到路由器指示灯开始快速闪烁,即可松开 reset 键。修复工具会接收到路由器的请求开始恢复固件。
notion image
稍等一会儿恢复完成后,即可重新给路由器上电,进入系统后查看已经降级成功,如下图所示。
notion image

获取 stok 值

登录路由器 Web 管理后台(默认为 http://192.168.31.1 ),获取 stok 值——下图中红框所标识的字符串。
👉
每次路由器重启, stok 值都会改变
notion image
 
查询路由器初始密码(后续命令会设置 root 密码,此处无需进行了)
https://miwifi.dev/ssh ,输入序列号即可获取对应密码,序列号在 Web 管理页面下方可查看,
notion image
 

启用 SSH 权限

打开命令行工具(Terminal)依次执行如下 curl 请求,其中需要将上文中获取到的 stok 值替换。(若是路由器 IP 和我一样有变化的,也需要将其中的 192.168.31.1 进行替换)
  • 开启 SSH 配置
  • 提交配置
  • 设置 dropbear SSH 为 debug
  • 启动 dropbear SSH
  • 设置 root 密码为空
以上命令执行成功,则会响应 {“code”: 0} ,如为其他则请检查 stok 或 IP 地址是否正确替换了
notion image
👇 整合的 shell 脚本
 

SSH 登录

在上一步,我们已经成功开启了 SSH,下面使用 SSH 登录路由器,开始操作。
👀
我在第一次连接时报错:
notion image
这是加密算法不匹配导致,需要配置启用 ssh-rsa 。修改 ~/.ssh/config ,添加内容如下:
然后使用命令 ssh ax3000t 连接即可。 或者不配置上述文件使用命令 ssh -oHostKeyAlgorithms=+ssh-rsa root@192.168.31.1
此时终于看到熟悉的 “Are you OK” 了
notion image
 

备份

备份原厂分区信息
导出之后将其传输至其他的存储设备上。在电脑端执行
scp -O -r ax3000t:/tmp/bak/ .
💡
其中 -O 参数为设置 scp 传输模式为传统方式,不然会报错。报错原因是 openssh 9.0 及之后版本,scp 命令默认传输使用的是 SFTP 协议,而路由器是不支持的。
notion image

OpenWrt / ImmortalWrt 固件下载

ImmortalWrt 是一个针对国人用户开发的基于 OpenWrt 的分支固件。
根据实际需要选择相应的固件即可,后续描述以 ImmortalWrt 为例,如需刷入 OpenWrt ,替换掉相应的文件即可。
OpenWrt:
 
ImmortalWrt:
 

刷入 initramfs system

将文件要刷入的文件上传到路由器 /tmp 目录
查看硬件信息:cat /proc/cmdline,视情况执行下面的命令
notion image
firmware = 0 时(此处为我的情况):
firmware = 1 时:
 
执行完后路由器会重启,进入到 initramfs system 。

升级固件

重启后 IP 发生变化,我这里路由器 IP 变为 192.168.1.1 ,使用此地址重新 SSH 登录。执行系统命令:
上传文件
执行命令
刷入后路由器会自动重启进入正式系统。
默认网关地址 http://192.168.1.1 , 账号 root ,密码为空,进入后按照引导开始设置即可。(后续 SSH 登录也会用到这个密码)。
notion image

参考

 

2024 © HK