找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2262|回复: 3

[教程] immortalwrt-mt798x项目介绍[转hanwckf's blog]

[复制链接]
发表于 2024-9-4 15:33:00 | 显示全部楼层 |阅读模式
immortalwrt-mt798x基于immortalwrt项目,特点如下
基于immortalwrt 21.02分支,内核版本5.4,目前仅支持mt7981/mt7986& g. o  \; ^) ~8 p% I2 |% Z
使用mtk-openwrt-feeds提供的有线驱动、hnat驱动、内核补丁及配置工具,支持所有硬件加速特性
  ?7 W9 U) g- Z6 O9 ~3 k. Cmt7981/mt7986均支持两个ppe,每个ppe有32k Entry(当有线驱动使用ADMAv1时,每个PPE最大支持16k Entry)# ^; z& b8 |6 n! G: b+ b
使用mtwifi原厂无线驱动(目前默认使用7.6.6.1版本),默认开启802.11k,支持warp在内的所有加速特性  O9 A4 s, v$ K* i
新开发的mtwifi-cfg无线配置工具支持openwrt的原生luci界面以及netifd-wireless标准接口。除此以外,还支持mtk原厂提供的luci-app-mtk和wifi-profile
+ R' N+ Y& R* d
( s( \6 [( ~( D6 k7 c
固件源码编译说明
  • 拉取固件源码,参考immortalwrt的README搭建openwrt编译环境,并更新feeds
  • 使用defconfig目录内预置的配置文件作为配置模板,
    : y  x3 N' g' J, s* q' G
2 Y* ]0 V% K$ i; T5 l

) S% |" v2 q; k5 M! m! C/ A

' F' U2 G0 t0 z- C, _! t9 A& n# T1 ~& L
  1. <font face="宋体"># defconfig/luci-app-mtk-deprecated目录里的配置文件使用旧版luci-app-mtk作为无线配置工具
    7 I$ P, @" v1 z: Y
  2. ' n# D1 x; o/ n9 D9 O& J, |( n
  3. # 对于mt7981,使用mt7981-ax3000.config
    , `/ T0 o9 P) d0 Z+ k
  4. cp -f defconfig/mt7981-ax3000.config .config* k0 k' h0 f% O- j6 O0 l" G0 z

  5. ) Z9 H2 B% `4 f& M: K! Q) [
  6. # 对于mt7986,使用mt7986-ax6000.config, z9 x) g  [8 o3 U8 H8 Y" R; N
  7. #cp -f defconfig/mt7986-ax6000.config .config1 c3 `  y1 y; U, @; ?) @/ A

  8. & a3 G5 ?/ T; W/ a8 U( |: n% t
  9. # 对于256M内存的mt7986(如磊科N60),使用mt7986-ax6000-256m.config8 x: g5 t! M5 ~. ]
  10. #cp -f defconfig/mt7986-ax6000-256m.config .config
    5 T9 P  s! z( k3 f3 b
  11. ( o( \6 A5 c* [# f0 T& t
  12. # 对于AX4200方案的mt7986(如BPI-R3 MINI),使用mt7986-ax4200.config. V& ~$ o6 C) ?% ]* Z
  13. #cp -f defconfig/mt7986-ax4200.config .config</font>
复制代码
  • 运行make menuconfig定制固件
  • 运行make V=s开始编译固件,为了加快编译速度,可以使用make V=s -j$(nproc)7 l1 N- t# p: z) T. [/ _  C- {

% _$ L2 R) @5 ?" E5 M
( u% A) f5 L0 s

2 \! @2 S7 R0 j8 x! a3 P; W; a0 [: |" B3 w3 t* K$ C

1 `2 u) o. \7 W8 I/ h+ ]- _
% d5 G- F6 T5 Z" F( V7 H" q
注意事项
  • 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以避免出现问题* O+ h9 \9 l1 P. a' D8 p) @
    8 {/ R5 G* a0 y! I

0 r% S0 x/ b0 \4 x6 T9 {6 d5 N; U- Y

  P6 S- s) ?6 s  f
( B% c  c" [8 f) `, ~

* u9 H* z- R; z. R! B后期计划9 p* k1 D, j+ h, b3 P8 V: P
9 m5 N2 e5 D1 J, W" l! K$ K( J
  • 加入mtk-wappd等高级扩展,更好支持802.11k/v/iapp等漫游功能" p1 D, A, L  E* D) I

    4 e% x% y: U* t0 K# ]

) L7 _/ z  ?6 u+ j/ I2 r
" n7 ]" M$ G7 r
; s# A- D" p( w/ B( {9 i, E
硬件加速功能说明$ ]9 @  }6 W7 [2 U9 y
/ E( e1 s4 j& V) F1 v
/ B. U- ]2 m- D: ?

' g, B! Z( U  U8 M+ K
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之间的无线客户端之间互传数据支持完全硬件加速2 i$ b  G0 ]9 s1 [, a* j
    3 i+ n+ l! b: m3 A
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脚本使用,可调整无线驱动的几乎所有参数,配置界面较为简陋0 T! h6 j. j, ?

    + g% ]4 b4 F$ C( o3 Y1 @8 B
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智能家居设备可能无法连接,请尝试以下无线设置:
    ( Q$ B' ~: x2 r; l  \# r4 Z3 b
    7 O4 V! Y/ \& M6 G& S
    • 使用WPA-PSK+AES/WPA2-PSK+AES认证加密方式
    • 将2.4G无线设置为N模式
    • 关闭2.4G的MU-MIMO功能(在较新的源码里,无线设置为N模式时自动关闭MU-MIMO)
    • 设置频宽为20MHz,并关闭强制40MHz开关
      ' A2 Z0 o9 N8 i0 g) Q
      ; \; _8 d( x6 V6 c  W: M& G
    ) r  n5 ~: k4 V+ W: N* @6 R& ?1 D5 J* f
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+ n5 c) f: {* C1 F9 s
    2 n8 x) {7 \5 G* f
. w* O! W# ^2 s, x  l
luci-app-mtk无线配置说明
luci-app-mtk来源于mtk-sdk,采用wifi-profile作为无线控制脚本,不支持openwrt的原版luci界面和netifd-wireless
  • luci-app-mtk配置界面已基本汉化,可显示驱动版本、芯片温度、已连接客户端信息等,下面以MT7981为例$ a; |' m5 [) y( p* S0 L1 @
      b2 t% d) [: r# S( A( n: J6 e
    • 第一级MT7981右侧的配置按钮为chip_cfg,配置无线驱动基础参数,一般无需修改
    • 第二级MT7981.1.1右侧的配置按钮为dev_cfg,可配置信道、国家代码等频段相关参数
    • 第三级接口右侧的配置按钮为vif_cfg,可配置SSID、加密方式、无线中继扫描等
      - _" z# [0 u0 q8 ~; n" I3 J
      5 U$ k+ P# \) T' |" f
    ; H, \& ^/ c4 p
9 C8 Y" v) I8 N1 I+ h6 b, ?
  • 以MT7981.1.1为例,该设备代表MT7981的2.4G频段,其配置页面可以配置自动信道、国家代码、频宽、空间流、发射功率、波束成形等物理参数4 p1 p5 u0 `0 h5 T6 G9 U$ M4 w6 B
    , @6 r  z) K+ W9 s" r7 ?1 D& d
/ V7 C3 C- m# G% t* p  p1 p/ O( y0 H
  • MBSSID以ra0为例,该vif虚拟接口代表MT7981 2.4G的第一个MBSSID,在配置页面可以配置加密方式、密码、AP隔离、隐藏SSID等参数
    4 |+ l* [- |  R; Z- R
    ( R& [( i: ]* G: }

) u1 \/ M2 K2 s5 ]0 R3 l
  • 无线中继以apcli0为例,该vif虚拟接口代表MT7981的2.4G无线ApCli,可在其配置页面点击扫描无线网络触发中继扫描功能

    % \! X% _" L% _# X7 O& K. l
    中继扫描结束后,选择想要连接的上级AP并输入密码即可,WAN会自动更新为apcli0。 在禁用ApCli时,只需设置ApClient模式为禁用,WAN会恢复到默认的eth1
    2 F! B0 E2 i; ?1 S' w7 g

$ o+ L+ Y  l5 q1 a% M

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2024-9-5 12:49:06 | 显示全部楼层
家里几个路由都刷了immortalwrt固件,好用。
, `3 `- `6 M: S可以到这里直接下载成品固件,输入对应路由型号即可:https://firmware-selector.immortalwrt.org/
发表于 2024-9-5 16:14:20 | 显示全部楼层
你这截图哪来的,字体怎么这么骚...' G' `3 z4 B* k5 o* P, @
; D' p4 o; C3 D+ g# k3 t1 r

# k4 x0 \( `, m# B- D二○二四年九月五日
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-6-15 16:29 , Processed in 0.024792 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表