红米AX6刷入OpenWrt固件
最近lean的lede仓库添加了对AX6的支持
终于能用上OpenWrt了(虽然目前还没有breed/uboot有uboot)
事前准备
一台电脑(能ssh执行命令的设备)
一个OpenWrt系统的路由器(我使用的是小米路由器3G,以下简称R3G)
配置OpenWrt服务器
电脑连接R3G(无线或有线均可)
ssh连接R3G后执行如下命令创建文件
vi /usr/lib/lua/luci/controller/admin/xqsystem.lua |
输入以下内容并保存
module("luci.controller.admin.xqsystem", package.seeall) |
之后将R3G lan接口的IPv4地址修改为169.254.31.1
并取消勾选动态DHCP
应用更改后手动设置电脑的静态ip地址
重新连接后执行以下命令(也可以用浏览器访问curl后的网址)
curl http://169.254.31.1/cgi-bin/luci/api/xqsystem/token |
返回类似以下结果即服务器正常运行
启用SSH
电脑使用网线连接AX6
登录管理界面如下图获取stok备用
再依次执行以下命令(可使用浏览器访问curl后的网址代替命令)
curl http://192.168.31.1/cgi-bin/luci/;stok=STOK/api/misystem/extendwifi_connect?ssid=SSID&password=PWD |
第一条命令中
STOK为AX6的stok值
SSID为R3G的WIFI名称
PWD为R3G的WIFI密码(未设置密码可缺省)
第二条命令仅需替换STOK
返回code为0即执行成功
两条命令均执行成功后可以admin为密码ssh连接AX6
刷入QSDK
备份(ssh连接AX6后执行,非必需)
dd if=/dev/mtd9 of=/tmp/mtd9 |
保存至电脑
scp -r root@192.168.31.1:/tmp/mtd9 ./ |
设置env
nvram set flag_last_success=0 |
上传qsdk固件
scp xiaomimtd12.bin root@192.168.31.1:/tmp |
写入并重启
mtd write /tmp/xiaomimtd12.bin rootfs |
重启后qsdk后台地址为192.168.1.1
无密码
上传a6minbib.bin
scp a6minbib.bin root@192.168.1.1:/tmp |
重新分区并重启
. /lib/upgrade/platform.sh |
上传OpenWrt
scp openwrt-ipq807x-generic-redmi_ax6-squashfs-nand-factory.ubi root@192.168.1.1:/tmp |
刷入OpenWrt并重启
ubiformat /dev/mtd13 -y -f /tmp/openwrt-ipq807x-generic-redmi_ax6-squashfs-nand-factory.ubi |
重新启动后就是OpenWrt了(后台192.168.1.1 密码password)
注意
刷入qsdk前 后台/ssh ip为192.168.31.1
启用ssh后密码为admin
刷入qsdk后 后台/ssh ip为192.168.1.1 无密码
scp上传/下载文件直接在本地执行
操作路由器的命令在ssh连接路由器后执行
目前没有breed/uboot不建议更新OpenWrt以免变砖
02-23更新
现已有uboot可供ax6使用
刷如方法如下
ssh连接ax6之后执行以下命令切换至QSDK
fw_setenv flag_last_success 0 |
QSDK没有无线需使用网线连接
上传uboot文件至ax6 /tmp目录
再依次执行以下命令刷入
mtd erase /dev/mtd1 |
路由器断电状态按住reset再通电即可启动uboot
电脑使用网线连接ax6 lan口
设定ip地址为192.168.1.2
子网掩码225.225.225.0
(目前的uboot不能广播dhcp)
浏览器访问192.168.1.1
即为uboot界面
因为刷入ax6-mibib.bin
调整了分区大小
因此需要再刷一次OpenWrt固件
选择以factory.ubi
结尾的固件再点击Update Firmware(Edge上传固件遇到了意外中断的情况,换用Chrome则没问题)
等待文件上传完毕就会自动刷入OpenWrt并启动
新的分区大小
10-13更新
因为lede仓库的这个提交ipq807x: drop all xiaomi devices support移除了AX6的支持,之前的固件用了半年没更新。最近编译了基于openwrt官方的固件,迫于LuCi太慢并且一些默认设定折腾人(虽然解决了),还是考虑尝试lean的固件。
在lede仓库内执行
git revert edbd8d2e9
会提示有文件冲突,再依次执行
mkdir -p target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ |
然后AX6就能正常编译了,如果有使用Github Actions编译的需求可以fork lean的仓库,执行上述操作后提交改动即可。