神创天陆活动专区

小米路由Mini(R1C)刷openwrt

本文包括三个部分:

连接路由器 Shell

下载和写入 OpenWrt 升级包

配置 OpenWrt

连接路由器 Shell

由于现在小米禁止刷官方的 SSH 开启工具,因此需要使用另外的方法进入 Shell。

官方的 SSH 开启工具:

https://d.miwifi.com/rom/ssh

这里使用 openwrt 提供的方法。

openwrt xiaomi mini: https://openwrt.org/toh/xiaomi/mini

路由器固件降级

下载官方旧版本固件(新版的固件可能没法用以下方法):

http://bigota.miwifi.com/xiaoqiang/rom/r1cm/miwifi_r1cm_firmware_b9d56_2.7.11.bin

连接路由器 WIFI 或者网线直连

打开浏览器进入 192.168.31.1 ,这个是路由的管理界面

选择【常用设置】-> 【系统信息】 -> 【升级】,选择刚才下载的文件,确定。

此时会提示系统降级最好删除配置文件,勾选并继续。

等执行完,路由器会重启,并闪烁黄灯。一直等到蓝灯常亮,表示降级完毕。

开启 telnet (现在还开不了 SSH)

打开浏览器进入 192.168.31.1 ,配置并等待初始化完成。

此时 url 会包含 stok=xxxxx,把 xxxx 复制出来,以下用 表示复制出来的部分。

注:一定要等上面初始化完成,否则下面的命令无法执行。

复制下面这串:

http://192.168.31.1/cgi-bin/luci/;stok=/api/xqnetwork/set_wifi_ap?ssid=whatever&encryption=NONE&enctype=NONE&channel=1%3B%2Fusr%2Fsbin%2Ftelnetd

贴到浏览器(注意替换 ),回车。这个用来开启 telnet。

执行结束会提示:{“msg”:“未能連線到指定Wi-Fi(Probe timeout)”,“code”:1616}

虽然信息是错误,但实际上是成功。

复制下面这串:

1

http://192.168.31.1/cgi-bin/luci/;stok=/api/xqsystem/set_name_password?oldPwd=&newPwd=

贴到浏览器(注意替换 (当前路由登陆密码) (新的登陆密码)),回车。

这个用来重新设置密码。

执行结束会提示:{“code”:0}。

此时 telnet 已开启。

打开 Windows 的 cmd,并连接路由器:

telnet 192.168.31.1 23

如果提示找不到 telnet,需要在控制面板的【程序和功能】->【启用或关闭 Windows 功能】里面找到 【Telnet 客户端】,前面的打勾,并点【确定】。 连接时的用户名为 root,密码为刚才的

备份 MTD

插入 U 盘,在 telnet 里面进入 U 盘文件夹。在 /extxxxx/ext4 里面。

这里的 xxxx 根据不同情况可能不同,你可以 cd / && ls 看到以 ext 开头的文件夹

执行以下命令:

for name in $(grep -v 'dev' /proc/mtd | awk -F ':' '{print $1}'); do dd if=/dev/$name of=/extxxxx/ext4/$name.bin; done

刷引导 BootLoader(不死 Breed)

主要是为了避免把路由器刷坏,没法恢复。只要刷成功,以后就不用怕了。而且刷固件用界面操作也比较方便。

进入官网,找到 breed-mt7620-xiaomi-mini.bin 官方网站:

https://breed.hackpascal.net/ 将文件下载到 U 盘

进入 U 盘,执行命令写入:

mtd -r write /extxxxx/ext4/breed-mt7620-xiaomi-mini.bin Bootloader

等待路由器重启

重启后会亮红灯闪烁,等待红灯常亮,即表示成功。

进入 Bread 的方式:

关掉路由器电源

按住 reset

接通路由器电源,等待 3 秒,灯闪烁,再放开 reset

打开 192.168.1.1

刷 OpenWrt

方法一:Bread 刷 OpenWrt

获取 OpenWrt 升级包下载地址

回到 OpenWrt 的页面

https://openwrt.org/toh/xiaomi/mini

找到【OpenWrt support】这一块,复制【Firmware OpenWrt Upgrade】下面的链接

下载这个以 -ramips-mt7620-miwifi-mini-squashfs-sysupgrade.bin 结尾的文件

进入 Bread

在【固件启动设置】里,将类型设置为【小米 Mini】

在【固件备份】里,都点一遍

在【固件更新】里,在【固件】一栏选择刚才下载的 bin。

点上传,等待上传完毕,路由器会自动重启。

重启后会亮红灯闪烁,等待红灯常亮,即表示成功。

方法二:下载和写入 OpenWrt 升级包

获取 OpenWrt 升级包下载地址

回到 OpenWrt 的页面

https://openwrt.org/toh/xiaomi/mini

找到【OpenWrt support】这一块,复制【Firmware OpenWrt Upgrade】下面的链接

升级

刚刚连接的 telnet 执行:

cd /tmp wget http://downloads.openwrt.org/releases/18.06.4/targets/ramips/mt7620/openwrt-18.06.4-ramips-mt7620-miwifi-mini-squashfs-sysupgrade.bin

检查 MTD

cat /proc/mtd

你可以看到有一行包含 OS1

写入升级包

mtd -r write 刚刚下载的文件名 OS1

写入完成后,路由器会自动重启

重启后会亮红灯闪烁,等待红灯常亮,即表示成功。

配置 OpenWrt

以下配置完成后,记得在【系统】->【备份/升级】->【动作】->【生成备份】创建备份。以后重新刷 OpenWrt 的时候,就可以直接导入。不用再做配置。

进入 OpenWrt 界面启用 WIFI

刚装完后,WIFI 没有默认开启。所以需要用网线连接路由器的 LAN 口。如果电脑连了其他路由器的 WIFI,则先断掉。

进入 192.168.1.1 。刚开始会要求设置密码。点【Login】按钮,再点【Go to password configuration…】进入设置界面。

在 Password 和 Confirmation 输入密码,点 【Save & Apply】。

进入顶部的 【Network】->【Wireless】,选择一个,点击 【Enable】就开启 WIFI 了。

点【Edit】进去设置 ESSID(WIFI连接名称)。

在【Wireless Security】一栏的 Encryption 选择 WPA2-PSK,然后在 Key 一栏填入密码。点【Save & Apply】。

开启 SSH

进入顶部的【System】->【Administration】

在 Dropbear Instance 下面的 Interface 选择 lan

Port 设置一个,比如 55555

确保勾选了【Password authentication】和【Allow root logins with password】

点【Save & Apply】

修改路由地址

我这里是路由器用线连接光猫,光猫的地址是 192.168.1.1,无法修改。OpenWrt 也是 192.168.1.1。

如果输入 192.168.1.1 会进入 OpenWrt 管理界面,而不是光猫的。所以可以选择将 OpenWrt 的地址改掉。

第一种方法是在管理界面的【Network】->【Interface】->【LAN】,把【IPv4 address】这一栏改成类似 192.168.23.1。点【Save & Apply】

第二种方法是进入 SSH,编辑文件:vim /etc/config/network

修改 config interface 'lan' 这一区块的 option ipaddr,修改后类似于:

config interface 'lan' option type 'bridge' option ifname 'eth0.1' option proto 'static' option ipaddr '192.168.23.1' option netmask '255.255.255.0' option ip6assign '60'

然后执行 /etc/init.d/network reload,等一会儿就可以通过 192.168.23.1 访问路由器了。

我试了好多次第一种方法,总是保存不了,用这个方法才成功。

安装管理界面中文包

网上说的安装方法大多过时,在 OpenWrt 18.06.4 版本,需要执行以下命令安装:

opkg update opkg install luci-i18n-base-zh-cn

从下面这个文档找到的:

https://openwrt.org/packages/pkgdata/luci-i18n-base-lang

USB 支持

安装

opkg install kmod-usb-core \ kmod-usb-uhci \ kmod-usb-storage \ kmod-usb2 \ kmod-usb-ohci \ block-mount \ mount-utils \ fdisk

如果 U 盘或移动硬盘是 FAT32 的,就装 kmod-fs-vfat;如果是 NTFS 的,就装 ntfs-3g。

挂载

执行 mkdir /mnt/usb 创建等下的挂载目录

插入 U 盘

执行 fdisk -l | grep "^/" 会看到与 U 盘容量差不多的分区。这里假设为 /dev/sda4

执行 mount /dev/sda4 /mnt/usb

这样进入 /mnt/usb 就能看到 U 盘的文件了

主要参考文档

基础知识:https://www.zoulei.net/2016/05/05/openwrt_recovery_you_need_to_know/

https://openwrt.org/toh/xiaomi/mini

https://leamtrop.com/2017/05/11/flash-openwrt-squashfs/

http://bbs.xiaomi.cn/t-13391060-1-o0

修改路由地址:https://www.cnblogs.com/double-win/p/3841017.html

Breed:https://www.jianshu.com/p/cab3062ef920

U 盘:https://jingyan.baidu.com/article/5225f26b6b273fe6fa090829.html

U 盘:https://www.cnblogs.com/double-win/p/3841801.html

MTD:http://blog.chinaunix.net/uid-28790518-id-5082378.html