电脑先连上AX6000(网线、WiFi均可),并登录192.168.31.1

登陆成功后在网址栏可以看见token,即加粗部分
示例:192.168.31.1/cgi-bin/luci/;stok=60522452fadf088a65c6bf93645282a1/web/home#router

将下方的{token}替换为自己的token即可。

一、开启TELNET:

1.开启开发/调试模式(此模式下允许修改Bdata)

http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3B%20zz%3D%24%28dd%20if%3D%2Fdev%2Fzero%20bs%3D1%20count%3D2%202%3E%2Fdev%2Fnull%29%20%3B%20printf%20%27%A5%5A%25c%25c%27%20%24zz%20%24zz%20%7C%20mtd%20write%20-%20crash%20%3B%20

2.重启

http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

3.设置Bdata永久开启telnet

http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3B%20bdata%20set%20telnet_en%3D1%20%3B%20bdata%20set%20ssh_en%3D1%20%3B%20bdata%20set%20uart_en%3D1%20%3B%20bdata%20commit%20%3B%20

4.重启

http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20

二、开启SSH:

连上telnet后运行下列命令:

1.修改root密码为admin(不修改也可以通过SN计算默认密码,此处不再赘述)

echo -e 'admin\nadmin' | passwd root

2.固化SSH

nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit

3.临时开启SSH(重启会自动关闭,若想永久开启可以跳过,直接进行4):

sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart

4.永久开启SSH(重启不会关闭):

mkdir /data/auto_ssh && cd /data/auto_ssh
curl -O https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
chmod +x auto_ssh.sh

uci set firewall.auto_ssh=include
uci set firewall.auto_ssh.type='script'
uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
uci set firewall.auto_ssh.enabled='1'
uci commit firewall

5.关闭开发/调试模式

mtd erase crash

6.重启

reboot

三、刷openwrt固件

openwrt如果需要改成兼容x-wrt的新分区格式,请参考这个代码改动 https://github.com/x-wrt/x-wrt/c ... b0e8736d91e97a91b5c
否则不能升级到openwrt,目前openwrt没有这个分区格式的改动。

telnet/ssh 登录设备,查看当前系统是ubi 还是 ubi1

命令 cat /proc/cmdline

输出例子:

console=ttyS0,115200n1 loglevel=8 firmware=1 uart_en=1


注意 firmware=1 表示当前系统是ubi1
firmware=0 表示当前系统是ubi

设置nvram并且刷 intramfs-factory.ubi

如果当前系统是 ubi,设置nvram变量从ubi1启动

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

然后刷 intramfs-factory.ubi 到 ubi1,这里 ubi1 路径 /dev/mtd9 是查看 cat /proc/mtd 得到的

ubiformat /dev/mtd9 -y -f /tmp/openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-initramfs-factory.ubi

如果当前系统是 ubi1,设置nvram变量从ubi启动

nvram set boot_wait=on
nvram set uart_en=1
nvram set flag_boot_rootfs=0
nvram set flag_last_success=0
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
nvram commit

然后刷 intramfs-factory.ubi 到 ubi,这里 ubi 路径 /dev/mtd8 是查看 cat /proc/mtd 得到的

ubiformat /dev/mtd8 -y -f /tmp/openwrt-mediatek-filogic-xiaomi_redmi-router-ax6000-initramfs-factory.ubi

刷sysupgrade文件完成刷机

上述完成刷 initramfs-factory.ubi 之后,reboot 重启,进入x-wrt/openwrt 的initramfs临时系统
ssh 可以登了继续后面的操作

但是刷sysupgrade.bin文件之前,要先设置一下uboot env变量,修改启动

fw_setenv boot_wait on
fw_setenv uart_en 1
fw_setenv flag_boot_rootfs 0
fw_setenv flag_last_success 1
fw_setenv flag_boot_success 1
fw_setenv flag_try_sys1_failed 8
fw_setenv flag_try_sys2_failed 8

注意了,不需要修改mtdparts,可以查看mtdparts,他保持小米原厂的值不变
查看mtdparts,用命令查看 fw_printenv mtdparts 查看结果如下:

mtdparts=nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),30720k(ubi),30720k(ubi1),51200k(overlay)

最后一步就是刷 sysupgrade.bin,可以界面升级刷

也可以命令

sysupgrade -n /tmp/sysupgrade.bin

四、最后

支持用小米救砖工具刷回原厂固件

固件下载:

https://op.w2nn.ml/%F0%9F%9A%A9OpenWrt_22.03%E6%BA%90%E7%A0%81/%E7%BA%A2%E7%B1%B3ax6000