最近,在内网配置AdGuardHome服务以截拦部分广告,可是,在配置完成AdGuardHome后,准备将IPV4/IPV6 DNS全部更改为内网服务器时,却遇到一个很无语的问题—小米路由器3G的固件似乎对IPV6支持不是非常完善,无法将我的内网服务器设为IPV6 DNS服务器。在经过一番折腾无果后,打算把路由器刷成OpenWRT,因为小米官方固件真的太难用了,真的和屎一样难用
废话不多说,开刷!
1.在开始之前
1.1.下载开发版固件
小米官网下载:网页链接
未知下载站:网页链接
1.2.下载开启SSH固件和保存SSH账号密码
请打开网页链接,登录后,即可查看你当前登录小米账号绑定的所有路由器,选择你要开启SSH的路由器,下载工具包和保存一下提供的ROOT密码(注意,开启SSH后将会失去保修)
1.3下载Breed
官方下载:网页链接
未知下载站下载:网页链接
1.4下载OpenWRT
此处提供的OpenWRT版本:19.07.6
官方下载:网页链接
未知下载站下载:网页链接
注意要下载4个文件(initramfs-kernel、squashfs-kernel1、squashfs-rootfs0、squashfs-sysupgrade),如果从我下载站下载的话..我已经把这些文件全部打包成压缩包了
1.5.安装WinSCP和PuTTY
因为过程太简单了,所以….就不具体讲啦
2.更新开发版
将下载的开发板固件直接在常用设置-->系统状态-->升级检测-->手动升级处升级即可。因为过程非常简单,就不截图啦,2333
3.开启SSH服务
3.1.准备U盘
将U盘格式化为FAT32格式,然后将下载的工具包复制到U盘中,并且保证文件名为miwifi_ssh.bin
3.2.开始刷机
断开小米路由器的电源,然后插入U盘到USB接口,接着先按住reset键,然后接通电源。待指示灯变为黄色闪烁时,即可松手啦
等待3-5秒后即可刷入成功,然后会自动重启,并且开启SSH权限
4.刷入Breed
4.1.上传Breed固件
按照图中的指示使用WinSCP连接一下路由器
连上后,把breed-mt7621-xiaomi-r3g.bin上传到/tmp文件夹
4.2.刷入Breed
接着,就是刷入Breed了,命令非常简单,但是请慎重,不要再执行过程中断电,否则就要用编程器刷机了。。。(下面命令中的**/tmp/breed-mt7621-xiaomi-r3g.bin**可以替换为你上传的breed的绝对路径)
mtd -r write /tmp/breed-mt7621-xiaomi-r3g.bin Bootloader
5.刷入OpenWRT
本以为刷入了Breed以后就简单了,什么都不用管了,结果,现实狠狠的给了我一个大嘴巴子,这路由器似乎有kernel0和kernel1,还有在Breed下进行一些设置,我没有设置,刷入固件以后出现了一些奇奇怪怪的bug,比如重启配置文件就丢失什么的
5.1.在官方系统中刷入OpenWRT
此步不会的可以参照一下“刷入Breed”这一步骤,都是刷入固件,大同小异
首先,我们要上传OpenWRT镜像到**/tmp目录(initramfs-kernel、squashfs-kernel1、squashfs-rootfs0)使用一下命令进行刷机(注意:请把下面命令中的bin文件自行替换为你bin文件的实际文件名和路径**)
mtd write openwrt-19.07.6-ramips-mt7621-xiaomi_mir3g-initramfs-kernel.bin kernel0
mtd write openwrt-19.07.6-ramips-mt7621-xiaomi_mir3g-squashfs-kernel1.bin kernel1
mtd write openwrt-19.07.6-ramips-mt7621-xiaomi_mir3g-squashfs-rootfs0.bin rootfs0
刷完后直接断电即可,然后通电并按reset键进Breed设置一下
5.2.修改Breed配置
首先,你要在小米R3G设置栏目找到并删除normal_firmware_md5,因为他似乎会影响启动;然后你要在环境变量编辑中添加一个xiaomi.r3g.bootfw,值为2(至于为啥要这么搞,因为….breed在没有这个值的时候,默认启动kernel0。虽然看上去似乎没啥影响,但是不知道为什么,没有这个环境变量我的路由器配置重启就全没了)
5.3.在系统中刷入squashfs
重启退出Breed,进入OpenWRT后在System-->Backup / Flash Firmware处直接刷入squashfs-sysupgrade(openwrt-19.07.6-ramips-mt7621-xiaomi_mir3g-squashfs-sysupgrade.bin),等待系统自动重启即可
6.完成!
终于摆脱了小米原生垃圾固件的束缚,投入了OpenWRT的怀抱!Yes!
另外…..如果本文存在任何错误,欢迎在评论区指出!