802.11ax card support update

Hi @mcbridematt

Any updates for recommended 802.11ax including 6E cards?

The last note in the documentation still experimental, 802.11ax now seems to be more common in OpenWRT now.

Thanks in advance.

The best ones to use are based on the MediaTek MT7915/MT7916 chipset, like these ones:

The Qualcomm/ath11k is a bit more painful. It wasn’t possible to run them on OpenWrt 22.03 without a lot of backporting.

With OpenWrt versions with 5.15 (23.05) and 6.1 (main/master) branch coming it’s now a better time to revisit.

The QCN9074-based cards also appeared to have firmware issues last time I tried them.
The client version (QCA6390) is much more stable, but only capable of 2x2.

1 Like

I will always be curious as to how well the mt79 supports fq_codel nowadays. It should be native, not requireing configuration, and support RFC3168 style ecn…

Hi @mcbridematt

I got one of the ones from AsiaRF, but I have been unable to get it working.

I am running muvirt 22.03.4+traverse r20123-38ccc47687 as the bare metal.

I have tried using passthrough on the following VM:
23.05.0rc2 (Kernel 5.15.118) and OpenWrt SNAPSHOT r23459-a0ae7a50e0 (Kernel 6.1.5)

I have installed driver kmod-mt7915e

Device as detected in muvirt
0001:03:00.0 Network controller: MEDIATEK Corp. Device 7906

Kernel log from 23.05.0rc2:
[ 4.499279] mt7915e 0000:00:07.0: enabling device (0000 → 0002)
[ 4.626455] mt7915e 0000:00:07.0: Direct firmware load for mediatek/mt7916_rom_patch.bin failed with error -2
[ 4.628146] mt7915e 0000:00:07.0: Falling back to sysfs fallback for: mediatek/mt7916_rom_patch.bin
[ 4.643827] mt7915e: probe of 0000:00:07.0 failed with error -12

Kernel log from OpenWrt SNAPSHOT r23459-a0ae7a50e0 (Kernel 6.1.5)
[ 4.435252] mt7915e 0000:00:07.0: enabling device (0000 → 0002)
[ 24.822156] mt7915e 0000:00:07.0: Message 00000010 (seq 1) timeout
[ 24.823555] mt7915e 0000:00:07.0: Failed to get patch semaphore
[ 24.826406] mt7915e: probe of 0000:00:07.0 failed with error -11

Should I just run the OpenWRT as bare metal instead? or am I missing something any help would be great.


I’ve got it working in 23.05.0rc2, but not well. I checked my invoice from AsiaRF and selected the related drivers. I configure the radios but it fails to start broadcasting SSID.
daemon.err hostapd: nl80211 driver initialization failed.
daemon.notice hostapd: phy0-ap0: CTRL-EVENT-TERMINATING

I looked at my invoice my card is WiFi6E 3000 802.11ax G-band 2T2R and A-band 3T3R 2ss Dual Bands Dual Concurrents mPCIe Card AW7916-NPD

I have the following installed on 23.05.0.rc2
kmod-mt76-connac - 5.15.118+2023-05-13-969b7b5e-1
kmod-mt76-core - 5.15.118+2023-05-13-969b7b5e-1
kmod-mt7615-common - 5.15.118+2023-05-13-969b7b5e-1
kmod-mt7615e - 5.15.118+2023-05-13-969b7b5e-1
kmod-mt7622-firmware - 5.15.118+2023-05-13-969b7b5e-1
kmod-mt7915-firmware - 5.15.118+2023-05-13-969b7b5e-1
kmod-mt7915e - 5.15.118+2023-05-13-969b7b5e-1
kmod-mt7916-firmware - 5.15.118+2023-05-13-969b7b5e-1

I installed the following packages on the snapshot
kmod-mt76-connac - 6.1.35+2023-06-27-f36b9216-1
kmod-mt76-core - 6.1.35+2023-06-27-f36b9216-1
kmod-mt7915e - 6.1.35+2023-06-27-f36b9216-1
kmod-mt7916-firmware - 6.1.35+2023-06-27-f36b9216-1

Update 2: It’s working with 23.05.0RC2 now, though the throughput is very low and stops.

I ordered a couple of AW7916-NPD, but am not able to test them until I’m back in the office later this month.

Is the throughput problem on 2.4GHz or 5/6GHz?

Some things to check, these always trip me up:

  • Regulatory domain / country code set correctly

  • 2.4 and 5/6GHz bands correctly set to the right virtual device. One device (usually first one in OpenWrt) will always be 2.4GHz, the other 5/6GHz. If you kept the same config from another card, it might not select correctly (see below)

  • 160MHz carrier width (if offered) probably won’t work, try 40 or 80MHz in a non-DFS channel first.

  • Try separate SSID for 2.4GHz.

If you have a previous WiFi config from ath10k etc. the best way to get a good default config is to remove /etc/config/wireless and reboot so it generates a new one.

Have not tried passthrough of a mt76 yet, but I’ll make a note.

1 Like

I’ve tried on 2.4, 5 and 6 GHz.

Able to start it on 2.4 and 5GHz.

I removed all the drivers deleted the packages and started again.

I’m getting very impressive download speeds now, but my upload is bad. Only about 35 Megabits.
Trying different programs yield different results :upside_down_face:

I’ll try using the wireless in virt.

From wireless config:
config wifi-device ‘radio1’
option type ‘mac80211’
option path ‘pci0000:00/0000:00:07.0+1’
option channel ‘36’
option band ‘5g’
option htmode ‘HE80’
option cell_density ‘0’
option country ‘AU’

I’ve got two AW7916-NPD cards now, installed in different environments.
On 5GHz they seem to be ok, I still need to setup a device to test 6GHz.

I did notice that the card may do a DFS scan (about 30 seconds) and this is not reported in LuCI, only the system log.
If you choose any other channel than the start (36) or end (149) of the 5GHz band, you will need to wait for the card to complete the scan before it actually starts broadcasting the SSID.

Just curious, in LuCI (or iw station dump), what is the RX rate (top line) for the client when it’s uploading? Is it very different from the TX (to client) rate?

For example:

I’ve put Debian bookworm on and still getting errors.

Might try resetting the card, as I haven’t successfully started the driver recently.

I’ve finally got the driving loaded again, in Debian, but I suspect the same will work for openwrt.
Yet to test the speeds of this driver and how to setup an access point in Debian, just having trouble with passing through the device from Debian Proxmox to the OpenWRT guest, will post about this in the other Proxmox thread.

There appears to be a long thread on the openwrt github in regards to this driver, still yet to be officially resolved but a work around is available.

Credits to csyuanc for creating a working driver.

I now have a client machine (as opposed to Ten64’s with WiFi cards) with a 6e card installed, so I’m more motivated to get this working!

To get 6e working on a OpenWrt snapshot build with a AW9716-NPD I had to do this:

  1. Install hostapd-openssl (wpad itself will not expose WPA3)
  2. Change country code (AU in my case), otherwise 6G band selection will not be exposed by LuCI
  3. Set encryption mode to WPA3-SAE (6GHz does not support earlier modes)
  4. Set 802.11w Management Frame Protection = Required

Or manually:

$ cat /etc/config/wireless
config wifi-device 'radio1'
        option type 'mac80211'
        option path 'soc/3500000.pcie/pci0001:00/0001:00:00.0/0001:01:00.0/0001:02:01.0/0001:03:00.0+1'
        option channel '1'
        option band '6g'
        option htmode 'HE160'
        option country 'AU'
        option cell_density '0'

config wifi-iface 'wifinet1'
        option device 'radio1'
        option mode 'ap'
        option ssid 'OpenWrt6etest'
        option encryption 'sae'
        option key 'XXXXXXX'
        option network 'lan'

I also had to upgrade the WiFi driver on my client machine - the driver version that Windows autoinstalled for my MediaTek RZ616 was from 2022 did not enable 6GHz for Australia. I manually downloaded the latest ( and it does now.

On another Ten64 with a Intel AX210 (OpenWrt snapshot as well), operating as client only, this works:

  1. Install wpa-supplicant-openssl
  2. Change country code so 6GHz is enabled.
  3. Manually configure the SSID as client. The 6GHz SSID simply does not appear in LuCI scan results (but does with iw)
1 Like