◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
年度最值得买路由器?红米AX6000保姆级刷机教程
- 小米相关
- 时间:2023-03-03 17:04:50
- 1671人已阅读
大家好,这期我们来介绍红米AX6000的刷机教程,在介绍刷机教程之前,先来说几句废话。
1、为什么要选择红米AX6000路由器
其实小米家的很多款路由都支持刷成openWRT系统。不过红米AX6000应该是目前性价比最高的一款。
它的CPU型号是联发科 FiLogic 830系列的MT7986A,四核A53架构,12nm工艺制程,2.0GHz主频,这款CPU应该目前中端路由器上性能最强的一款soc了,比起很多入门级软路由也不落下风。加上512mb+128MB的存储组合。把它作为一台家庭使用openWRT主路由完全能够胜任的。
关键是目前它在某多的价格长期在350块左右,就性价比来说实在是很香。加上支持解锁ssh,这款路由器很有可能会成为继红米AX6之后的又一代刷机神机。
当然路由器的缺点也很明显,出于市场定位和成本方面的考虑,红米AX6000被阉割了2.5G网口和USB接口。这两样哪怕有一样这款路由的玩法也多很多。另外路由器内置FEM芯片是决定无线信号强弱的关键,这款路由也只是搭载中等功率的FEM芯片,比起高端的路由器上用的高功率芯片还要差一些。这个减配操作也和红米ax6如出一辙。
尽管如此,但这款路由器目前还是适合大多数用户。好接下来我们言归正传,开始刷机教程。
2、SSH解锁
关于红米ax6000的刷机方法其实都来自openwrt社区和恩山无线论坛,也有一些大佬已经做视频介绍了刷机方法。
不过这款路由器其实有三种刷机方案,这三种方案在论坛里混杂一起,新手看起来可能会比较乱,我会在视频里做下梳理并一一演示操作步骤。
不过无论用哪种方法,开始的步骤都是一样的。我们需要先解锁Telnet,再开启SSH。
开启ssh的过程其实就是利用固件的漏洞获得路由器的最高管理权限,有点类似IOS越狱和安卓系统解除BL锁。
刷机的过程其实一点也不难,只是复制一些现成的代码就可以。我们只需严格按照步骤,并仔细一点,一般新手也半个小时以内就可以刷好一台路由器。
刷机前的准备工作,我们需要把红米ax6000的wan口连接到现有网络中。并且在ax6000的lan口上连接上一台电脑。建议用网线将电脑和路由器连接起来,这样刷机会更稳定一些。
软件方面,我们需要准备一个能连接ssh和Telnet的工具。我这里用的mobaxterm。还需要一个支持解锁的官方固件,这里推荐1.6.0这个版本。
然后是解锁ssh代码,所有软件和代码我都会一并打包并把链接放在视频简介或者评论区里
一、系统降级
首先要确定下路由器系统的版本,如果不是可以解锁的版本,那么需要在“系统设置”里,把当前系统版本手动降级为1.6.0。
如果当前版本已经是可解锁的则可以忽略这一步。目前可解锁的版本号有1.0.60;1.0.48;1.0.28
路由器在刷机之前最好能初始化一次,并且设置成路由模式。
二、获取stok
登录到路由器的后台,在地址栏上方会生成一串stok的数值。我们需要把stok等于后的这串数字复制下来,这串数字是解锁ssh的关键,不过在每个机器上生成的值都不同,而且每次重启路由器以后这个值都会改变。
所以每次路由器重启后,我们都需要重新复制一下这串代码。
三、打开红米AX6000的开发者模式
首先我们需要解锁下ax6000的开发者模式
1、复制以下代码
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
注意把stok={token} 的字符{token}替换为路由器生成的stok值。
然后把代码复制到浏览器的地址栏里再回车,看到返回过来这样一串字符就表示代码注入成功了。
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
同样需要替换stok=后边的字符。
代码注入成功之后,网页同样会返回这样一串字符并且开始重启路由器。
四、设置路由器的Bdata参数
1、我们稍等两分钟等路由器重启好了之后,再次登录到路由器的后台。这时需要重新复制一下stok,因为此时路由器重启后stok的值已经改变。
接下来的步骤是设置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
同样将stok=token中的{token}替换成路由器新的stok即可
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
五、登录telnet开启ssh
现在我们已经开启了telnet,可以用telnet登录到路由器的后台。
我们打开mobaxterm,选择telnet登录的方式。输入路由器ip地址 默认是192.168.31.1(这里是不用输入用户和密码)点击ok登录到telnet。
接下来我们需要复制粘贴一些代码到telnet里执行即可。
1. 修改root密码为admin(不修改也可以通过SN计算默认密码)这里我们修改一下
echo -e 'admin\nadmin' | passwd root
2、固化SSH
bdata set boot_wait=on
bdata commit
nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
输入命令后没有反馈信息,不用担心,已经执行成功了。
3、永久开启SSH的代码(这样即使路由器重启也不会影响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
4、接下来还需要修改时区设置,输入:
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
5、最后一步,关闭开发/调试模式。在提示符后输入:
mtd erase crash
6、然后输入reboot重启路由
reboot
成功登录ssh之后,我们就相当于获取了路由器的最高权限。
解锁ssh之后我们就有三种刷机方案选择,第一种是继续沿用目前小米路由器官方固件。我们可以通过ssh的命令行的方式来安装需要插件。恩山论坛里有安装各类插件的方法,大家参考教程去做就可以。
相对来说官方的固件稳定,无线信号好,而且可以享受官方的固件更新。缺点是用ssh的方式安装插件有点太麻烦了,而且官方的原版固件的功能太少了。完全不能发挥MT7986A这颗soc强大的性能。
所以就有了后两者刷机方案:刷一个版本的openWRT系统:
我们到论坛里下载红米ax6000的openWRT固件时会看到楼主一般会发布两个版本固件。一个是官方分区版,另一个是uboot大分区版本。这里我简单解释下两个版本的区别:
红米AX6000的实际ROM大小是128M,不过小米官方的固件功能非常少,根本用不到这么大的空间。官方默认的固件分区大小只有30M左右。
所以如果不改变官方分区大小的情况下,官方分区版本的openWRT固件最大就只能有30多M体积。 这么点容量的固件能安装的插件就少的可怜,只能够最基本日常使用。
官方分区版优点是可以很方便的恢复到官方版本,一旦你觉得系统不稳定或者用不惯op系统,随时都可以用官方的救砖工具恢复到官方版本。
不过既然路由器实际ROM大小有128M,为了更好的利用空间,就有大神开发出了大分区的uboot版本。这样就能安装体积更大大固件,还能预留更多的空间给用户折腾。而且刷好了uboot以后,刷不同版本第三方的固件就非常方便,也不用担心设备会变砖。但是刷了uboot版本就要官方固件说再见了,而且刷写uboot的的过程会存在本身一定风险,刷写过程中是不能断电的。
下面我会依次介绍两种openwrt固件的刷写方法,如果你只是想尝试下第三方固件,那么刷官方分区版比较合适。如果想最大程度挖掘这款路由器的性能还是推荐用大分区的uboot版本。虽然刷机有风险,但相信很多小伙伴和我一样买这款路由器就是为了折腾的。
3、官方分区版刷机教程
我们先来介绍下官方分区版的刷写方法,大致过程是先刷入一个过渡固件,再从过渡固件刷成openwrt固件。
先用ssh的方式登录到路由器。
一、刷入过渡固件
输入代码:
cat /proc/cmdline
查看firmware(固件版本)=1或者0,如果结果是0就执行代码:
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
cd /tmp
curl -L http://sebs.oss-cn-shanghai.aliyuncs.com/initramfs-factory.ubi -o initramfs-factory.ubi
ubiformat /dev/mtd9 -y -f /tmp/initramfs-factory.ubi
reboot -f
如果结果是1就执行:
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
cd /tmp
curl -L http://sebs.oss-cn-shanghai.aliyuncs.com/initramfs-factory.ubi -o initramfs-factory.ubi
ubiformat /dev/mtd8 -y -f /tmp/initramfs-factory.ubi
reboot -f
执行完毕后,路由器被自动刷入一个过渡固件。注意执行这步需要路由器可以联网。
过渡固件的管理ip:192.168.5.1
用户名:root
密码:password
无线WiFi名称:openWRT
无线密码:password
这里有一个小坑,我的过渡固件刷好以后。连接到路由器并没有自动分配IP地址,我手动设置电脑的IP为:192.168.5.2就可以成功连上。
进入过渡系统之后,我们需要打开服务里的终端选项,然后用root登录,密码是:password
再终端里粘贴运行以下代码:
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
接下来我们可以选择一个官方分区版openwrt固件刷入。我这里推荐237大神制作的闭源固件。当然用别的版本固件也是可以的,不过一定要下载带官方分区版的字样的固件。
打开系统>备份>升级,选择最后一项:刷写新的固件。然后选择准备好固件点击上传。上传完之后记得取消“保留当前配置”再点击继续。
等待刷写完毕并自动重启后,就进入正式版的openWRT系统了。
正式版的openWRT系统后台地址是 192.168.6.1 用户名和密码依然是 root 和 password,默认的网口 1 是 wan 口,剩下的都是 lan 口。
至此我们已经成功红米AX6000上刷入了官方分区openwrt系统。237大神已经为固件做了比较完善的闭源驱动。无论是系统的稳定性还是无线信号的强度都已经非常接近官方系统了。
接下来我们再演示下如何从openwrt系统刷回官方固件
前面说了官方分区版的优点是可以非常方便的刷回小米官方的系统。如果你不想用openwrt系统,或者在刷机过程中出现任何问题。
我们都可以用小米的救砖工具加官方固件就可以恢复到最初的路由器系统。
方法是用卡针顶住路由器reset 恢复按钮,再插上电源。持续按住reset按键8s左右,看到指示灯闪烁。
这时我们可以用电脑的有线网口连接路由器的234口。打开官方救砖工具。
并上传一个小米官方固件。上传成功后等待几分钟,看路由器的蓝灯闪烁。就可以手动断电重启路由,这时路由器就恢复到官方系统了。
救砖后恢复ssh权限
刷回官方系统后,我们还是可以通过telnet来恢复SSH权限。
不过此时的telnet密码会被重置,我们需要通过这个网页里:https://miwifi.dev/ssh输入路由器的SN来计算出登录的初始密码。
成功登录到telnet之后,执行一下命令:
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
echo -e 'admin\nadmin' | passwd root
这样我们就能重新登录到ssh了,ssh的登录账号和密码分别为root和admin。
登录之后可以再执行以下命令:
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
到这里我们就完成了循环,接下来我们就介绍如何刷写uboot大分区版本。
4、uboot大分区版本
好了接下来我们来介绍uboot大分区版的刷写方法:
需要准备的工具有,H大神编译的红米AX6000的uboot文件,uboot大分区版的openwrt固件,还有上传下载文件的工具winscp。
我们需要先刷入uboot,再通过启动uboot来刷入openwrt系统。
值得一提的恩山论坛里的大分区版uboot与openwrt社区提供ubootmod又所不同。我这里是参考了恩山论坛的的教程,大家在刷入固件时要加以区分。
我们先介绍两条命令 分别可以查看路由器分区和分区大小:
查看路由器分区
cat /proc/mtd
查看路由器分区的大小
cat /proc/partitions
刷机之前我们可以用命令行备份几个原厂的分区,这样以后还可以通过备份恢复到官方固件。
我们登录到ssh,复制并运行以下命令,分区备份就会被复制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
然后用软件winscp登录到路由器,打开tmp文件夹,下载这些备份文件到电脑做保存。winscp的登录ip 账号和密码都与ssh登录内容相同。
登录到tmp文件夹后,先把刚刚复制出来的五个分区备份下载到电脑。
上传完毕后关闭winscp,再次用ssh登录。
备份好分区以后顺便把uboot文件上传到tmp文件夹下(注意这里上传的是uboot文件,而不是openwrt系统固件,它的大小只有775k)、然后逐条输入以下命令,把uboot刷入到FIP分区:
md5sum /tmp/mt7986_redmi_ax6000-fip-fixed-parts.bin
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
注意:擦除和写入FIP分区时不能断电、重启,不然路由器就会直接变砖。只能用tll或者编程器救砖。会非常麻烦。
刷入.bin文件时为了确保万无一失,最好先验证下文件的md5值与作者发布的一致。
md5值:7610a1722073748c3c3a860b75d94d5d
当我们看到输出success字样就说明uboot已经刷入成功了。
进入uboot的方法按住路由器的reset键再通电。一直按住状态等待15秒以后再松开。注意uboot目前还不能支持指示灯所以只能在心里默数15秒。
手动电脑的IP地址设置为192.168.31.2,然后我们在浏览器里输入192.168.31.1,就能见到uboot的ui界面了。
以后我们就可以直接在uboot界面里上传和安装固件就可以了。提示刷机成功之后我们只需要耐心等待两分钟,等到固件初始化完成就能进到openWRT系统界面。
即使上传的固件不对或者刷机失败,也不要紧。我们只需要按照同样的步骤再次进入uboot界面重新上传固件就可以了,刷过了uboot以后的路由器是刷不死的。
这里我刷的是237大神发布的uboot大分区版openwrt固件,后台管理地址192.168.6.1 用户名和密码是 root 和 password,默认的网口 1 是 wan 口,剩下的都是 lan 口。
我的刷写Uboot的视频演示是参考了恩山论坛上的lgs大神的教程。除了刷uboot的教程以外,这位大神还介绍了TTl和编程器救砖的方法。以及如何刷回官方系统。
大家有兴趣可以去试试,我这里就不演示了。
最后简单介绍下红米ax6000刷了openwrt系统之后的体验。
刷了237大神的大分区版固件之后,路由器已经连续稳定运行了五天时间。看来目前这个版本稳定性是没有问题的。
硬路由和软路由相比,存储空间方面是少了不少。安装的插件时没有这么自由了。
不过硬路由也有它的优点,比如说用我之前软路由跑满千兆宽带时,CPU占用会来到65%。而用硬路由去跑满千兆带宽下载时,CPU占用是0%。因为硬路由有专门的数据转发芯片,所以在做数据转发工作时就不会占用CPU的资源。
另外闭源固件的无线信号也是相当不错的。简单做了下测试,在同一个房间中用电脑通过无线上传文件到nas,传输速度最高可以超过100M/s。几乎跑满了快千兆带宽。
而在隔一堵墙的另一个房间里,用手机上speedtest测试无线速度。也能跑到将近700兆的带宽。这样的无线信号强度还是基本能让人满意的。
最后也要感谢恩山论坛上的各路大神的无私付出,因为有他们,我们才能用到这么高性价比的路由器。
好了以上就是本期的内容,如果喜欢我的内容希望评论点赞转发三连一波,也欢迎大家关注我的频道,我是乌客。我们下期见。
本文的链接:最具性价比的openWRT路由:RedmiAX6000保姆级刷机教程:
文中的工具链接分享:
链接:https://pan.baidu.com/s/1EEWTh1aZn2L-XO9Edo2VRw?pwd=yt6d
本文参考的资料:
解锁ssh教程:https://www.right.com.cn/FORUM/thread-8253125-1-1.html
官方分区版的刷机教程:https://www.right.com.cn/forum/thread-8255378-1-1.html
uboot大分区版刷机教程及救砖方法:https://www.right.com.cn/forum/thread-8265832-1-1.html
237大神的op固件:https://www.right.com.cn/forum/thread-8261104-1-1.html
另一个uboot教程以及H大的uboot:https://www.right.com.cn/forum/thread-6352752-1-1.html
另一个大佬编译的op固件:https://www.right.com.cn/forum/thread-8255594-1-1.html
网友整理的红米ax6000教程合集:https://www.right.com.cn/forum/thread-8270115-1-1.html