刷机存在变砖风险。操作前务必完成全量备份,并将备份复制到其他设备保存。
写入 BL2、FIP 和执行 sysupgrade 时,严禁断电。
1. 适用机型
| 项目 | 内容 |
|---|---|
| 机型 | 小米 AX3000T 国行版 |
| 型号 | RD03 |
| 原厂版本 | 1.0.84 |
| 目标固件 | ImmortalWrt 25.12.1 |
| 目标布局 | OpenWrt U-Boot layout / ubootmod |
固件下载页面:
本文仅适用于联发科版 RD03。RD03V2 高通版流程不同,不可照此操作。
全程只使用 ubootmod 固件,不要与 stock layout 混刷。
2. 准备工作
硬件
- 小米 AX3000T
- Windows 电脑
- 网线一根
- 路由器 LAN 口
电脑需要连接路由器的 LAN 口,不要接 WAN。
软件
- xmir-patcher
- PowerShell 或 Windows Terminal
- 浏览器
固件文件
从 Firmware Selector 下载以下 5 个文件:
| 文件 | 用途 |
|---|---|
initramfs-factory.ubi | 从原厂进入临时 ImmortalWrt |
preloader.bin | 写入 BL2 |
bl31-uboot.fip | 写入 FIP / U-Boot |
initramfs-recovery.itb | Recovery 镜像 |
squashfs-sysupgrade.itb | 正式系统 |
示例:
immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-factory.ubi
immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-preloader.bin
immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-bl31-uboot.fip
immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb
immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-squashfs-sysupgrade.itb
镜像目录:
https://downloads.immortalwrt.org/releases/25.12.1/targets/mediatek/filogic/
3. 开启 SSH 并备份
确认浏览器可以访问:
http://192.168.31.1
解压 xmir-patcher,运行:
run.bat
依次执行:
| 操作 | 菜单 |
|---|---|
| 设置路由器 IP | 1 |
| 连接路由器并开启 SSH | 2 |
| 创建完整备份 | 4 |
| 修改 root 密码 | 8 → 2 |
| 返回主菜单 | 0 |
| 固化 SSH | 6 |
备份目录通常位于:
backups/
至少应包含:
mtd1_BL2.bin
mtd4_Factory.bin
mtd5_FIP.bin
mtd8_ubi.bin
建议将整个 backups 文件夹备份
主菜单 6 是固化 SSH;扩展菜单中的 6 是修改启动地址,不要误选。
误入后可按 Ctrl+C 退出,再输入 0 返回主菜单。
验证 SSH
主机:192.168.31.1
用户:root
密码:刚设置的 root 密码
登录后看到:
Welcome to XiaoQiang!
说明 SSH 已正常开启。
4. 上传固件
小米原厂 Dropbear 对 SFTP 兼容较差,推荐使用 PowerShell 的 scp。
进入固件目录后执行:
scp -O `
-o HostKeyAlgorithms=+ssh-rsa `
-o PubkeyAcceptedAlgorithms=+ssh-rsa `
.\immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-* `
root@192.168.31.1:/tmp/
首次连接输入:
yes
然后输入 root 密码。
登录路由器检查:
ls -lh /tmp/immortalwrt*
cat /proc/mtd
应看到 5 个固件文件,并存在类似分区:
mtd8: "ubi"
mtd9: "ubi1"
5. 刷入临时 ImmortalWrt
先确认当前启动分区:
cat /proc/cmdline
nvram get flag_boot_rootfs
nvram get flag_last_success
当前运行在 mtd8
如果看到:
firmware=0
mtd=ubi
flag_boot_rootfs=0
说明当前系统运行在 mtd8,需要将 factory 写入空闲的 mtd9:
ubiformat /dev/mtd9 -y -f /tmp/immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-factory.ubi
然后切换启动分区:
nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=1
nvram set flag_last_success=1
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit
reboot
当前运行在 mtd9
如果显示 firmware=1,则写入 mtd8:
ubiformat /dev/mtd8 -y -f /tmp/immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-factory.ubi
并将以下两项设置为 0:
nvram set flag_boot_rootfs=0
nvram set flag_last_success=0
其他启动参数保持一致,提交后重启。
当前正在运行的 UBI 分区不能直接格式化。
若出现 Permission denied,通常说明选中了当前系统所在分区,应改刷另一块。
6. 进入临时系统
重启后等待约 1~2 分钟,访问:
http://192.168.1.1
SSH:
ssh root@192.168.1.1
临时系统通常没有 root 密码。
如果无法访问,可暂时为电脑设置静态地址:
IP:192.168.1.10
掩码:255.255.255.0
网关:192.168.1.1
此时只是进入了临时 ImmortalWrt,尚未完成 U-Boot layout 转换。
7. 写入 U-Boot Layout
重启后 /tmp 会被清空,需要重新上传固件:
scp -O `
-o HostKeyAlgorithms=+ssh-rsa `
-o PubkeyAcceptedAlgorithms=+ssh-rsa `
.\immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-* `
root@192.168.1.1:/tmp/
登录:
ssh `
-o HostKeyAlgorithms=+ssh-rsa `
-o PubkeyAcceptedAlgorithms=+ssh-rsa `
root@192.168.1.1
7.1 安装 mtd-rw
apk --update-cache add kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
insmod 没有报错即可。
如果安装过程出现:
Killed
通常是临时系统内存不足,可重新执行一次,或先确认 WAN 已正常联网。
7.2 重建 UBI
ubidetach -p /dev/mtd8
ubiformat /dev/mtd8 -y
ubiattach -p /dev/mtd8
如果 ubidetach 提示:
No such device
通常可以忽略。
创建 U-Boot 环境卷:
ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
7.3 写入 Recovery
ImmortalWrt 25.12.1 的 recovery 镜像约为 13.1MB,因此创建 14MiB 卷:
ubimkvol /dev/ubi0 -n 2 -N recovery -s 14MiB
ubiupdatevol /dev/ubi0_2 /tmp/immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb
如果之前误建成 10MiB:
ubirmvol /dev/ubi0 -n 2
ubimkvol /dev/ubi0 -n 2 -N recovery -s 14MiB
ubiupdatevol /dev/ubi0_2 /tmp/immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb
7.4 写入 BL2 和 FIP
这是最关键的一步。确认文件名正确,并确保路由器不会断电。
mtd write /tmp/immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-preloader.bin BL2
mtd write /tmp/immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-bl31-uboot.fip FIP
看到类似输出并重新回到命令行,即表示写入完成:
Unlocking ...
Writing ...
7.5 刷入正式系统
sysupgrade -n /tmp/immortalwrt-25.12.1-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-squashfs-sysupgrade.itb
正常情况下会看到:
Signature check OK
随后 SSH 会自动断开:
Connection closed
这是正常现象。等待约 2~3 分钟,期间不要断电。
8. 验收
访问:
http://192.168.1.1
状态页应显示类似信息:
主机名:ImmortalWrt
型号:Xiaomi Mi Router AX3000T (OpenWrt U-Boot layout)
目标平台:mediatek/filogic
固件版本:ImmortalWrt 25.12.1
完成后建议:
- 设置 root 密码
- 将电脑网卡改回 DHCP
- 将上级网络接入 WAN 口
- 测试有线、无线及重启
- 妥善保存原厂备份
9. 常见问题
SFTP 刷新失败或 NullPointerException
这是原厂 Dropbear 的兼容问题,并不代表路由器变砖。
改用:
- PowerShell
scp - WinSCP 的 SCP 模式
SCP 提示不支持 ssh-rsa
错误:
no matching host key type found
增加参数:
-o HostKeyAlgorithms=+ssh-rsa
-o PubkeyAcceptedAlgorithms=+ssh-rsa
ubiformat 提示 Permission denied
说明正在格式化当前系统所在的 UBI 分区。
检查:
cat /proc/cmdline
然后将 factory 写入另一块空闲分区。
Recovery 提示空间不足
错误通常类似:
will not fit volume
删除原卷并重新创建 14MiB:
ubirmvol /dev/ubi0 -n 2
ubimkvol /dev/ubi0 -n 2 -N recovery -s 14MiB
apk 被 Killed
临时 initramfs 可用内存较少。
可尝试:
- 重新执行安装命令
- 确保 WAN 可以联网
- 关闭不必要的 SSH 会话后重试
sysupgrade 后 SSH 断开
属于正常重启流程。等待系统启动后重新访问:
http://192.168.1.1
有备份是否一定能救砖
不能完全保证。
完整备份可以解决大部分软件和分区问题,但如果 BL2 或 FIP 严重损坏,仍可能需要:
- UART
- 编程器
- 专用修复工具
因此备份必须做,但更重要的是刷写引导时不要断电、不要混用固件。
10. 流程概览
原厂系统
↓
xmir-patcher 开启并固化 SSH
↓
创建完整备份
↓
上传 ubootmod 五件套
↓
将 factory 写入空闲 UBI 分区
↓
切换启动分区
↓
进入临时 ImmortalWrt
↓
重新上传固件
↓
安装并加载 kmod-mtd-rw
↓
重建 UBI、ubootenv 和 recovery
↓
写入 BL2 与 FIP
↓
sysupgrade 正式固件
↓
ImmortalWrt OpenWrt U-Boot layout
参考资料
实机记录:
RD03 / 1.0.84→ImmortalWrt 25.12.1 U-Boot layout,包含 Recovery。