Repository navigation
v0.3.0-beta — experimental Wi-Fi 6 (802.11ax), fixes joins on slow APs
Pre-releaseThis beta adds opt-in 802.11ax (HE) support. It also fixes joins that timed out
on access points that are slow to answer. It is still experimental:
- It is developed on one laptop (Lenovo Legion Slim 5 16APH8, RZ616, macOS 26.7.1).
- 802.11ax was tested by @abhinavchandhu5-droid on a custom-built desktop
(Ryzen 5 5600, RTX 3060) with an MT7922 PCIe card, on macOS 15.8.1 and a
Wi-Fi 6 mesh AP. Thank you for testing!
Downloads
- AirportMtkWlan-Sequoia-v0.3.0-beta.zip: native Wi-Fi menu, for macOS 15 Sequoia.
- AirportMtkWlan-Tahoe-v0.3.0-beta.zip: native Wi-Fi menu, for macOS 26 Tahoe.
- SimpleMtkWlan-v0.3.0-beta.zip: Ethernet-style; join with
mtkctl. - mtkctl-v0.3.0-beta.zip: command-line client for both kexts.
Both AirportMtkWlan zips contain a kext named AirportMtkWlan.kext. Use the one
for your macOS version: a Sequoia build loads on Tahoe but never attaches. Load
only one kext.
Changes since v0.2.1
-
Experimental 802.11ax (HE), off by default. Add the boot-arg
amtk_he=1
to offer HE when joining. When the AP agrees, the driver sets the firmware up
the way Linux mt7921 does:- HE MCS 0-11, 40/80 MHz, LDPC;
- no 160 MHz, no beamforming, no TWT, no 6 GHz.
To go back to 802.11ac without rebooting, run
mtkctl knob 0x1002; it takes
effect from the next join. -
Fixed joins timing out in the association step. The driver put the
firmware into deep sleep right after sending the Association Request. Mesh
and other APs that take ~15 ms to answer never had their reply seen, so every
join timed out, with or without HE. The firmware now stays awake until the
link is up. This fix applies with and withoutamtk_he=1. -
Three net80211 fixes found along the way:
- The HE capabilities element was sent with a garbage length.
- The channel width could be widened to 160 MHz from the AP's capabilities
alone. - Two 802.11ax 2-stream rate rows were 2× and 4× too high.
-
New
mtkctl sta: shows the current link (mode, channel, width, RSSI, MCS,
rate, BSSID). It leaves out the SSID, so the output is safe to paste into a
bug report.
Known problems
- 802.11ax has been tested on very few APs. If HE causes trouble, remove
amtk_he=1or runmtkctl knob 0x1002, then report the output of
mtkctl staandmtkctl log. - macOS link-quality reports still carry no RSSI.
- Sleep/wake is not tested.
- No WPA3-only (SAE) networks, no 160 MHz, no 6 GHz.
For installation and troubleshooting, see the README.
Built from eb9024b (Debug, x86_64, unsigned). The driver code is the same as
81e4232, the build @abhinavchandhu5-droid tested. Checksums are in SHA256SUMS.txt.