找回密码
 立即注册
查看: 579|回复: 6

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

[复制链接]
  • TA的每日心情
    开心
    2025-2-15 00:18
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    76

    主题

    94

    回帖

    6206

    积分

    Admin

    积分
    6206
    QQ
    发表于 2024-9-2 00:31:32 | 显示全部楼层 |阅读模式
    备份的所有固件在此,初到本网站的先注册签到,就有积分啦,回复查看
    游客,如果您要查看本帖隐藏内容请回复








    我买到的路由器的固件版本是: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,上传对应的附件以及做好备份

    Part2.备份工作:
    备份的目的是以后好刷回小米官方系统,我之前操作过,这里引用下别人的文章,但是经过核对,内存位置都是正确的,放心用。
    1. root@XiaoQiang:~# cat /proc/mtd
    2. dev:    size   erasesize  name
    3. mtd0: 01000000 00010000 "ALL"
    4. mtd1: 00030000 00010000 "Bootloader"
    5. mtd2: 00010000 00010000 "Config"
    6. mtd3: 00010000 00010000 "Bdata"
    7. mtd4: 00010000 00010000 "Factory"
    8. mtd5: 00010000 00010000 "crash"
    9. mtd6: 00010000 00010000 "cfg_bak"
    10. mtd7: 00100000 00010000 "overlay"
    11. mtd8: 00d00000 00010000 "OS1"
    12. mtd9: 00b30000 00010000 "rootfs"
    13. mtd10: 00180000 00010000 "disk"
    复制代码
    1. cd /tmp
    2. mkdir backupB9AD
    3. cd backupB9AD
    4. dd if=/dev/mtd0 of=/tmp/backupB9AD/mtd0-ALL.bin
    5. dd if=/dev/mtd1 of=/tmp/backupB9AD/mtd1-Bootloader.bin
    6. dd if=/dev/mtd2 of=/tmp/backupB9AD/mtd2-Config.bin
    7. dd if=/dev/mtd3 of=/tmp/backupB9AD/mtd3-Bdata.bin
    8. dd if=/dev/mtd4 of=/tmp/backupB9AD/mtd4-Factory.bin
    9. dd if=/dev/mtd5 of=/tmp/backupB9AD/mtd5-crash.bin
    10. dd if=/dev/mtd6 of=/tmp/backupB9AD/mtd6-cfg_bak.bin
    11. dd if=/dev/mtd7 of=/tmp/backupB9AD/mtd7-overlay.bin
    12. dd if=/dev/mtd8 of=/tmp/backupB9AD/mtd8-OS1.bin
    13. dd if=/dev/mtd9 of=/tmp/backupB9AD/mtd9-rootfs.bin
    14. 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信号没有,重则不开机!
    啥?你告诉我你没备份?试试本贴开头的文件吧,实在不行也没法了。

    Part4.在breed界面用命令刷入openwrt(只能这样刷入)
    首先在本地搭建一个http服务,怎么搭建随便你,具体操作就是在你操作刷机的这个电脑上建立http服务。可以试下轻量HTTP服务程序。
    我自己是用Python搭建了一个虚拟Web服务器。
    然后把上面下载下来的固件放到web服务器的根目录

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

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


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


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

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

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


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

    1. wget http://192.168.1.111/eeprom.bin

    2. #再erase
    3. flash erase 0x50000 0x10000

    4. #然后刷入
    5. flash write 0x50000 0x80001000 0x10000
    复制代码
    1. boot flash 0x180000
    2. #最后再从0x180000启动系统
    复制代码
    还有的网友说可以刷入刚才备份的mtd4-Factory.bin,用控制台勾选只刷eeprom,但是经过我5次测试,均不是满血23dBm。有待考证,我这个是满血23dBm。

    Ending Part.收尾
    这个breed不是R4A专用的,默认的启动地址不是0x180000
    为了保证重启以后每次都能顺利启动系统,
    需要添加环境变量

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

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






    本网站创始人
    主页https://www.mxdyeah.top
    有问题联系邮箱admin[at]mxdyeah.anonaddy.com
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    回帖

    2

    积分

    Lv 1

    积分
    2
    发表于 2024-9-12 20:31:38 | 显示全部楼层
    没有无线选项怎么办
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-2-15 00:18
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    76

    主题

    94

    回帖

    6206

    积分

    Admin

    积分
    6206
    QQ
     楼主| 发表于 2024-9-14 23:09:08 | 显示全部楼层
    1150399216 发表于 2024-9-12 20:31
    没有无线选项怎么办

    能否发个截图上来?
    本网站创始人
    主页https://www.mxdyeah.top
    有问题联系邮箱admin[at]mxdyeah.anonaddy.com
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    回帖

    1

    积分

    Lv 1

    积分
    1
    发表于 2024-10-1 02:05:09 | 显示全部楼层
    试试看看
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    5

    回帖

    14

    积分

    Lv 1

    积分
    14
    发表于 2024-11-30 23:16:41 | 显示全部楼层
    回复可以查看吗
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    回帖

    3

    积分

    Lv 1

    积分
    3
    发表于 2025-1-24 10:43:27 | 显示全部楼层
    感谢大佬
    回复

    使用道具 举报

  • TA的每日心情

    2025-1-29 14:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    1

    回帖

    1

    积分

    Lv 1

    积分
    1
    发表于 2025-1-29 14:21:11 | 显示全部楼层
    感谢大佬
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Open Community |网站地图

    GMT+8, 2025-4-2 18:31 , Processed in 1.249500 second(s), 41 queries .

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表