配置
- 路由器:R4A
- bootloader:breed
安装记录
新入二手 小米路由4A 千兆版,刷入OpenWrt 过程记录,刷机过程不分先后,其中有交叉情况(一个系统前后刷了几遍),将看到的论坛帖子、博客内容在此记录总结一下。
Breed
暂略。
安装的breed 版本是breed-mt7621-pbr-m1.bin(r1338)
OpenWrt with openclash
待完善
OpenWrt 官方镜像
刷机方法
在官网直接下载的镜像,现在用的版本是21.02.1。使用的breed 的话,如果安装官方的镜像的话,会导致无线重启,原因大概是内存分区信息不对。
以下是刷机方法:
- 搭建一个本地web 服务器,将官方镜像放上去
- 网线接电脑,进入breed 之后,使用telnet 连接路由
- 使用wget 将官方镜像下载到路由器中,下载完后,控制台会显示当前镜像存放的位置(应该是0x80001000),以及当前镜像的大小(大概是0x580270左右,5M)
- 擦除闪存分区。breed 引导的位置为0x180000,因此擦除从0x180000开始的大于镜像大小的闪存空间
flash erase 0x180000 0x60000
- 将镜像写到引导开始处。(将位于0x80001000的0x580270大小的数据写到0x180000处。)
flash write 0x180000 0x80001000 0x580270
- 在breed 网页版增加环境变量(需要先开始环境变量,重启后就能修改环境变量了)
- 字段:
autoboot.command
- 值:
boot flash 0x180000
- 字段:
- 刷入eeprom,否则5g Wi-Fi 信号不行(刷了也不一定行,详见后文)
- 在控制台重启
boot flash 0x180000
至此,应该就是可以正常进入openwrt,并且不会无限重启了
主要参考文献:
终于解决了breed刷机后不能正常启动的问题 - 小米无线路由器以及小米无线相关的设备 - 恩山无线论坛 - Powered by Discuz!
小米路由器4A千兆版 折腾记录 20211212更新 完美刷入官方openwrt - 小米无线路由器以及小米无线相关的设备 - 恩山无线论坛 - Powered by Discuz!
其他问题
刷机后,可能还会有一个问题,即使在breed 刷入了eeprom 之后,Wi-Fi信号可能还是有问题
- 验证
Ssh 登录openwrt 后台,查看内存分区信息cat /proc/mtd
root@OpenWrt:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "Bdata"
mtd3: 00010000 00010000 "factory"
mtd4: 00010000 00010000 "crash"
mtd5: 00010000 00010000 "cfg_bak"
mtd6: 00100000 00010000 "overlay"
mtd7: 00e80000 00010000 "firmware"
mtd8: 00241f43 00010000 "kernel"
mtd9: 00c3e0bd 00010000 "rootfs"
mtd10: 00920000 00010000 "rootfs_data"
其中mtd3 应该为eeprom 的位置。但是此时openwrt 中的eeprom 位置位于mtd2 中,即Bdata 中。
可以通过分别计算/dev/mtd2
、/dev/mtd3
以及自己上传的eeprom 文件的md5 值来方便的确认。我的结果是mtd2 的md5 值和上传的eeprom 的md5 值相同,而和mtd3 计算出的md5 值不同。
此外,我也通过直接对比二进制文件值再次确认过,在此记录一下对比的过程:
1. 将/dev/mtd2
和/dev/mtd3
导出到电脑中。 dd if=/dev/mtd2 of=/tmp/mtd2
2. 通过scp 等工具将/tmp/mtd2
拉到电脑中
3. 可以直接使用vi 查看二进制文件vi mtd2
,在加上命令::%!xxd
可以更直观的查看文件内容
4. 对比后,可以验证eeprom 文件被写到了Bdata的位置,而不是factory
- 解决
- openwrt 安装扩展程序
kmod-mtd-rw
- 将准备写入的eeprom 文件上传到tmp 文件夹中(例/tmp/eeprom.bin)
- 载入kmod-mtd-rw 模块
insmod mtd-rw.ko i_want_a_brick=1
- 将
/tmp/eeprom.bin
刷写到factorymtd write /tmp/eeprom.bin factory
- openwrt 安装扩展程序
- 验证成果
在网络-无线,编辑5g Wi-Fi的页面,应该可以看到最大传输功率由原先的1dBm 现在最大可以达到20dBm
主要参考文献:
记一次路由器刷出问题修复过程 | rain的随笔
只要有openwrt就行,在各种不同官方或自制的openwrt版中刷uboot和art - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz!
ps. 在此特别感谢此部分第一篇博客的作者,在我为Wi-Fi 信号折腾的死去活来的时候,偶然Google 到了这篇博客,看完并且验证之后,彷佛看到了黑暗中的一丝光明,一扫我连日来许多次折腾并失败后心中积累的阴霾,庆幸之至,感激不尽
OpenWrt 自编译镜像
待续
Lede 自编译镜像
待续