immortalwrt-mt798x基于immortalwrt项目,特点如下
- 基于immortalwrt 21.02分支,内核版本5.4,目前仅支持mt7981/mt7986
- 使用mtk-openwrt-feeds提供的有线驱动、hnat驱动、内核补丁及配置工具,支持所有硬件加速特性
- mt7981/mt7986均支持两个ppe,每个ppe有32k Entry(当有线驱动使用ADMAv1时,每个PPE最大支持16k Entry)
- 使用mtwifi原厂无线驱动(目前默认使用7.6.6.1版本),默认开启802.11k,支持warp在内的所有加速特性
- 新开发的mtwifi-cfg无线配置工具支持openwrt的原生luci界面以及netifd-wireless标准接口。除此以外,还支持mtk原厂提供的luci-app-mtk和wifi-profile
支持机型
路由器型号 | CPU | RAM | FLASH | 有线规格 | 无线规格 | USB |
---|---|---|---|---|---|---|
360 T7/T7U/T7M | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
ZR3020 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
Cetron CT3003 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
JCG Q30 PRO | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
MR3000D-CIq | MT7981 | 512M | 128M SPI-NAND | 4*1G | AX3000 | × |
GL.iNet GL-MT3000 | MT7981 | 512M | 256M SPI-NAND | 1G(WAN)+2.5G(LAN) | AX3000 | √ |
GL.iNet GL-MT2500 | MT7981 | 1G | 8G EMMC | 1G(WAN)+2.5G(LAN) | × | √ |
康佳 KOMI-A31/易莱孚 ETR635-U/ETR631-T | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
小米 WR30U/T/M | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
乐橙 LC-HX3001 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
H3C NX30 Pro | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
CMCC RAX3000M | MT7981 | 512M | 128M SPI-NAND | 4*1G | AX3000 | √ |
CMCC RAX3000M算力版 | MT7981 | 512M | 64G EMMC | 4*1G | AX3000 | √ |
CMCC XR30 | MT7981 | 512M | 128M SPI-NAND | 4*1G | AX3000 | √ |
CMCC RAX3000Z增强版 | MT7981 | 512M | 64G EMMC | 4*1G | AX3000 | √ |
CMCC A10 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
NL-WR8103 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
NL-WR9103 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
荣耀 XT50/XU50/XC50 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
爱快 Q3000 | MT7981 | 512M | 128M SPI-NAND | 4*1G | AX3000 | × |
Nokia EA0326GMP | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
Routerich AX3000 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | √ |
锐捷 RG-X30E/RG-X30E PRO | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
安博通 ABT ASR3000 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
创联腾 CLT-R30B1 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
小米 AX3000T | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
小米 AX3000T v2 AN8855 | MT7981 | 256M | 128M SPI-NAND | 4*1G | AX3000 | × |
TP-Link XDR6086 | MT7986 | 512M | 128M SPI-NAND | 1G+2*2.5G | AX6000 | √ |
TP-Link XDR6088 | MT7986 | 512M | 128M SPI-NAND | 4*1G+2*2.5G | AX6000 | √ |
Banana Pi BPI-R3 Mini | MT7986 | 2G | 128M SPI-NAND + 8G EMMC | 2*2.5G | AX4200 | √ |
磊科 N60 | MT7986 | 256M | 128M SPI-NAND | 4*1G+2.5G | AX6000 | × |
GL.iNet GL-MT6000 | MT7986 | 1G | 8G EMMC | 4*1G+2*2.5G | AX6000 | √ |
红米 AX6000 | MT7986 | 512M | 128M SPI-NAND | 4*1G | AX6000 | × |
锐捷 RG-X60 PRO | MT7986 | 512M | 128M SPI-NAND | 4*1G+2.5G | AX6000 | × |
京东云 AX6000 百里 | MT7986 | 1G | 64G EMMC | 4*1G+2.5G | AX6000 | × |
合勤 EX5700 | MT7986 | 1G | 512M SPI-NAND | 3*1G+2*2.5G | AX6000 | √ |
固件源码
https://github.com/hanwckf/immortalwrt-mt798x
编译说明
- 拉取固件源码,参考immortalwrt的README搭建openwrt编译环境,并更新feeds
- 使用
defconfig
目录内预置的配置文件作为配置模板,
|
|
- 运行
make menuconfig
定制固件 - 运行
make V=s
开始编译固件,为了加快编译速度,可以使用make V=s -j$(nproc)
注意事项
- GL.iNet MT3000/MT2500的WAN/LAN口对应的GMAC不符合参考设计,为了保证HNAT加速功能正常,immortalwrt-mt798x最新源码中已按照mtk公版方案进行修正,上述两款路由器均使用2.5G口作为LAN口
- 不要在开启hwnat时使用主线的flow-offload,即不要启用turbo-acc的flow-offload加速方式
- 推荐选择WPA2-PSK/WPA3-PSK无线认证方式以获得最好的兼容性
- 由于mt798x无线驱动中继扫描所需时间较长,对应频段关联的无线设备可能会在扫描期间断开。因此在触发中继扫描时,要使用有线或者非扫描频段连接路由器操作
- 因未经测试,不推荐同时开启shortcut-fe
- 当前无线驱动的IGMP Snooping功能可能存在问题,新版源码已默认关闭此功能,较旧版本的固件可以手动在无线设置中禁用
IGMP Snooping
以避免出现问题
后期计划
- 加入mtk-wappd等高级扩展,更好支持802.11k/v/iapp等漫游功能
硬件加速功能说明
immortalwrt-mt798x支持mt798x的所有原厂有线、无线硬件加速特性,除此以外还支持以下功能
- 可通过luci直接设置hwnat PPE的启用数量、PPE加速阈值(当NAT连接速率大于阈值时会被硬件加速,默认是30pps,设置更小的值会使NAT连接更容易被加速)、macvlan支持(支持macvlan作为WAN的加速功能)、IPv6开关等
- 每个NAT连接需要占用2个Entry(进站和出站方向),当使用2个PPE时,由GMAC2进入的包将使用PPE1加速,其它情况下均使用PPE0加速。当路由器仅使用GMAC1时(如JCG Q30,CT3003等路由器),PPE1将不会起任何作用
- mt7981/mt7986均支持2个PPE,每个PPE有32768个Entry,当有线驱动使用ADMAv1时,每个PPE最多支持16384个Entry。按照mtk-sdk和最新openwrt主线的有线驱动,mt7981的ADMAv2存在不可修复的问题,immortalwrt-mt798x已参照上述源码将mt7981 ADMAv2回退至ADMAv1,mt7986不受影响
- immortalwrt-mt798x最新源码已支持外部网络设备(如USB3.0 5G模块、USB-RNDIS/ECM网卡等)到有线和无线的双向hwnat PPE加速,mtk-sdk原厂驱动不支持此功能。此功能可降低使用外部网络设备时的CPU占用率,实测mt7981在外接USB-RNDIS/ECM网卡时可跑满千兆速率(原厂只能达到300-500Mbps)。目前仅在RAX3000M中开启,MT7986机型暂未测试
- immortalwrt-mt798x支持硬件QoS的所有特性,该功能已集成到luci-app-eqos-mtk,具体用法参考luci里面的说明。为确保PPE尽可能接管所有的NAT连接,当开启硬件QoS时,PPE加速阈值将会被设置为5pps
- 同一个MBSSID内的无线客户端之间互传数据不支持硬件加速,不同MBSSID之间的无线客户端之间互传数据支持完全硬件加速
mtwifi无线配置工具说明
immortalwrt-mt798x早期采用的是mtk-sdk提供的luci-app-mtk和wifi-profile作为无线配置工具,并且在mtk-sdk基础上进行了大幅度的精简、修复、适配和汉化以尽可能满足日常使用需求。2023年12月,我开发了新的mtwifi-cfg配置工具,并配套做好了iwinfo和netifd相关支持,至此immortalwrt-mt798x可以选择两种完全不同的无线配置工具,特点分别如下:
- mtwifi-cfg:为mtwifi设计的无线配置工具,兼容openwrt原生luci和netifd,可调整无线驱动的参数较少,配置界面美观友好,由于是新开发的工具,可能存在一些问题
- luci-app-mtk:源自mtk-sdk提供的配置工具,需要配合wifi-profile脚本使用,可调整无线驱动的几乎所有参数,配置界面较为简陋
mtwifi-cfg与luci-app-mtk不能在固件里共存,编译时必须选择其中之一,目前最新源码已默认使用mtwifi-cfg作为无线配置工具,如需使用旧版luci-app-mtk,请选择defconfig/luci-app-mtk-deprecated
目录里的配置模板文件进行编译
mtwifi-cfg无线配置说明
mtwifi-cfg是我为mt798x无线平台新开发的配置工具,支持openwrt的luci和netifd-wireless无线控制界面,具有以下特点:
- 使用openwrt原版luci无线配置界面,配置方法非常接近原版openwrt
- 支持apcli中继功能
- 支持已连接站点信息显示(含apcli连接信息)
- 支持读取无线芯片实际发射功率
- 支持mtk原厂无线驱动可配置的大部分选项(含弱信号剔除等)
- 支持WPA-PSK/WPA2-PSK/WPA3-PSK/OWE无线认证方式,支持AP/APCLI工作模式,支持最多开启16个MBSSID
- 部分老旧的2.4G智能家居设备可能无法连接,请尝试以下无线设置:
- 使用WPA-PSK+AES/WPA2-PSK+AES认证加密方式
- 将2.4G无线设置为N模式
- 关闭2.4G的MU-MIMO功能(在较新的源码里,2.4G已经默认关闭MU-MIMO功能)
- 设置频宽为20MHz,并关闭强制40MHz开关
mtwifi-cfg配套源码
mtwifi-cfg及配套的补丁完全开源,具体参考immortalwrt-mt798x源码内下列目录
- package/mtk/applications/mtwifi-cfg
- package/mtk/applications/luci-app-mtwifi-cfg
- package/mtk/drivers/mt_wifi/patches
- package/network/utils/iwinfo
- package/network/config/netifd/patches
luci-app-mtk无线配置说明
luci-app-mtk来源于mtk-sdk,采用wifi-profile作为无线控制脚本,不支持openwrt的原版luci界面和netifd-wireless
- luci-app-mtk配置界面已基本汉化,可显示驱动版本、芯片温度、已连接客户端信息等,下面以MT7981为例
- 第一级MT7981右侧的配置按钮为chip_cfg,配置无线驱动基础参数,一般无需修改
- 第二级MT7981.1.1右侧的配置按钮为dev_cfg,可配置信道、国家代码等频段相关参数
- 第三级接口右侧的配置按钮为vif_cfg,可配置SSID、加密方式、无线中继扫描等
- 以
MT7981.1.1
为例,该设备代表MT7981的2.4G频段,其配置页面可以配置自动信道、国家代码、频宽、空间流、发射功率、波束成形等物理参数
- MBSSID以
ra0
为例,该vif虚拟接口代表MT7981 2.4G的第一个MBSSID,在配置页面可以配置加密方式、密码、AP隔离、隐藏SSID等参数
-
无线中继以
apcli0
为例,该vif虚拟接口代表MT7981的2.4G无线ApCli,可在其配置页面点击扫描无线网络
触发中继扫描功能中继扫描结束后,选择想要连接的上级AP并输入密码即可,WAN会自动更新为
apcli0
。 在禁用ApCli时,只需设置ApClient模式
为禁用
,WAN会恢复到默认的eth1