创建于 2024-09-03
更新于 2025-06-20
刷 openwrt
刷入开发版 rom
从 https://www1.miwifi.com/miwifi_download.html
下载开发版固件
https://bigota.miwifi.com/xiaoqiang/rom/r3g/miwifi_r3g_firmware_12f97_2.25.124.bin
格式化一个空的 fat32 的 u 盘, 保证 u 盘内只有这一个以 .bin 结尾的文件
按住 reset 键上电, 等待指示灯变黄色闪烁, 松开 reset 键, 等待几分钟后指示灯变蓝, 刷开发版完成
配置完路由器后(可使用 wifi 中继先保证网络畅通), 下载小米 wifi APP绑定小米账号
https://d.miwifi.com/rom/ssh 下载 ssh 工具, 并获取路由器 ssh 密码, 保存备用
刷入 ssh 工具, 步骤同上, u 盘内必须只有 miwifi_ssh.bin 这一个以 .bin 结尾的文件, 这个包刷新较快, 等待路由器自动重启即可
刷入 breed
下载不死 boot
https://breed.hackpascal.net/breed-mt7621-xiaomi-r3g.bin
使用 winscp (新版本 ssh 默认使用 sftp 协议, 该路由器较老, 不支持 sftp) 将 breed-mt7621-xiaomi-r3g.bin 复制到 tmp 目录下
使用如下配置的 ssh 连接
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss -o macs=hmac-sha1 root@192.168.31.1随后刷入
mtd -r write /breed-mt7621-xiaomi-r3g.bin Bootloader等待 ssh 自动断开后, 查看路由器指示灯变粉(紫), 断电后按住 reset 键上电, 等待指示灯变黄色闪烁, 松开 reset 键
插入网线查看电脑获取到 192.168.1.x 的 ip 地址, 访问 192.168.1.1 进入 breed
刷入 openwrt
新版本 breed 可直接刷入 openwrt, 将内存布局改为 openwrt 后
从 https://openwrt.org/toh/xiaomi/mir3g wiki 内下载 如下 3 个包
https://downloads.openwrt.org/releases/22.03.5/targets/ramips/mt7621/openwrt-22.03.5-ramips-mt7621-xiaomi_mi-router-3g-squashfs-kernel1.bin
https://downloads.openwrt.org/releases/22.03.0/targets/ramips/mt7621/openwrt-22.03.0-ramips-mt7621-xiaomi_mi-router-3g-squashfs-rootfs0.bin
https://downloads.openwrt.org/releases/24.10.0/targets/ramips/mt7621/openwrt-24.10.0-ramips-mt7621-xiaomi_mi-router-3g-squashfs-sysupgrade.bin刷入 kernel1 及 rootfs0 后, 等待自动重启, 这次重启较慢, 切勿断电, 等待路由器重启后指示灯变蓝, 查看电脑是否获取到 ip, 访问 192.168.1.1 进入 openwrt (新版本默认无密码, 旧版本默认为 password)
进入 openwrt 后在备份与升级-刷写新的固件(默认为英语, 搞刷机的这点词汇量都没有就别研究了), 刷入 sysupgrade, 等待重启即可完成 openwrt 的刷写
配置联通随享
首先为 openwrt 配置联网,可使用 wifi 中继: 网络-无线, 根据 wifi 类型选择对应的网卡模式, 分别为 2.4g 和 5g wifi, 扫描 wifi, 输入密码, 保存并应用 (此处均为默认配置, 输入密码下一步下一步即可)
回到网络-接口, 查看 wwan 是否获取到 ip, 完成联网
安装 rndis 驱动、usb 模式切换、usb 诊断及 curl (用于后续配置自动关闭 wifi)
ssh root@192.168.1.1
opkg update
opkg install kmod-usb-net-rndis usb-modeswitch usbutils curl踩坑
此处巨坑, 联通随享的中兴微方案, 插入后默认不为 rndis 模式, 经过多番查找
最终在 archwiki 上找到需要将设备配置为 1403 模式 (archwiki, 永远的神!)
https://wiki.archlinux.org/title/ZTE_MF_823_(Megafon_M100-3)_4G_Modem
通过 lsusb 获取到 usb ID 为 19d2:0581
需要切换成 19d2:1403, 通过如下的 wiki, 将 16 进制转换为 10 进制, 修改得到如下配置
"19d2:0548": {
"*": {
"t_vendor": 6610,
"t_product": [ 5123 ],
"mode": "StandardEject",
"msg": [ ]
}
},此处的参考文档如下:
https://openwrt.org/docs/guide-user/network/wan/wwan/ethernetoverusb_rndis
https://openwrt.org/docs/guide-user/network/wan/wwan/usb-modeswitching将该配置添加到/etc/usb-mode.json 或参考 wiki 自定义配置文件
随后运行
usbmode -l回显如下
Found device: 19d2:0548 (Manufacturer: "DEMO, Incorporated", Product: "DEMO Mobile Boardband", Serial: "1234567890ABCDEF")然后重启路由器 ifconfig -a 即可出现新的网卡 eth1
修改 openwrt 的 wan 口设备为 eth1, 即可完成上网!
后续
这里提一嘴, openwrt 可以通过配置 hotplug 自动关闭联通随享自带的 wifi (可有效减少散热压力)
bash 脚本如下
#!/bin/sh
if [ "$ACTION" = ifup -o "$INTERFACE" = eth1 ] ; then
echo "usb insert" > /tmp/unicom.log
sleep 15
curl 'http://10.168.1.1/reqproc/proc_post' -X POST --header 'content-type:application/json' -d "isTest=false&goformId=LOGIN&password=$url编码的base64编码后的密码" >> /tmp/unicom.log
sleep 2
curl 'http://10.168.1.1/reqproc/proc_post' -X POST --header 'content-type:application/json' -d "goformId=SET_WIFI_INFO&isTest=false&wifiEnabled=0" >> /tmp/unicom.log
fichmod a+x /etc/hotplug.d/iface/95-sample-hotplug可通过 logread 及 dmesg 进行 debug
wan 口配置 dns 让路由器本身能正常上网
关闭 dnsmasq 的 dns 解析功能
uci set dhcp.@dnsmasq[0].localuse="0"
uci set dhcp.@dnsmasq[0].port="0"
uci commit dhcp重启路由器
配置路由器下发 dns 配置
lan 口 dhcp-高级设置 下发 dns
6,223.5.5.5,119.29.29.29
安装中文语言包
opkg install luci-i18n-base-zh-cn luci-i18n-firewall-zh-cn配置无缝更新
从页面上安装 luci-app-attendedsysupgrade
配置镜像站
opkg install ca-certificates
sed -i 's_https\?://downloads.openwrt.org_https://mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf