红米Redmi AX6000 刷 OpenWrt
最近新买了个红米路由器,由于现在 OpenWrt 系统这么火,想着给新路由器也刷一个,发挥它的最大用处,本文记录的是 UBoot 大分区版的 OpenWrt 刷机过程。
准备工作:
- 一根网线,连接电脑与路由器
- 卡针,用于初始化路由器 Reset 键
- Uboot 与 OpenWrt 系统固件,百度网盘链接:https://pan.baidu.com/s/1v7Fgmhko0kR6ZysMbcguuw?pwd=jqem
提取码:jqem
本文参考:
视频:https://youtu.be/zUvNv61Ylno
文档:https://www.miaoer.xyz/posts/network/flash-redmi-ax6000
一、开启 Telnet
获取自己家路由器管理端地址栏中的 stok 值,如 stok=3df48a1976770ebb80cfcbe254ac3379,将下述网址替换成自己的后,输入浏览器执行。该值重启路由器后会更改,注意变化。
1.1 开启开发模式
http://192.168.31.1/cgi-bin/luci/;stok=3df48a1976770ebb80cfcbe254ac3379/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
浏览器返回 {"code":0}
1.2 重启路由器
http://192.168.31.1/cgi-bin/luci/;stok=3df48a1976770ebb80cfcbe254ac3379/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20
浏览器返回 {"code":0}
1.3 永久开启 telnet
等待路由器重启完成,重新访问路由器管理端,再次获取新生成的 stok 值。
http://192.168.31.1/cgi-bin/luci/;stok=a3418457d10632ebc8916c4a6f88dd53/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
浏览器返回 {"code":0}
1.4 重启路由器
http://192.168.31.1/cgi-bin/luci/;stok=a3418457d10632ebc8916c4a6f88dd53/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20
浏览器返回 {"code":0}
二、开启 SSH
上一步骤开启了 Telnet 功能,接下来使用 telnet 连接路由器系统,手动开启 SSH 服务。注意协议、主机与端口号,默认是跟我一样。
登录后界面
2.1 修改 root 默认密码
将 root 密码修改为 admin
echo -e 'admin\nadmin' | passwd root
2.2 固化 SSH
nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
2.3 永久开启 SSH
直接运行网上大神编写好的一键脚本
cd /tmp && curl --silent -O https://fastly.jsdelivr.net/gh/miaoermua/unlock-redmi-ax6000@main/setup.sh && chmod +x setup.sh && ./setup.sh
- 防止连接失效,setup.sh 脚本内容如下
###
# @Author: ttimochan
# @Date: 2022-12-21 21:16:34
# @LastEditors: ttimochan
# @LastEditTime: 2023-01-22 18:47:49
# @FilePath: /unlock-redmi-ax6000/setup.sh
###
#!/bin/bash
if [ $(id -u) != "0" ]; then
echo "Error: You must be root to run this script, please use root user"
exit 1
fi
nvram_set(){
echo -e 'admin\nadmin' | passwd root
nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
}
set_init(){
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
}
uci_readly(){
mkdir /data/auto_ssh
cd /data/auto_ssh
curl -O https://fastly.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
if [ ! -f auto_ssh.sh ]; then
echo "Error: auto_ssh.sh download failed"
exit 1
fi
chmod +x auto_ssh.sh
}
uci_start(){
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
uci set system.@system[0].timezone='CST-8'
uci set system.@system[0].webtimezone='CST-8'
uci set system.@system[0].timezoneindex='2.84'
uci commit
}
main(){
nvram_set
if [ $(nvram get ssh_en) != "1" ]; then
echo "Error: nvram_set failed"
exit 1
fi
set_init
if [ $(ps | grep dropbear | grep -v grep | wc -l) == "0" ]; then
echo "Error: set_init failed"
exit 1
fi
uci_readly
if [ ! -f /data/auto_ssh/auto_ssh.sh ]; then
echo "Error: uci_readly failed"
exit 1
fi
uci_start
if [ $(uci show firewall | grep auto_ssh | wc -l) == "0" ]; then
echo "Error: uci_start failed"
exit 1
fi
mtd erase crash
echo "all works done!"
sleep 1
echo "reboot 1 second later"
reboot
}
main
- auto_ssh.sh 脚本内容如下
#!/bin/sh
host_key=/etc/dropbear/dropbear_rsa_host_key
host_key_bk=/data/auto_ssh/dropbear_rsa_host_key
# 如果存在备份的SSH密钥,将备份的密钥链接到dropbear使用的密钥
if [ -f $host_key_bk ]; then
ln -sf $host_key_bk $host_key
fi
# 当前固件为稳定版时,需要执行下面命令开启SSH
channel=`/sbin/uci get /usr/share/xiaoqiang/xiaoqiang_version.version.CHANNEL`
if [ "$channel" = "release" ]; then
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
fi
# 备份SSH密钥
if [ ! -s $host_key_bk ]; then
i=0
while [ $i -le 30 ]
do
if [ -s $host_key ]; then
cp -f $host_key $host_key_bk 2>/dev/null
break
fi
let i++
sleep 1s
done
fi
2.4 使用 SSH 连接
重启后就可以使用 ssh 连接路由器了。
登录后界面
三、刷入 UBoot 固件
3.1 备份路由器分区
执行命令将分区备份到 /tmp 目录
dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin
dd if=/dev/mtd2 of=/tmp/mtd2_Nvram.bin
dd if=/dev/mtd3 of=/tmp/mtd3_Bdata.bin
dd if=/dev/mtd4 of=/tmp/mtd4_Factory.bin
dd if=/dev/mtd5 of=/tmp/mtd5_FIP.bin
在 windows 上使用 scp 命令将这些文件下载至本地保存备份。
scp root@192.168.31.1:/tmp/mtd*.bin ./
3.2 刷入 UBoot 系统
上传 uboot 文件mt7986_redmi_ax6000-fip-fixed-parts.bin
上传至 /tmp 目录中
scp .\mt7986_redmi_ax6000-fip-fixed-parts.bin root@192.168.31.1:/tmp
使用 md5 校验是否同一个文件
root@XiaoQiang:/tmp# md5sum mt7986_redmi_ax6000-fip-fixed-parts.bin
7610a1722073748c3c3a860b75d94d5d mt7986_redmi_ax6000-fip-fixed-parts.bin
依次输入以下命令,擦除分区并写入 uboot 文件
mtd erase FIP
mtd write /tmp/mt7986_redmi_ax6000-fip-fixed-parts.bin FIP
mtd verify /tmp/mt7986_redmi_ax6000-fip-fixed-parts.bin FIP
命令执行结果如下,提示 Success 表示写入成功。
root@XiaoQiang:/tmp# mtd erase FIP
Unlocking FIP ...
Erasing FIP ...
root@XiaoQiang:/tmp# mtd write /tmp/mt7986_redmi_ax6000-fip-fixed-parts.bin FIP
Unlocking FIP ...
Writing from /tmp/mt7986_redmi_ax6000-fip-fixed-parts.bin to FIP ...
root@XiaoQiang:/tmp# mtd verify /tmp/mt7986_redmi_ax6000-fip-fixed-parts.bin FIP
Verifying FIP against /tmp/mt7986_redmi_ax6000-fip-fixed-parts.bin ...
72a110768c7473200b863a3c5d4dd975 - FIP
72a110768c7473200b863a3c5d4dd975 - /tmp/mt7986_redmi_ax6000-fip-fixed-parts.bin
Success
3.3 手动初始化路由器
手动设置电脑 IP 地址为:
IP 地址:192.168.31.2
子网掩码:255.255.255.0
网关地址:192.168.31.1
DNS:8.8.8.8
随后用网线连接电脑至路由器的 2、3、4 任意一个 LAN 口,并使用卡针插入路由器初始化 Reset 孔时同时接入电源。按住持续大概十几秒钟,松开卡针,路由器初始化成功。(路由器并不会灯光提示,心里默数15秒即可)
随后访问:http://192.168.31.1/,显示 UBoot 系统。
四、刷入 OpenWrt 系统
进入 UBoot 系统页面后,上传 OpenWrt 系统固件 ax6000-full.bin
,选择固件文件,点击 Upload。
点击 Update
等待更新
更新成功,等待重启(这里等待个三四分钟即可。因为页面会一直卡在这里,是由于 OpenWrt 系统的默认 IP 是 192.168.6.1,重启成功后也并不会通知你,因为你现在还在 31 网段。。。)
这时将自己电脑 IP 设置成 DHCP 自动获取,或者改为 192.168.6.x 网段。访问:http://192.168.6.1/ 页面。用户名密码分别是:root/password
进入系统,查看详情
五、开启 WIFI 功能
5.1 禁用 2.4 G 频段
进入网络 → 无线 可以看到默认配置了两个无线频段,用不到的话可以将 2.4 G 频段的 AP 禁用,点击后面的禁用。
5.2 修改 WIFI 名称与密码
配置 5G 频段的 WIFI,点击配置,进入无线配置页面。
SSID:自定义 WIFI 的名称
认证模式:WPA2PSKWPA3PSK
加密方式:AES
密码:自定义 WIFI 密码
启用节能模式(APSD):Disable
其他默认即可,保存&应用。