电脑先连上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