[openwrt]-RedmiAX6

本文提供了一份详细的Redmi AX6路由器刷机指南,包括如何安装OpenWrt固件、切换系统分区及恢复官方固件等步骤。通过SSH连接进行配置,并利用虚拟机辅助完成复杂的刷机流程。


此方法无需第二个路由器B

总览

在这里插入图片描述

Redmi AX6 刷机

https://pan.baidu.com/s/168UqNdURVfcmsewKY4swmg 提取码:02ba

硬件
	红米AX6
	笔记本(Win11)
软件
	virtualbox
	WinScp
	cmd / powershell / xshell
固件
	AX6 : 1.0.18

SSH

路由器固件

登录到小米控制台

192.168.31.1

点击手动升级

选择 miwifi_ra69_firmware_45a77_1.0.18.bin

选择 清除当前所有用户配置

在这里插入图片描述

等待重启

虚拟机OP

在这里插入图片描述

在这里插入图片描述

名称
目录
类型
版本

默认内存

在这里插入图片描述

选择文件中的 openwrt-x86-64-generic-squashfs-combined.vmdk

在这里插入图片描述

在这里插入图片描述

然后创建

在这里插入图片描述

创建完毕

网络设置

设置 -> 网络 -> …

在这里插入图片描述

设置完毕后启动虚拟机。

默认登录IP地址是 192.168.5.1

设置win下网络设置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后访问 192.168.5.1

root / password

在这里插入图片描述

在这里插入图片描述

然后修改设置

需要 winScp

在这里插入图片描述

root / password

然后点击更新就可以

然后把文件上传到 openwrt

在这里插入图片描述

然后通过 ssh 登录 openwrt

# ssh root@192.168.5.1

# yes
#输入yes确认

# password
#输入password密码登录

在这里插入图片描述

#输入下面命令 运行 op初始化
# sh /root/wireless.sh
#点两次回车

在这里插入图片描述

在这里插入图片描述

复制图中的链接,后面会用到

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/extendwifi_connect_inited_router?ssid=MEDIATEK-ARM-IS-GREAT&password=ARE-YOU-OK&admin_username=root&admin_password=admin&admin_nonce=xxx

初始化设置完成,下面装上无线网卡

在系统中搜索 移动热点

在这里插入图片描述

在这里插入图片描述

设置个人热点

然后需要关闭热点的 DHCP 功能

在这里插入图片描述

在这里插入图片描述

关闭个人热点的 IPv4 设置

至此, 移动热点完成设置

关闭虚拟机

在这里插入图片描述

然后, 设置 -> 网络 -> 桥接 -> M开头

在这里插入图片描述

启动 OP

在这里插入图片描述


解锁SSH

登录小米后台

192.168.31.1

在这里插入图片描述

stok= 后面的复制下来

http://192.168.31.1/cgi-bin/luci/;stok=22e0d7bf184929c73097fb9c6f1afee6/web/home#router
# 22e0d7bf184929c73097fb9c6f1afee6

然后把刚才我们复制下来的网址中的 stok 进行替换

# http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/extendwifi_connect_inited_router?ssid=MEDIATEK-ARM-IS-GREAT&password=ARE-YOU-OK&admin_username=root&admin_password=admin&admin_nonce=xxx

#<STOK> 替换为 22e0d7bf184929c73097fb9c6f1afee6
#将ssid 改为 移动热点账户 openwrt
#将password 改为 移动热点密码 12345678
#将admin_username 改为 op的账户 root
#admin_password 改为 op的密码 password


#修改完后 ↓
# http://192.168.31.1/cgi-bin/luci/;stok=22e0d7bf184929c73097fb9c6f1afee6/api/xqsystem/extendwifi_connect_inited_router?ssid=openwrt&password=12345678&admin_username=root&admin_password=password&admin_nonce=xxx

访问该链接 等待30s后 出现此界面

如果是其他界面,则打开启动热点再次尝试。

在这里插入图片描述

{"token":"; nvram set ssh_en=1; nvram set uart_en=1; nvram set boot_wait=on; nvram commit; uci set wireless.@wifi-iface[0].key=`mkxqimage -I`; uci commit; sed -i 's/channel=.*/channel=\u0022debug\u0022/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;","code":0}

说明成功,此时访问小米后台查看密码

在这里插入图片描述

此时的密码已经被修改

然后通过 ssh 用刚获取的 密码 来登录 AX6

# ssh root@192.168.31.1
# yes
# 9675bca8

在这里插入图片描述

成功解锁SSH , 可以用任意shell工具

username: root
password: 9675bca8

刷OpenWrt

切换分区

查看分区

nvram get flag_last_success

在这里插入图片描述

0 : 当前分区为 mtd12 (root_fs)
1 : 当前分区为 mtd13 (root_fs1)

此时当前为 mtd13 (root_fs1)

以下步骤针对 1 的结果进行

切换当前启动的系统分区为12分区
# nvram set flag_last_success=0
# nvram set flag_boot_rootfs=0
# nvram commit
# reboot

再次查看

在这里插入图片描述

在这里插入图片描述

现在已经切换为 mtd12 (root_fs) 分区

OpenWrt固件

WinScp 连接 AX6

在这里插入图片描述

root / 9675bca8

在这里插入图片描述

yes

然后把 openwrt-ipq807x-generic-redmi_ax6-squashfs-nand-factory.ubi 上传到 \tmp 目录下

这里的op固件是https://pan.baidu.com/s/1zBtzdk1ERG4SYeTHu-b2lw
提取码:2333

在这里插入图片描述

刷入固件

# ssh root@192.168.31.1
# ubiformat /dev/mtd13 -y -f /tmp/你上传的固件文件名

在这里插入图片描述

#切换启动分区为13分区
# nvram set flag_last_success=1
# nvram set flag_boot_rootfs=1
# nvram commit
# reboot

查看你网络的C段

在这里插入图片描述

然后访问 192.168.123.1

进入系统后进行备份升级

在这里插入图片描述

在这里插入图片描述

取消勾选 保留配置

上传 openwrt-ipq807x-generic-redmi_ax6-squashfs-nand-sysupgrade.bin

然后重写进入op系统

*************************************

OP切换到小米系统
fw_setenv  flag_last_success 0
fw_setenv flag_boot_rootfs 0
reboot

小米系统切换到OP
nvram set flag_last_success=1
nvram set flag_boot_rootfs=1
nvram commit
reboot
*************************************

AX6刷回官方固件

http://www1.miwifi.com/miwifi_download.html

下载 -> ROM -> AX6

miwifi_ra69_all_81ac71_1.1.10.bin

关闭防火墙

关闭自带的防火墙,关闭Windows defnender 防护,关闭杀毒软件,关闭各种安全防护。
在这里插入图片描述

在这里插入图片描述

开刷

在这里插入图片描述

小米路由器修复工具 添加 miwifi_ra69_all_81ac71_1.1.10.bin

在这里插入图片描述

选择与路由器 LAN 口连接的地址

在这里插入图片描述

在这里插入图片描述

非常重要

在这里插入图片描述

在这里插入图片描述

断电重启之后进入 192.168.31.1

就可以继续使用了


AX6 刷 breed 后期可能会更新

感谢师傅看到这里!!

咕咕咕

config.buildinfo openwrt-ipq5424-generic-debug-ipq5424_norplusmmc-u-boot-stripped.elf openwrt-ipq5424-generic-norplusnand-u-boot.img debug openwrt-ipq5424-generic-debug-ipq5424_norplusnand-u-boot.elf openwrt-ipq5424-generic-norplusnand-u-boot-stripped.elf dtbs openwrt-ipq5424-generic-debug-ipq5424_norplusnand-u-boot.img openwrt-ipq54xx-generic-qcom_maxx-fit-uImage.itb feeds.buildinfo openwrt-ipq5424-generic-debug-ipq5424_norplusnand-u-boot-stripped.elf openwrt-ipq54xx-generic-qcom_maxx-squashfs-sysupgrade.bin kernel-debug.tar.zst openwrt-ipq5424-generic-mmc-u-boot.elf openwrt-ipq54xx-generic-qsdk_open.manifest openwrt-imagebuilder-ipq54xx-generic.Linux-x86_64.tar.zst openwrt-ipq5424-generic-mmc-u-boot.img openwrt-ipq54xx-generic-squashfs-root.img openwrt-ipq5424-generic-debug-ipq5424_mmc-u-boot.elf openwrt-ipq5424-generic-mmc-u-boot-stripped.elf openwrt-ipq54xx-generic-vmlinux.elf openwrt-ipq5424-generic-debug-ipq5424_mmc-u-boot.img openwrt-ipq5424-generic-nand-u-boot.elf openwrt-ipq54xx-generic-vmlinux-initramfs.elf openwrt-ipq5424-generic-debug-ipq5424_mmc-u-boot-stripped.elf openwrt-ipq5424-generic-nand-u-boot.img openwrt-toolchain-ipq54xx-generic_gcc-13.3.0_musl.Linux-x86_64.tar.zst openwrt-ipq5424-generic-debug-ipq5424_nand-u-boot.elf openwrt-ipq5424-generic-nand-u-boot-stripped.elf packages openwrt-ipq5424-generic-debug-ipq5424_nand-u-boot.img openwrt-ipq5424-generic-norplusmmc-u-boot.elf profiles.json openwrt-ipq5424-generic-debug-ipq5424_nand-u-boot-stripped.elf openwrt-ipq5424-generic-norplusmmc-u-boot.img sha256sums openwrt-ipq5424-generic-debug-ipq5424_norplusmmc-u-boot.elf openwrt-ipq5424-generic-norplusmmc-u-boot-stripped.elf version.buildinfo openwrt-ipq5424-generic-debug-ipq5424_norplusmmc-u-boot.img openwrt-ipq5424-generic-norplusnand-u-boot.elf 告诉我如何仿真
09-24
<think> 我们面对的文件列表主要是OpenWrt为IPQ54xx平台编译的输出文件。用户的目标是进行仿真(emulation),即使用QEMU运行这些固件。 根据之前的对话,用户尝试过使用qemu-system-arm并指定内核(vmlinux.elf),但出现无反应的情况。 关键点: 1. 在文件列表中,我们看到了多个ELF文件(如vmlinux.elf)和镜像文件(如squashfs-root.img, sysupgrade.bin等)。 2. 对于仿真,我们通常需要: - 内核文件:例如 `openwrt-ipq54xx-generic-vmlinux.elf` - 根文件系统:例如 `openwrt-ipq54xx-generic-squashfs-root.img` 或 `openwrt-ipq54xx-generic-squashfs-sysupgrade.bin`(但注意sysupgrade.bin通常包含内核和根文件系统,需要拆分?) 3. 但是,OpenWrt的镜像结构可能比较复杂,有时内核和根文件系统是分开的,有时是合并的。 根据用户之前的命令尝试: qemu-system-arm -machine virt -kernel $vmlinux -append “root=/dev/ram” -initrd $root -nographic 这个命令试图使用一个内核(-kernel)和一个initrd(-initrd)来启动。但是,OpenWrt的根文件系统通常是squashfs格式,并不一定是一个RAM磁盘(initrd)。因此,可能需要调整。 另外,我们注意到有文件:`openwrt-ipq54xx-generic-qcom_maxx-fit-uImage.itb`,这是一个FIT(Flattened Image Tree)镜像,它可能包含了内核和设备树等,适合直接启动。 然而,用户使用的是`virt`机器类型,这是一个通用的ARM虚拟机,不一定需要特定的设备树。但OpenWrt可能期望特定的硬件,所以我们需要确保使用正确的机器类型。 建议步骤: 1. 确定使用哪个内核?通常,`vmlinux.elf`是未压缩的内核ELF文件,适合直接加载。 2. 根文件系统:可以使用`openwrt-ipq54xx-generic-squashfs-root.img`(如果存在)作为磁盘镜像挂载,或者使用`-initrd`加载(如果文件系统是ramdisk)。但注意,initrd方式要求内核支持将根文件系统加载到内存中运行。 另一种简单的方式是使用已经包含内核和根文件系统的镜像:`openwrt-ipq54xx-generic-qcom_maxx-squashfs-sysupgrade.bin`,但是这种格式通常需要被QEMU识别,而QEMU的`-kernel`参数不支持直接加载这种格式。我们需要将其转换为QEMU可引导的格式,或者使用其他方法(如挂载为磁盘)。 考虑到简便性,我们推荐使用内核和根文件系统分离的方式: -kernel openwrt-ipq54xx-generic-vmlinux.elf -initrd openwrt-ipq54xx-generic-squashfs-root.img # 注意:这个root.img是否适合作为initrd?它应该是squashfs格式,内核需要支持squashfs的initrd。 但是,OpenWrt的root.img通常是一个块设备映像(包含分区和文件系统),而不是一个cpio归档(initrd通常要求)。因此,更好的做法是将root.img作为磁盘挂载。 因此,我们需要创建一个虚拟磁盘,将root.img写入其中,然后让QEMU加载这个磁盘。或者,我们可以直接使用`-drive`参数加载root.img。 然而,在`virt`机器上,我们可以模拟一个存储设备(比如使用`-drive if=none,format=raw,file=root.img,id=hd0`)然后挂载根文件系统。 但是,由于我们使用的是`virt`机器,它没有默认的存储设备,所以我们需要手动添加。 参考命令: qemu-system-arm -M virt -kernel openwrt-ipq54xx-generic-vmlinux.elf -append "console=ttyAMA0 root=/dev/vda" -drive file=openwrt-ipq54xx-generic-squashfs-root.img,format=raw,if=virtio -nographic 注意: - 这里假设根文件系统在第一个virtio磁盘(/dev/vda)上。 - 需要内核支持virtio块设备。 如果用户使用的是`root=/dev/ram`,那么应该是把根文件系统作为initrd加载到内存。但是,我们的root.img是否是initrd格式?通常OpenWrt的rootfs是squashfs,所以需要内核支持squashfs,并且可以挂载为initrd。但这样会占用大量内存。 因此,我们有两种选择: 选项1:使用initrd方式(加载到内存) 命令:qemu-system-arm -M virt -kernel vmlinux.elf -initrd root.img -append "root=/dev/ram console=ttyAMA0" -nographic 选项2:使用磁盘方式(需要驱动) 命令:qemu-system-arm -M virt -kernel vmlinux.elf -append "console=ttyAMA0 root=/dev/vda" -drive file=root.img,format=raw,if=virtio -nographic 由于我们不知道用户的具体文件系统结构,需要用户尝试。 另外,注意文件列表中的`openwrt-ipq54xx-generic-vmlinux-initramfs.elf`,这是一个内置了initramfs的内核,意味着它已经包含了根文件系统。如果使用这个文件,则不需要指定initrd或磁盘,直接加载内核即可: qemu-system-arm -M virt -kernel openwrt-ipq54xx-generic-vmlinux-initramfs.elf -append "console=ttyAMA0" -nographic 因此,建议用户尝试使用`vmlinux-initramfs.elf`,因为这是最简单的。 总结仿真步骤: 1. 尝试使用initramfs内核(最简单): qemu-system-arm -M virt -kernel openwrt-ipq54xx-generic-vmlinux-initramfs.elf -append "console=ttyAMA0" -nographic 2. 如果不行,尝试使用initrd方式(确保有root.img文件): qemu-system-arm -M virt -kernel openwrt-ipq54xx-generic-vmlinux.elf -initrd openwrt-ipq54xx-generic-squashfs-root.img -append "root=/dev/ram console=ttyAMA0" -nographic 3. 或者使用磁盘方式(同样需要root.img): qemu-system-arm -M virt -kernel openwrt-ipq54xx-generic-vmlinux.elf -append "console=ttyAMA0 root=/dev/vda" -drive file=openwrt-ipq54xx-generic-squashfs-root.img,format=raw,if=virtio -nographic 注意:如果使用磁盘方式,需要确保root.img文件包含一个文件系统(如ext4或squashfs)并且内核支持该文件系统。 同时,用户需要确保当前目录下有这些文件,或者使用正确的路径。 由于用户之前遇到无反应的情况,请确保: - 命令参数正确(特别是文件路径和名称) - 使用`-append "console=ttyAMA0"`来重定向控制台输出 - 等待足够长时间(启动可能较慢) 最后,如果用户希望仿真特定的硬件(如IPQ5424),可能需要使用特定的机器类型(而不是`virt`)和设备树(dtb)。但是,在文件列表中我们看到了`dtbs`目录,里面可能有设备树文件。所以,如果使用特定机器类型(例如`-machine qcom`之类),需要指定设备树文件(`-dtb`)。但是,目前OpenWrt的IPQ54xx目标在QEMU中可能没有直接对应的机器类型,因此使用`virt`可能是唯一选择。 因此,我们首先尝试使用`virt`机器类型。 </think> 以下是基于您提供的文件列表进行OpenWrt仿真的方法: ### 仿真步骤 1. **选择正确的内核文件** 使用带调试符号的ELF内核文件(便于问题排查): ```bash vmlinux="openwrt-ipq54xx-generic-vmlinux.elf" # 完整内核 # 或使用带initramfs的内核(无需额外根文件系统) # vmlinux="openwrt-ipq54xx-generic-vmlinux-initramfs.elf" ``` 2. **准备根文件系统** 使用SquashFS格式的根文件系统镜像: ```bash root_img="openwrt-ipq54xx-generic-squashfs-root.img" ``` 3. **启动QEMU命令** ```bash qemu-system-arm -machine virt \ -kernel "$vmlinux" \ -append "console=ttyAMA0 root=/dev/vda" \ -drive "file=$root_img,format=raw,if=virtio" \ -nographic \ -serial mon:stdio ``` ### 关键参数说明 - **`-drive if=virtio`** 使用高效虚拟化驱动挂载根文件系统 - **`root=/dev/vda`** 指定virtio块设备为根分区 - **`-serial mon:stdio`** 双重串口重定向确保输出可见 - **`console=ttyAMA0`** 强制内核输出到虚拟串口 ### 调试建议 1. 若启动卡住,添加`-s -S`参数启用GDB调试: ```bash -s -S # 在QEMU启动时暂停等待GDB连接 ``` 另开终端执行: ```bash gdb-multiarch "$vmlinux" -ex "target remote :1234" ``` 2. 对于IPQ5424专用文件(如`*norplusnand*`),需: - 使用对应设备树(`dtbs/`目录) - 更换机器类型:`-machine qcom`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值