小米AX3000T刷入OpenWrt
点击展开更新日志
2024
11-19
完成了这篇文章!
11-27
更新了一个标题中的错别字,是哪个呢?
nexttime
会有些什么呢(❁´◡`❁)
参考资料:
- 小米 AX3000T 路由器刷入使用官方原版 OpenWrt / ImmortalWrt 固件-HK’s note
- 小米 AX3000T 路由器使用 hanwckf 版本的 ImmortalWrt 和 U-Boot-HK’s note
结合了 HK 佬 这两篇笔记,刷如 hanwckf 佬的 U-Boot 和 ImmortalWrt。
¶源起
小米 AX3000T 去年就买了,买之前就想过刷 OP,只是毕竟只有一个设备,出问题了不好处理,所以一直到今天才真正刷上 OP(。・ω・。)。
¶过程记录
整个过程如下:
- 降级系统至旧版本(版本号 1.0.47,该版本存在漏洞可开启 SSH)
- 获取 stok 值,执行命令请求开启 SSH 访问权限
- 登录 SSH ,备份原始分区
- 刷入 U-Boot
- 刷入 ImmortalWrt
¶安装降级固件
-
下载降级固件:(暂无链接,请到上面 HK 佬的笔记里下载>﹏<)
-
下载 小米路由器修复工具
-
允许【修复工具】-选择降级固件(版本 1.0.47)-按修复工具的提示逐步操作:断开路由器电源,用网线将路由器网口和电脑网口连接。然后用牙签或卡针顶住路由器上的 reset 按键,保持不松开。此时再插上电源,约莫 8 秒左右直到路由器指示灯开始快速闪烁,即可松开 reset 键。修复工具会接收到路由器的请求开始恢复固件。
特别提醒:
执行断电之前,先关闭 Windows defineder 防火墙:【控制面板】-【系统和安全】-【Windows Definder 防火墙】,转笔专用网络和公用网络防火墙。不然会收不到刷机请求!
稍等一会儿恢复完成后,即可重新给路由器上电,进入系统后查看已经降级成功。
¶启动 SSH
智能临时获取,重启失效,知悉。
登录路由器 Web 管理后台(默认为 http://192.168.31.1 ),获取 stok 值:浏览器地址栏 stok
后面那一串字符串。Ctrl + H 替换下面五条命令中 <STOK>
的值,然后在命令行工具执行。
1 | # 开启 SSH 配置 |
以上命令执行成功,则会响应 {“code”: 0} ,如为其他则请检查 stok 或 IP 地址是否正确替换了。
HK 佬整合的 shell 脚本:
1 |
|
这样的佬谁不爱啊(❁´◡`❁)
¶SSH 登录及备份
1 | ssh [email protected] |
一般第一次连接会报错:Unable to negotiate with 192.168.31.1 port 22: no matching hsot key type found. Their offer: ssh-rsa
。这是加密算法不匹配导致,需要配置启用 ssh-rsa 。修改 ~/.ssh/config ,添加内容如下:
1 | Host ax3000t |
然后使用命令 ssh ax3000t 连接即可。
或者不配置上述文件使用命令 ssh -oHostKeyAlgorithms=+ssh-rsa [email protected]
备份原厂分区信息
1 | mkdir /tmp/bak |
退出 SSH 执行 备份到本地:
1 | scp -O -r ax3000t:/tmp/bak/ . |
其中 -O 参数为设置 scp 传输模式为传统方式,不然会报错。报错原因是 openssh 9.0 及之后版本,scp 命令默认传输使用的是 SFTP 协议,而路由器是不支持的。
¶U-Boot 和固件下载
因为原项目的 ImmortalWrt 并没有提供 Release,而 U-Boot 的 20240123 release 中缺少了小米 AX3000T multi-layout 的版本,HK 佬自编译发布的固件和 U-Boot:
https://github.com/hkint/xiaomi-ax3000t-immortalwrt-hanwckf-firmware-build/releases
- U-Boot:如果不是 2024 年 08 月之后出厂的新版本,就下载不带 an8855 的版本,不然会失败进不去(っ °Д °;)っ 问就是经验。
mt7981_ax3000t_an8855-fip-fixed-parts-multi-layout.bin - ImmortalWrt:同上,新版本就下载带 an8855 版本的。下载不带 stock sysupgrade 版本的
immortalwrt-mediatek-mt7981-xiaomi_mi-router-ax3000t-squashfs-sysupgrade.bin
懒,既然大佬编译好了我就不客气了
只是 Wifi 温度看不到,不知道是不是哪里操作不对,算了,能用就行。
¶刷入 U-Boot 和固件
上传 U-Boot
1 | scp -O mt7981_ax3000t-fip-fixed-parts-multi-layout.bin ax3000t:/tmp |
SSH 登录路由器,刷入:
1 | mtd write /tmp/mt7981_ax3000t-fip-fixed-parts-multi-layout.bin FIP |
然后断开电源,用牙签或卡针捅住 reset 键,然后接通电源,指示灯变化后(变蓝)松开 reset 键。用网线将电脑和路由器连接起来,电脑网卡配置静态 IP:192.168.1.100 ,网关: 192.168.1.1
然后即可在浏览器中访问 http://192.168.1.1 进入 U-Boot 的网页刷机界面,此处抛弃小米原有的 stock layout,直接选用 immortalwrt-112m layout,然后上传 sysupgrade 固件确认升级即可。可能会在升级界面一直转,只要提示升级成功重启中就可以等几分钟手动断电重启。
路由器刷入固件自动重启后,网关 IP 默认为:192.168.31.1 ,账号 root,密码为空