自编译 红米 AC2100 OpenWRT R21.7.26

分享一下之前自行编译的路由器固件给有需要的人

一句话总结特点:锐捷 | 闭源驱动 | Wireguard | 组网 | NFS | 多拨 | 弱信号剔除

特色

  1. 轻量级固件,低内存占用。主路由/AP均适用
  2. 集成MiniEAP v0.93锐捷校园网认证, 也支持IEEE 802.1X 认证
  3. 集成常用 WireGuard, L2TP/IPSec 等跨区组网协议。
    (有些人是不是把这两个东西当做违法上网的工具了?这是滥用。实际上,这些工具是用来实现跨区组网的,例如你有两套房子,想把他们组进一个局域网里,就需要它了。)
  4. 集成白嫖校园网所需协议
  5. 闭源驱动,开启SFE后,LibreSpeed 5G 测速可达 650Mbps(手机为红米K20Pro)
  6. 支持 NFS 客户端,可以挂载一个局域网的 NFS 设备实现扩容。不支持 Samba,因为 AC2100 跑 samba 非常吃力。
  7. 不支持 802.11kvr,闭源驱动当前还不支持此功能。用开源驱动则不支持HWNAT,导致无线速度只有 ~300Mbps,孰重孰轻无需多言。
  8. [2021-8-3] 支持管理VLAN交换机
  9. 基于 Lean 的源代码编译 https://github.com/coolsnowwolf/lede 。在此向 Lean 团队表示感谢。
  10. 保证可用,因为这是我自用的固件
  11. 支持 Zerotier 等多种内网穿透方式, 不过基于性能的考虑,我个人倾向于使用wireguard穿透。
  12. 没有集成clash,这东西的负载简直恐怖。但是可以opkg自行安装

更新内容

2021-8-6更新内容

集成 iwinfo 和 ethtool 命令行工具,以便命令行管理接口

2021-8-3更新内容

  1. 重新增加了 VLAN 支持
  2. 可能修复了内核加密相关模块大量耗费CPU的问题

从2021-7-30版本升级请注意:由于增加了VLAN支持,不要保留 /etc/config/network 配置,否则升级后无法连接到路由器!!

建议通过SSH或luci ttyd终端的sysupgrade命令升级(通过SCP上传固件或直接Xshell拖放固件文件到/tmp),可以选择放弃保留哪些配置(升级命令同下)。

注意

  1. 如遇无线不能开机自启的问题,请通过SSH或luci ttyd终端修改 /etc/rc.local,或直接在 LUCI系统–启动项–本地启动脚本,在 exit 0 前一行插入下列代码
# Wireless starter and Interface checker by Kenvix <[email protected]>

# Start ra unconditionally
sleep 1s
ip link set rai0 up
ip link set ra0 up
echo "Wireless interface started"

# Lan Check
lanCheck=`uci get network.lan.ifname`
if [ $? -eq 0 ]; then
    echo $lanCheck | grep rai0 > /dev/null
    if [ $? -ne 0 ]; then
        uci set network.lan.ifname="$lanCheck rai0 ra0"
        uci commit
        echo "Updated wireless config of LAN Interface"
    fi
    echo "No need to update wireless config of LAN Interface"
else
    echo "wireless config of LAN Interface check failed. Interface may renamed." >&2
fi

目前尚不清楚造成此问题的原因。

  1. 修改 LAN 接口设置可能会丢掉无线接口导致wifi不能dhcp,如遭遇此问题,请通过SSH或luci ttyd终端执行命令:
lanCheck=`uci get network.lan.ifname`
uci set network.lan.ifname="$lanCheck rai0 ra0"
uci commit
  1. 如需弱信号剔除,请通过SSH或luci ttyd终端修改 /etc/rc.local,或直接在 LUCI系统–启动项–本地启动脚本,在 exit 0 前一行插入下列代码(中文注释可能乱码,建议删掉)
# 2.4G 剔除RSSI阈值 有效区间 [-100, 0]
iwpriv ra0 set KickStaRssiLow=-85
# 2.4G 连接最低RSSI阈值  有效区间 [-100, 0]
iwpriv ra0 set AssocReqRssiThres=-80
# 5G 剔除RSSI阈值  有效区间 [-100, 0]
iwpriv rai0 set KickStaRssiLow=-72
# 5G 连接最低RSSI阈值  有效区间 [-100, 0]
iwpriv rai0 set AssocReqRssiThres=-71

功能清单&下载&源代码

如果当前操作系统不是 OpenWRT 则必须先刷入底包,否则无法启动。

编译的是红米的固件,小米可以混刷,除了LED灯反转之外没有其他问题。

下载地址

如果已经是 OpenWRT,直接登录 SSH或luci ttyd终端 ,把 openwrt-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-sysupgrade.bin 放到 /tmp 目录下,执行命令即可直接刷入:

sysupgrade -F -i openwrt-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-sysupgrade.bin

地址:192.168.1.1
密码:password