|
本帖最后由 cool_angel 于 2021-2-9 22:26 编辑
手边有一个小米路由3,假的千兆路由器,以前用Prometheus把它刷成了padavan,这两天看论坛有大神把MiR3刷成了OpenWrt,就想玩玩。
论坛上有醉老仙的文章[2020-12-22]小米路由器3 openwrt xiaomi_miwifi-r3 by lean - 小米无线路由器以及小米无线相关的设备 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)
还有yuyangyu755的文章【新提醒】【2021-1-11】小米路由器R3 自编译Openwrt固件|IPV6|帕斯沃|多版本 - 小米无线路由器以及小米无线相关的设备 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)
刷机有风险,需胆大心细,把折腾过程写出来,供其他朋友借鉴。
打开Padavan,设置打开SSH,用xshell登录,使用 cat /proc/mtd 命令,列表发现没有kernel1和rootfs,看来不能直接mtd write yuyangyu755 的两个固件,需要刷回官方。
看文章用Prometheus的Restore backup可以恢复小米路由3的uboot,我的Prometheus版本比较低,只有Force Recovery,不能恢复官方,使用命令的方式刷
SSH到padavan
执行
- cd /tmp
- wget -O - http://bigota.miwifi.com/xiaoqiang/rom/r3/miwifi_r3_all_55ac7_2.11.20.bin | dd of=kernel.bin bs=1 skip=94108 count=2284584
- cat << EOF > kernel.md5
- 62e96a64e21de9b176fd51336b963e2c kernel.bin
- EOF
- md5sum -cw kernel.md5
- #dd if=/dev/mtd2 of=factory.bin bs=1k count=1280
- dd if=/dev/mtd2 of=factory.bin bs=$((0x20000)) count=10
- cat kernel.bin >> factory.bin
- mtd_write write kernel.bin Firmware_Stub; mtd_write verify kernel.bin Firmware_Stub
- mtd_write write factory.bin Factory; mtd_write verify factory.bin Factory
- reboot
复制代码
发现mtd_write verify kernel.bin Firmware_Stub, mtd_write verify factory.bin Factory执行错误,是用来verify的,没关系
将miwifi_r3_all_55ac7_2.11.20.bin开发板固件放到Fat32格式Upan,将固件名改为miwifi.bin,按住reset插电源,指示灯闪烁,开始刷....
刷完就可以登到小米官方固件,然后使用命令刷开ssh
- http://192.168.31.1/cgi-bin/luci/;stok=<stoken>/api/xqnetwork/set_wifi_ap?ssid=Xiaomi&encryption=NONE&enctype=NONE&channel=1%3Bnvram%20set%20ssh%5Fen%3D1%3B%20nvram%20commit
- http://192.168.31.1/cgi-bin/luci/;stok=<stoken>/api/xqnetwork/set_wifi_ap?ssid=Xiaomi&encryption=NONE&enctype=NONE&channel=1%3Bsed%20%2Di%20%22%3Ax%3AN%3As%2Fif%20%5C%5B%2E%2A%5C%3B%20then%5Cn%2E%2Areturn%200%5Cn%2E%2Afi%2F%23tb%2F%3Bb%20x%22%20%2Fetc%2Finit.d%2Fdropbear
- http://192.168.31.1/cgi-bin/luci/;stok=<stoken>/api/xqnetwork/set_wifi_ap?ssid=Xiaomi&encryption=NONE&enctype=NONE&channel=1%3B%2Fetc%2Finit.d%2Fdropbear%20start
- http://192.168.31.1/cgi-bin/luci/;stok=<stoken>/api/xqsystem/set_name_password?oldPwd=<oldpass>&newPwd=<newpass>
复制代码
注意<stoken>不需要保留
用xshell登录官方固件,密码是newpass,用户名应该是root 备份小米官方固件
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# cat /proc/mtd
- dev: size erasesize name
- mtd0: 08000000 00020000 "ALL"
- mtd1: 00040000 00020000 "Bootloader"
- mtd2: 00040000 00020000 "Config"
- mtd3: 00040000 00020000 "Bdata"
- mtd4: 00040000 00020000 "Factory"
- mtd5: 00040000 00020000 "crash"
- mtd6: 00040000 00020000 "crash_syslog"
- mtd7: 00080000 00020000 "reserved0"
- mtd8: 00400000 00020000 "kernel0"
- mtd9: 00400000 00020000 "kernel1"
- mtd10: 02000000 00020000 "rootfs0"
- mtd11: 02000000 00020000 "rootfs1"
- mtd12: 03600000 00020000 "overlay"
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd0 of=./ALL.bin
- 262144+0 records in
- 262144+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd1 of=./Bootloader.bin
- 512+0 records in
- 512+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# ls -l
- -rwxrwxrwx 1 root root 134217728 Feb 8 09:34 ALL.bin
- -rwxrwxrwx 1 root root 262144 Feb 8 09:34 Bootloader.bin
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd2 of=./Config.bin
- 512+0 records in
- 512+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd3 of=./Bdata.bin
- 512+0 records in
- 512+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd4 of=./Factory.bin
- 512+0 records in
- 512+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd5 of=./crash.bin
- 512+0 records in
- 512+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd6 of=./crash_syslog.bin
- 512+0 records in
- 512+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd7 of=./reserved0.bin
- 1024+0 records in
- 1024+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd8 of=./kernel0.bin
- 8192+0 records in
- 8192+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd9 of=./kernel1.bin
- 8192+0 records in
- 8192+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd10 of=./rootfs0.bin
- 65536+0 records in
- 65536+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd11 of=./rootfs1.bin
- 65536+0 records in
- 65536+0 records out
- root@XiaoQiang:/extdisks/sda1/xiaomi.bak# dd if=/dev/mtd12 of=./overlay.bin
- 110592+0 records in
- 110592+0 records out
复制代码
参考上面大神的文章,感觉刷个pb-boot比较可玩性大一点,毕竟醉老仙的openwrt是从pb-boot刷的。
用winscp将pb-boot-xiaomi3-20190317-61b6d33.img写入bootloader,命令: mtd_write write pb-boot.img Bootloader
然后reboot
路由器启动后,发现能进入小米官方固件。
拔掉电源,按住reset,插入电源,3秒钟后,指示灯慢闪,电脑获取ip 192.168.1.2,访问http://192.168.1.1进入pb-boot,pb-boot刷成功了。
拔掉电源重启路由器,重新进入小米官方固件。
按照yuyangyu755的方法刷入kernel1和rootfs0重启后发现还是进入的小米官方,可能是刷了pb-boot的缘故,失败了,于是刷醉老仙的。
将醉老仙的固件用pb-boot方式刷入,重启后需要耐心等待,不要断电否则可能更新不完整,需要重新用pb-boot刷。可以去喝杯茶。
等到电脑获取ip地址,就可以登openwrt,这时候就刷成了
醉老仙的2020.12.22日的固件ssp+挺好用的,clash还不太会用,可能配置文件太大,总是重启。插入U盘还不能自动识别,还是有些小问题的,希望加入打倒美帝。
感觉pb-boot还行,还不想刷成uboot尝试yuyangyu755的固件
不知道有没有简单方法从醉老仙刷成yuyangyu755的固件。
|
|