0%

初探 AC2100 刷 openwrt

最近入坑了 openwrt,为了一些插件和校园网的需求,新购入了红米 AC2100,使用体验:“真香”

主要记录了使用的插件和刷机的过程,先说体验,想看感兴趣可以点击跳转

背景

随着群友陆陆续续上了软路由,一些插件和脚本还是挺让人眼馋,想想也算刚需了吧。去年在供需群购入了一个大佬帮忙刷好的斐讯 k2,为了解决校园网最多只能连接两个设备数的问题,还购入了一个小米的WiFi 智能插座,来解决经常去实验室前忘记关掉路由器的问题(因为路由器需要占用一个连接数)。这次购入红米 AC2100 后自己刷入 openwrt,刷入的固件中有更多自带的插件,淘汰掉了之前的斐讯 k2,于是我的校园网使用体验变成了这样

experience

在外出之后通过手机关闭 WiFi 智能插座来达到关闭路由器的目的(减少校园网设备数占用),回到寝室按一下开关打开路由器等待加载完成各个设备即可立即使用

使用体验

为啥要刷路由器,当然是有需求的,由于主要使用三个插件

  • 锐捷插件(支持校园网多设备)
  • 网易云插件(解锁灰色歌曲)
  • 广告屏蔽大师 Plus+(屏蔽广告)

网易云插件和广告屏蔽插件都是大佬编译的固件里面自带的,就不过多赘述了
锐捷插件直接使用了一个 github 编译好的 mentohust 执行程序,具体使用方法在刷机流程的 mentohust 中介绍

在使用过程中也有一些缺点:

  1. 开机时间略长。大概需要 1 分钟左右,感觉可能是插件比较多,第一次加载时间有点长
  2. 红米 AC2100 颜值相对较低,6 根天线展开有种盘根错节之感,相比小米 AC2100 有些差距,两者固件挺多通用,硬件有少许差异,小米颜值价格更高,红米在性价比略胜一筹
  3. 网易云批量下载歌曲会有问题,可以在线播放,试听缓存完成下载的勾勾就会亮,也可以离线播放了,不过有时候加载时间可能稍长(几秒到十几秒)

下面是小米官网价格,一般还能便宜 10 元
compare

刷机流程

由于有了“丰富”的重装系统以及安卓刷机的经验,在路由器方面也是轻车熟路(当然感谢大佬们无偿提供编译好的固件和详细的教程帖子)基本没有啥坑点,有坑的地方大佬帖子里面已经写得很详细了,主要参考 日更 自编译 Lean 小米/红米 AC2100-Openwrt 固件-160mhz-插件全-出国-去广告-多拨附教程,简单记录一下过程和帖子可能没有说得太明白的地方,具体流程还请看大佬写的帖子
我使用的 Mac 电脑,开虚拟机将扩展坞的 USB 连入 Windows 虚拟机即可

开启 Telnet 与刷入 breed

这一步的作用是打开路由器的 Telnet 功能,为后续可以刷入固件做准备
首先在网络链接中把自动获取 ip 地址,改成手动并且设置为 192.168.31.177,然后设置子网掩码和网关
参考 [AC2100(RM2100)] 红米/小米 AC2100 刷入 r3g breed 以及恢复官方 boot 详细教程(更新查坏块方法、pb-boot)

set-ip

刷入 openwrt

在前面刷写好 breed 之后,使用电脑连接路由器的一个 LAN 口,选择自动分配 ip 地址
浏览器输入 192.168.1.1 进入 breed 后台,增加环境变量 xiaomi.r3g.bootfw,值为 2
其他步骤照着帖子来就行,没啥坑,刷完之后就可以成功进入 openwrt 的界面
参考 小米/红米 AC2100 固件

openwrt

mentohust

在刷完了 openwrt 后,路由器直链网线,在连接路由器的一个设备上打开网页会弹出登陆界面,登陆之后所有连接路由器的设备均可使用。但是这样会有一个问题,如果路由器关闭时间过长,每次都需要重新登陆,体验较为糟糕。我的目的是想只输入一次账号密码,下一次打开路由器直接连接即可上网,而且我使用了智能 WiFi 插座,可以随时随地远程地关掉路由器,不会有多占设备数的烦恼。
简单参考了一下 锐捷(Ruijie)——OpenWrt 安装 MentoHUST(校园网锐捷(Ruijie)认证路由限制解决方案),下载 mentohust 中的可执行程序,通过 openwrt 上传文件到 /tmp/upload,执行之后放到 /etc/init.d

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ cd /tmp/upload
// 先查看使用的哪块网卡,找到有 inet addr 信息并且不是以 10.0 开头的那个
// 一般是 eth0.1 那块网卡
$ ifconfig
// 增加执行权限
$ chmod a+x mentohust
$ ./mentohust
// 按照提示输入账号密码,选择校园网即可
// 配置我选择的是 1锐捷私有,dhcp 方式选择的是 2认证后
// 正常登陆的话,会打印认证成功,发送心跳包...

// 完成之后信息会存放在系统中,位置在 /etc/mentohust.conf
// 如果想更改配置,可以直接删除配置文件 $ rm /etc/mentohust.conf 后重新运行来配置
// 移动 mentohust 到 /etc/init.d 保证开机启动
$ mv mentohust /etc/init.d/
// 移动完成之后重启路由器即可

云音乐插件

在固件中集成了两个版本的云音乐插件,Golang 版本和 nodejs 版本,但是因为没有 nodejs 环境(路由器 ROM 太小,像电视盒子这种可以自行安装 nodejs 环境),所以只能使用 golang 版本,golang 版本集成的项目是 https://github.com/cnsilvan/UnblockNeteaseMusic
其程序执行文件在 /usr/bin/UnblockNeteaseMusic,我尝试了一下只替换可执行文件到新版本,不过偶尔还是有一些 bug,有时候解析其他音源的歌曲不太稳定,体验有待改进

2020.11.2 更新之后比之前更稳定了

1
2
3
4
5
// 登陆到路由器,也可以在 系统 -> tty 终端中打开
$ ssh root@10.0.0.1
// 进入目录
$ /usr/bin/UnblockNeteaseMusic -v
可以看到版本是 0.2.7

开机启动

在使用的过程中发现有时候插件并不会开机启动,为了开机启动,在管理后台选择,系统 -> 启动项
在最下面的脚本中写入

1
2
3
4
5
6
7
8
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

/etc/init.d/adbyby start
/etc/init.d/unblockmusic start
/etc/init.d/mentohust

exit 0

系统版本

刷完之后想知道一下系统版本,通过下面的命令看到 OPENWRT_ARCH="mipsel_24kc",查询之后这是一个 32 位的系统
在 go 里面写了一个 Hello World 交叉编译之后直接扔到路由器就能跑,太强大了
交叉编译的命令使用的是 $ GOOS=linux GOARCH=mipsle go build main.go

1
2
3
4
5
6
7
8
9
10
root@OpenWrt:/# uname -a
Linux OpenWrt 5.4.61 #0 SMP Fri Sep 4 01:39:46 2020 mips GNU/Linux
root@OpenWrt:/# cat /proc/version
Linux version 5.4.61 (runner@fv-az56) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r2873-7ce964103)) #0 SMP Fri Sep 4 01:39:46 2020
root@OpenWrt:/# cat /etc/os-release
NAME="OpenWrt"
...
OPENWRT_BOARD="ramips/mt7621"
OPENWRT_ARCH="mipsel_24kc"
...

系统更新

在运行了几个月之后,可能你想要更新一下路由器的系统,按照一下步骤即可

  1. 断开电源
  2. 按住复位键不放,插上电源,等黄灯闪烁之后,变成白灯闪烁时放开复位键
  3. 此时进入 breed 控制台,刷入临时固件
  4. 按照以前的方式刷入新的 openwrt-ramips-mt7621-xiaomi_mi-router-ac2100-squashfs-sysupgrade.bin

资料下载

首先推荐去参考资料中下载,如果链接不可用,或者不方便下载,可以去我的资源页面进行下载
https://gonelist.cugxuan.cn/#/res/AC2100

参考资料

如果这篇文章有侵犯到您的权益,请尽快与我联系,cugxuan@gmail.com

听说好看的人都关注了我的公众号《泫言》
泫 微信公众号

微信公众号

泫 微信支付

微信支付

泫 支付宝

支付宝