mxdyeah 发表于 2024-9-2 00:31:32

记录小米路由器4A千兆版v1刷OpenWrt+恢复5G满血23dBm教程

备份的所有固件在此,初到本网站的先注册签到,就有积分啦,回复查看:
**** Hidden Message *****





static/image/hrline/2.gif

我买到的路由器的固件版本是:MiWiFi 稳定版 2.28.65
这个版本也叫v1版。

Part1.准备工作:
1.下载breed,附件见最前面所有固件区。
2.下载openwrt固件
https://downloads.openwrt.org/re ... shfs-sysupgrade.bin
3.电脑开启telnet功能,这一点就不多说了吧
4.下载openwrt获取root权限的python脚本,见下面链接
https://www.right.com.cn/forum/thread-4017759-1-1.html
5.使用FTP软件连接至小米路由器,我这里选择FileZilla,上传对应的附件以及做好备份
https://cdn.picui.cn/vip/2024/09/02/66d497721f37e.png
Part2.备份工作:
备份的目的是以后好刷回小米官方系统,我之前操作过,这里引用下别人的文章,但是经过核对,内存位置都是正确的,放心用。
root@XiaoQiang:~# cat /proc/mtd
dev:    size   erasesizename
mtd0: 01000000 00010000 "ALL"
mtd1: 00030000 00010000 "Bootloader"
mtd2: 00010000 00010000 "Config"
mtd3: 00010000 00010000 "Bdata"
mtd4: 00010000 00010000 "Factory"
mtd5: 00010000 00010000 "crash"
mtd6: 00010000 00010000 "cfg_bak"
mtd7: 00100000 00010000 "overlay"
mtd8: 00d00000 00010000 "OS1"
mtd9: 00b30000 00010000 "rootfs"
mtd10: 00180000 00010000 "disk"cd /tmp
mkdir backupB9AD
cd backupB9AD
dd if=/dev/mtd0 of=/tmp/backupB9AD/mtd0-ALL.bin
dd if=/dev/mtd1 of=/tmp/backupB9AD/mtd1-Bootloader.bin
dd if=/dev/mtd2 of=/tmp/backupB9AD/mtd2-Config.bin
dd if=/dev/mtd3 of=/tmp/backupB9AD/mtd3-Bdata.bin
dd if=/dev/mtd4 of=/tmp/backupB9AD/mtd4-Factory.bin
dd if=/dev/mtd5 of=/tmp/backupB9AD/mtd5-crash.bin
dd if=/dev/mtd6 of=/tmp/backupB9AD/mtd6-cfg_bak.bin
dd if=/dev/mtd7 of=/tmp/backupB9AD/mtd7-overlay.bin
dd if=/dev/mtd8 of=/tmp/backupB9AD/mtd8-OS1.bin
dd if=/dev/mtd9 of=/tmp/backupB9AD/mtd9-rootfs.bin
dd if=/dev/mtd10 of=/tmp/backupB9AD/mtd10-disk.bin
备份完毕用FTP把这几个文件复制出来保存好,以后万一要用到
Part3.上传及刷入Breed,为OpenWrt做准备
用Filezilla的FTP协议把breed上传到路由器的/tmp目录
刷入breed
输入命令mtd -r write /tmp/breed-mt7621-pbr-m1.bin Bootloader
之后路由器会自动重启到breed界面
(breed界面的IP是192.168.1.1,这里需要手动去控制面板设置电脑的IP192.168.1.****)
用浏览器访问breed界面 备份固件的各种信息 记录MAC地址等 防止以后可能会用到
注意,一定要备份eeprom!!!注意,一定要备份eeprom!!!注意,一定要备份eeprom!!!否则轻则5G信号没有,重则不开机!
啥?你告诉我你没备份?试试本贴开头的文件吧,实在不行也没法了。
https://cdn.picui.cn/vip/2024/09/02/66d499ceb9e66.jpg
Part4.在breed界面用命令刷入openwrt(只能这样刷入)
首先在本地搭建一个http服务,怎么搭建随便你,具体操作就是在你操作刷机的这个电脑上建立http服务。可以试下轻量HTTP服务程序。
我自己是用Python搭建了一个虚拟Web服务器。
然后把上面下载下来的固件放到web服务器的根目录

然后打开telnet,进入到breed.
命令是telnet 192.168.1.1
然后依次输入命令
wget http://192.168.1.111/1.bin

#192.168.1.111就是我提供WEB服务的这条主机
#为了简便,可以不用输入这么长,把下载下来的bin文件改名就行了


#下面提示下载的信息,包含大小和保存的地址,有这些才是正常的。
#Length: 5768992/0x580270 (5MB)
#Saving to address 0x80001000


#接着开始擦除。
flash erase 0x180000 0x600000

#从0x180000开始擦除0x600000这么大的区域   
#一定要先擦除,为什么要写0x600000呢,是因为擦除的大于必须大于固件的大小,并且这个数字还有一些未知的要求,
#我猜测可能是某个数的整数倍,懒得测试了,直接0x600000简单省事,
#####经测试完全符合,这一段是引用的别人的结论,真是大佬啊!哈哈哈#######
#0x180000是小米4a千兆版的openwrt的默认起始地址

flash write 0x180000 0x80001000 0x580270
#从0x180000这个地址写入保存在0x80001000的数据    写入的大小为0x580270
好,先别着急启动!!
以下贴子就是个教训,此处需要还原刚才备份的eeprom,使得5G正常使用。
他的方法在我这不好使,且即使成功,成功率也不高。

https://cdn.picui.cn/vip/2024/09/02/66d49be33be4f.png
正确做法:
执行完“flash write 0x180000 0x80001000 0x580270”后,去还原刚才备份的eeprom.bin。
为什么?
因为分区不一样,breed恢复的内存地址在0x40000-0x50000
而实际openwrt官方固件读到的是0x50000-0x60000
所以正确的做法是
跟刚才一样,上传你那个eeprom到你的web服务器根目录。

wget http://192.168.1.111/eeprom.bin

#再erase
flash erase 0x50000 0x10000

#然后刷入
flash write 0x50000 0x80001000 0x10000
boot flash 0x180000
#最后再从0x180000启动系统还有的网友说可以刷入刚才备份的mtd4-Factory.bin,用控制台勾选只刷eeprom,但是经过我5次测试,均不是满血23dBm。有待考证:lol,我这个是满血23dBm。
https://cdn.picui.cn/vip/2024/09/02/66d49e784147d.png
Ending Part.收尾
这个breed不是R4A专用的,默认的启动地址不是0x180000
为了保证重启以后每次都能顺利启动系统,
需要添加环境变量

进入breed的web界面,启用环境变量功能!
这一步启动环境变量功能界面中,位置选择breed内部,设置启用后,需要重启。
重启后再次进到breed的web界面中,上一个步骤已经设置启用了环境变量了,这一步我们就加上关键的环境变量,在环境变量界面,
增加autoboot.command 字段,值设为 boot flash 0x160000,即可,这就是告诉breed启动系统时,使用我们第5步中使用的那个命令boot flash 0x160000,从0x160000处启动,保存。

至此就大功告成了,成功的刷入了openwrt的官方系统
重启以后就进入了openwrt的系统了。哈哈:lol
END






1150399216 发表于 2024-9-12 20:31:38

没有无线选项怎么办

mxdyeah 发表于 2024-9-14 23:09:08

1150399216 发表于 2024-9-12 20:31
没有无线选项怎么办

能否发个截图上来?

myyouth 发表于 2024-10-1 02:05:09

试试看看
页: [1]
查看完整版本: 记录小米路由器4A千兆版v1刷OpenWrt+恢复5G满血23dBm教程