之前用的是斐讯K2路由器刷了LEDE固件,做无线AP。

但是WAN口和LAN口都是百兆,平时通过无线传个视频什么的也太慢了。

忍无可忍,最终下单了小米路由器3G。

看硬件应该也够用了。

然后就是考虑固件的事了,原厂固件什么的从不考虑,而且小米的原厂固件功能少得可怜。

LEDE 并入了OpenWrt,现在 18.06 在开发中,17.04 进入维护期,正是青黄不接的时候,小米路由器3G只有snapshot版,而且居然有4个包,还有一个tar包,这蛋疼的。

各固件对比了一下,最终决定刷 Padavan 固件。

Padavan 官方现在不再提供编译好的固件,好在支持MTK的7620和7621,自己做了一下适配,开源在 Github 上了。

 

编译方法 Github 上已经提供了,这里给出刷 breed 及固件的方法。

  1. 官网下载开发版固件,在路由器web页面上刷入。
  2. 登陆小米账号,绑定账号,并下载ssh工具包,刷入方法官方有说明。
  3. 备份数据
    cat /proc/mtd
    dev: size erasesize name
    mtd0: 07f80000 00020000 "ALL"
    mtd1: 00080000 00020000 "Bootloader"
    mtd2: 00040000 00020000 "Config"
    mtd3: 00040000 00020000 "Bdata"
    mtd4: 00040000 00020000 "Factory"
    mtd5: 00040000 00020000 "crash"
    mtd6: 00040000 00020000 "crash_syslog"
    mtd7: 00040000 00020000 "reserved0"
    mtd8: 00400000 00020000 "kernel0"
    mtd9: 00400000 00020000 "kernel1"
    mtd10: 02000000 00020000 "rootfs0"
    mtd11: 02000000 00020000 "rootfs1"
    mtd12: 03580000 00020000 "overlay"
    mtd13: 012a6000 0001f000 "ubi_rootfs"
    mtd14: 030ec000 0001f000 "data"
    
    #!/bin/bash
    dd if=/dev/mtd0 of=/extdisks/sda4/ALL.bin
    dd if=/dev/mtd1 of=/extdisks/sda4/Bootloader.bin
    dd if=/dev/mtd2 of=/extdisks/sda4/Config.bin
    dd if=/dev/mtd3 of=/extdisks/sda4/Bdata.bin
    dd if=/dev/mtd4 of=/extdisks/sda4/Factory.bin
    dd if=/dev/mtd5 of=/extdisks/sda4/crash.bin
    dd if=/dev/mtd6 of=/extdisks/sda4/crash_syslog.bin
    dd if=/dev/mtd7 of=/extdisks/sda4/reserved0.bin
    dd if=/dev/mtd8 of=/extdisks/sda4/kernel0.bin
    dd if=/dev/mtd9 of=/extdisks/sda4/kernel1.bin
    dd if=/dev/mtd10 of=/extdisks/sda4/rootfs0.bin
    dd if=/dev/mtd11 of=/extdisks/sda4/rootfs1.bin
    dd if=/dev/mtd12 of=/extdisks/sda4/overlay.bin
    dd if=/dev/mtd13 of=/extdisks/sda4/ubi_rootfs.bin
    dd if=/dev/mtd14 of=/extdisks/sda4/data.bin
    

    备份到最后一个mtd14可以会出现如下出错提示: dd: can’t open ‘/dev/mtd14’: Device or resource busy

    该分区备份不成功无所谓,关键的mtd0-mtd4备份下来就行了。

  4. 如需恢复
    mtd write /extdisks/sda4/Bootloader.bin Bootloader
    mtd write /extdisks/sda4/Config.bin Config
    mtd write /extdisks/sda4/Bdata.bin Bdata
    mtd write /extdisks/sda4/Factory.bin Factory
    mtd write /extdisks/sda4/crash.bin crash
    mtd write /extdisks/sda4/crash_syslog.bin crash_syslog
    mtd write /extdisks/sda4/reserved0.bin reserved0
    mtd write /extdisks/sda4/kernel0.bin kernel0
    mtd write /extdisks/sda4/kernel1.bin kernel1
    mtd write /extdisks/sda4/rootfs0.bin rootfs0
    mtd write /extdisks/sda4/rootfs1.bin rootfs1
    mtd write /extdisks/sda4/overlay.bin overlay
    mtd write /extdisks/sda4/ubi_rootfs.bin ubi_rootfs
    mtd write /extdisks/sda4/data.bin data
    
  5. 刷入breed

    上传breed固件:breed-mt7621-xiaomi-r3g.bin

    mtd write breed-mt7621-xiaomi-r3g.bin Bootloader

    刷入后重启路由器

    breed 控制台网关:192.168.1.1

    路由器接入有线,电脑手动设置IP:19.2.68.1.X

    按住reset键的同时开机,路由器LED疯狂闪烁时松开reset键,访问 192.168.1.1 web控制台

  6. 在 breed 内更新固件,也可在 breed 内再备份一次,恢复时更方便