Skip to content

Intel BE200NGW WiFi 7 M.2 Card #670

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
geerlingguy opened this issue Sep 11, 2024 · 17 comments
Open

Intel BE200NGW WiFi 7 M.2 Card #670

geerlingguy opened this issue Sep 11, 2024 · 17 comments

Comments

@geerlingguy
Copy link
Owner

geerlingguy commented Sep 11, 2024

Intel's BE200NGW WiFi 7 M.2 Card is an inexpensive gateway into fast up-to-5 Gbps WiFi, using the 360 MHz channel width afforded on the 6 GHz band...

Image

I have ordered a card and hope to test it soon!

Related issues:

@geerlingguy
Copy link
Owner Author

Note: A few other users, like @thewade and @wdebowski, have been testing the BE200 on Pi 5 already.

See: #120 (comment)

@geerlingguy
Copy link
Owner Author

geerlingguy commented Oct 5, 2024

@thewade got it working on Ubuntu 24.04, and iwlwifi is included out of the box. (So no need for a kernel recompile.)

But on Pi OS, I don't think it is (I can check). If not, have to recompile the kernel with iwlwifi enabled:

 Symbol: IWLWIFI [=n]                                                                                            │   
  │ Type  : tristate                                                                                                │   
  │ Prompt: Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)                           │   
  │   Location:                                                                                                     │   
  │     -> Device Drivers                                                                                           │   
  │       -> Network device support (NETDEVICES [=y])                                                               │   
  │         -> Wireless LAN (WLAN [=y])                                                                             │   
  │ (1)       -> Intel devices (WLAN_VENDOR_INTEL [=y])                                                             │   
  │   Defined at drivers/net/wireless/intel/iwlwifi/Kconfig:2                                                       │   
  │   Depends on: NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_INTEL [=y] && PCI [=y] && HAS_IOMEM [=y] && CFG80211  │   
  │   Selects: FW_LOADER [=y] 

Then you can check dmesg with the WiFi chip connected (dmesg | grep iwlwifi, it should spit out what firmware it's looking for—I think. Otherwise glance inside the git tree for linux-firmware and find the right files.

For example, if you need version 89:

wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-ty-a0-gf-a0-89.ucode
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-ty-a0-gf-a0.pnvm

Stash those two files inside /lib/firmware and reboot.

More info about Intel WiFi firmware: https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi https://wireless.docs.kernel.org/en/latest/en/users/drivers/iwlwifi.html (note that you can grab more bleeding-edge firmware from that site, it feeds the linux-firmware repo).

@thewade
Copy link

thewade commented Oct 5, 2024

I saw your live stream and you mentioned you might want to use the Intel chip in access point mode with 6GHz.

Unfortunately, that might prove to be tricky due to the way regulatory works with Intel cards. In order to determine if you are in a regulatory region that supports the 6GHz band it scans nearby networks to pull the country info from them. The term they use for this is Location Aware Regulatory.

When using the chip in access point mode however it cannot do the scan and the 6GHz band remains locked.

Someone proposed a patch that allows for the scan but it hasn’t been accepted:
http://lists.infradead.org/pipermail/hostap/2024-July/042824.html

Even with the fix it isn’t great solution, cause if there are no nearby wireless networks broadcasting the country info then it will never determine the regulatory region.

I have never tried to build an OpenWRT access point myself. The OpenWRT community might have other tricks and hacks to get around this.

@geerlingguy
Copy link
Owner Author

@BennyE posted some info for getting the card up and running in #690, and the card is now up on the site: https://pipci.jeffgeerling.com/cards_network/intel-be200-wifi-7.html

@Archfx
Copy link

Archfx commented Feb 23, 2025

I was able to get the most out of BE200NGW with CM4 on Debian. I am using RaspAP for the router functionalities. So far so good including the Wifi repeater mode (WiFi Client mode and AP mode at once).

I have documented my process here in my blog if anyone is curious.

@geerlingguy
Copy link
Owner Author

geerlingguy commented Mar 3, 2025

I've also noticed over in #709 that the iwlwifi module is now included in Pi OS by default, at least as of January this year, so no need for a kernel recompile, just need the firmware!

See: raspberrypi/linux#6497

A few other notes testing the BE200 on a Pi 5 with the latest Pi OS:

@geerlingguy
Copy link
Owner Author

I've updated the BE200 page with instructions for getting it going more easily with the latest version of Pi OS: https://pipci.jeffgeerling.com/cards_network/intel-be200-wifi-7.html

@geerlingguy
Copy link
Owner Author

FYI, this card apparently supports PCIe Gen 4x1 speeds. I benchmarked my connection on Gen 2x1 (5 GT/s, in linked issue on the Waveshare card, at 1.2-1.4 Gbps), and then again with PCIe Gen 3 (via dtparam=pciex1_gen=3 in boot config)... and now I'm touching on 2 Gbps!

$ iperf3 -c 10.0.2.15
Connecting to host 10.0.2.15, port 5201
[  5] local 10.0.2.245 port 33668 connected to 10.0.2.15 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   194 MBytes  1.63 Gbits/sec    0   3.13 MBytes       
[  5]   1.00-2.00   sec   219 MBytes  1.84 Gbits/sec    0   3.13 MBytes       
[  5]   2.00-3.00   sec   220 MBytes  1.85 Gbits/sec    0   3.32 MBytes       
[  5]   3.00-4.00   sec   220 MBytes  1.85 Gbits/sec    0   3.32 MBytes       
[  5]   4.00-5.00   sec   211 MBytes  1.77 Gbits/sec    0   3.32 MBytes       
[  5]   5.00-6.00   sec   206 MBytes  1.73 Gbits/sec    0   3.54 MBytes       
[  5]   6.00-7.00   sec   219 MBytes  1.84 Gbits/sec    0   3.54 MBytes       
[  5]   7.00-8.00   sec   220 MBytes  1.85 Gbits/sec    0   3.54 MBytes       
[  5]   8.00-9.00   sec   238 MBytes  1.99 Gbits/sec    0   3.54 MBytes       
[  5]   9.00-10.00  sec   238 MBytes  1.99 Gbits/sec    0   3.54 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  2.13 GBytes  1.83 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  2.13 GBytes  1.83 Gbits/sec                  receiver

Even bidirectional gets consistently over 1 Gbps with PCIe Gen 3 speeds:

$ iperf3 -c 10.0.2.15 --bidir
Connecting to host 10.0.2.15, port 5201
[  5] local 10.0.2.245 port 33504 connected to 10.0.2.15 port 5201
[  7] local 10.0.2.245 port 33512 connected to 10.0.2.15 port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec   171 MBytes  1.44 Gbits/sec    0   2.79 MBytes       
[  7][RX-C]   0.00-1.00   sec  18.0 MBytes   151 Mbits/sec                  
[  5][TX-C]   1.00-2.00   sec   180 MBytes  1.51 Gbits/sec    0   2.97 MBytes       
[  7][RX-C]   1.00-2.00   sec  35.3 MBytes   296 Mbits/sec                  
[  5][TX-C]   2.00-3.00   sec   124 MBytes  1.04 Gbits/sec    0   2.97 MBytes       
[  7][RX-C]   2.00-3.00   sec  57.1 MBytes   480 Mbits/sec                  
[  5][TX-C]   3.00-4.00   sec   104 MBytes   870 Mbits/sec    0   2.97 MBytes       
[  7][RX-C]   3.00-4.00   sec  72.3 MBytes   607 Mbits/sec                  
[  5][TX-C]   4.00-5.00   sec   149 MBytes  1.25 Gbits/sec    0   3.37 MBytes       
[  7][RX-C]   4.00-5.00   sec  59.6 MBytes   500 Mbits/sec                  
[  5][TX-C]   5.00-6.00   sec   168 MBytes  1.41 Gbits/sec    0   3.37 MBytes       
[  7][RX-C]   5.00-6.00   sec  56.1 MBytes   471 Mbits/sec                  
[  5][TX-C]   6.00-7.00   sec   156 MBytes  1.31 Gbits/sec    0   3.37 MBytes       
[  7][RX-C]   6.00-7.00   sec  65.6 MBytes   550 Mbits/sec                  
[  5][TX-C]   7.00-8.00   sec   161 MBytes  1.35 Gbits/sec    0   3.37 MBytes       
[  7][RX-C]   7.00-8.00   sec  62.7 MBytes   526 Mbits/sec                  
[  5][TX-C]   8.00-9.00   sec   156 MBytes  1.31 Gbits/sec    0   3.37 MBytes       
[  7][RX-C]   8.00-9.00   sec  65.2 MBytes   547 Mbits/sec                  
[  5][TX-C]   9.00-10.00  sec   155 MBytes  1.30 Gbits/sec    0   3.37 MBytes       
[  7][RX-C]   9.00-10.00  sec  69.5 MBytes   583 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  1.49 GBytes  1.28 Gbits/sec    0             sender
[  5][TX-C]   0.00-10.00  sec  1.49 GBytes  1.28 Gbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec   563 MBytes   472 Mbits/sec                  sender
[  7][RX-C]   0.00-10.00  sec   562 MBytes   471 Mbits/sec                  receiver

iperf Done.

Very impressive!

@geerlingguy
Copy link
Owner Author

geerlingguy commented Mar 11, 2025

Checking monitor mode at Ryan Ziolko's suggestion:

# ip link set wlan0 down
# iw wlan0 set type monitor
# ip link set wlan0 up

# iw reg get
global
country US: DFS-FCC
	(902 - 904 @ 2), (N/A, 30), (N/A)
	(904 - 920 @ 16), (N/A, 30), (N/A)
	(920 - 928 @ 8), (N/A, 30), (N/A)
	(2400 - 2472 @ 40), (N/A, 30), (N/A)
	(5150 - 5250 @ 80), (N/A, 23), (N/A), AUTO-BW
	(5250 - 5350 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
	(5470 - 5730 @ 160), (N/A, 24), (0 ms), DFS
	(5730 - 5850 @ 80), (N/A, 30), (N/A), AUTO-BW
	(5850 - 5895 @ 40), (N/A, 27), (N/A), NO-OUTDOOR, AUTO-BW, PASSIVE-SCAN
	(5925 - 7125 @ 320), (N/A, 12), (N/A), NO-OUTDOOR, PASSIVE-SCAN
	(57240 - 71000 @ 2160), (N/A, 40), (N/A)

phy#0 (self-managed)
country US: DFS-UNSET
	(2402 - 2437 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-80MHZ, NO-160MHZ
	(2422 - 2462 @ 40), (6, 22), (N/A), AUTO-BW, NO-80MHZ, NO-160MHZ
	(2447 - 2482 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-80MHZ, NO-160MHZ
	(5170 - 5190 @ 160), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS
	(5190 - 5210 @ 160), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS
	(5210 - 5230 @ 160), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS
	(5230 - 5250 @ 160), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS
	(5250 - 5270 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, PASSIVE-SCAN
	(5270 - 5290 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, PASSIVE-SCAN
	(5290 - 5310 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, PASSIVE-SCAN
	(5310 - 5330 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, PASSIVE-SCAN
	(5490 - 5510 @ 240), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, PASSIVE-SCAN
	(5510 - 5530 @ 240), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, PASSIVE-SCAN
	(5530 - 5550 @ 240), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, PASSIVE-SCAN
	(5550 - 5570 @ 240), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, PASSIVE-SCAN
	(5570 - 5590 @ 240), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, PASSIVE-SCAN
	(5590 - 5610 @ 240), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, PASSIVE-SCAN
	(5610 - 5630 @ 240), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, PASSIVE-SCAN
	(5630 - 5650 @ 240), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, PASSIVE-SCAN
	(5650 - 5670 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, PASSIVE-SCAN
	(5670 - 5690 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
	(5690 - 5710 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, PASSIVE-SCAN
	(5710 - 5730 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
	(5735 - 5755 @ 160), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS
	(5755 - 5775 @ 160), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS
	(5775 - 5795 @ 160), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS
	(5795 - 5815 @ 160), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS
	(5815 - 5835 @ 160), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS
	(5835 - 5855 @ 160), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(5855 - 5875 @ 160), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(5875 - 5895 @ 160), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(5945 - 5965 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(5965 - 5985 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(5985 - 6005 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6005 - 6025 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6025 - 6045 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6045 - 6065 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6065 - 6085 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6085 - 6105 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6105 - 6125 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6125 - 6145 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6145 - 6165 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6165 - 6185 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6185 - 6205 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6205 - 6225 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6225 - 6245 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6245 - 6265 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6265 - 6285 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6285 - 6305 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6305 - 6325 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6325 - 6345 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6345 - 6365 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6365 - 6385 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6385 - 6405 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6405 - 6425 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6425 - 6445 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6445 - 6465 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6465 - 6485 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6485 - 6505 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6505 - 6525 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6525 - 6545 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6545 - 6565 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6565 - 6585 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6585 - 6605 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6605 - 6625 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6625 - 6645 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6645 - 6665 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6665 - 6685 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6685 - 6705 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6705 - 6725 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6725 - 6745 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6745 - 6765 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6765 - 6785 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6785 - 6805 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6805 - 6825 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6825 - 6845 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6845 - 6865 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6865 - 6885 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6885 - 6905 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6905 - 6925 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6925 - 6945 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6945 - 6965 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(6965 - 6985 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(6985 - 7005 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(7005 - 7025 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(7025 - 7045 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
	(7045 - 7065 @ 1180), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
	(7065 - 7085 @ 40), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, NO-80MHZ, NO-160MHZ, PASSIVE-SCAN
	(7085 - 7105 @ 40), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-80MHZ, NO-160MHZ, PASSIVE-SCAN
	(7105 - 7125 @ 20), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-HT40PLUS, NO-80MHZ, NO-160MHZ, PASSIVE-SCAN

Full capabilities via iw list are below - click the thing to expand:

Click to show ALL the adapter details in Linux on the Pi via `iw list`
# iw list
Wiphy phy0
	wiphy index: 0
	max # scan SSIDs: 20
	max scan IEs length: 301 bytes
	max # sched scan SSIDs: 20
	max # match sets: 8
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports RSN-IBSS.
	Device supports AP-side u-APSD.
	Device supports T-DLS.
	Supported Ciphers:
		* WEP40 (00-0f-ac:1)
		* WEP104 (00-0f-ac:5)
		* TKIP (00-0f-ac:2)
		* CCMP-128 (00-0f-ac:4)
		* GCMP-128 (00-0f-ac:8)
		* GCMP-256 (00-0f-ac:9)
		* CMAC (00-0f-ac:6)
		* GMAC-128 (00-0f-ac:11)
		* GMAC-256 (00-0f-ac:12)
	Available Antennas: TX 0x3 RX 0x3
	Configured Antennas: TX 0x3 RX 0x3
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * AP/VLAN
		 * monitor
		 * P2P-client
		 * P2P-GO
		 * P2P-device
	Band 1:
		Capabilities: 0x19ef
			RX LDPC
			HT20/HT40
			SM Power Save disabled
			RX HT20 SGI
			RX HT40 SGI
			TX STBC
			RX STBC 1-stream
			Max AMSDU length: 7935 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 4 usec (0x05)
		HT Max RX data rate: 300 Mbps
		HT TX/RX MCS rate indexes supported: 0-15
		HE Iftypes: managed
			HE MAC Capabilities (0x78019a30abc0):
				+HTC HE Supported
				Trigger Frame MAC Padding Duration: 2
				Multi-TID Aggregation Support: 7
				Broadcast TWT
				32-bit BA Bitmap
				OM Control
				Maximum A-MPDU Length Exponent: 3
				RX Control Frame to MultiBSS
				A-MSDU in A-MPDU
				Multi-TID Aggregation TX: 7
				UL 2x996-Tone RU
			HE PHY Capabilities: (0x023f4e09fd098c160ffc01):
				HE40/2.4GHz
				Punctured Preamble RX: 15
				Device Class: 1
				LDPC Coding in Payload
				NDP with 4x HE-LTF and 3.2us GI
				STBC Tx <= 80MHz
				STBC Rx <= 80MHz
				Full Bandwidth UL MU-MIMO
				DCM Max Constellation: 1
				DCM Max Constellation Rx: 1
				SU Beamformee
				Beamformee STS <= 80Mhz: 7
				Beamformee STS > 80Mhz: 7
				Sounding Dimensions <= 80Mhz: 1
				Sounding Dimensions > 80Mhz: 1
				Triggered SU Beamforming Feedback
				Triggered MU Beamforming Feedback
				PPE Threshold Present
				Power Boost Factor ar
				HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
				Max NC: 2
				HE ER SU PPDU 4x HE-LTF 0.8us GI
				20MHz in 40MHz HE PPDU 2.4GHz
				20MHz in 160/80+80MHz HE PPDU
				80MHz in 160/80+80MHz HE PPDU
				TX 1024-QAM
				RX 1024-QAM
				RX Full BW SU Using HE MU PPDU with Compression SIGB
				RX Full BW SU Using HE MU PPDU with Non-Compression SIGB
			HE RX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			PPE Threshold 0x61 0x1c 0xc7 0x71 
		EHT Iftypes: managed
			EHT MAC Capabilities (0x8200):
				EHT OM Control Supported
			EHT PHY Capabilities: (0xdc1f4920184e0000):
				242-tone RU in BW wider than 20MHz Supported
				NDP With  EHT-LTF And 3.2 µs GI
				Partial Bandwidth UL MU-MIMO
				SU Beamformee
				Beamformee SS (80MHz): 7
				Beamformee SS (160MHz): 7
				Number Of Sounding Dimensions (80MHz): 1
				Number Of Sounding Dimensions (160MHz): 1
				Number Of Sounding Dimensions (320MHz): 1
				Triggered SU Beamforming Feedback
				EHT MU PPDU With 4 EHT-LTF And 0.8 µs GI
				Max Nc: 1
				Tx 1024-QAM And 4096-QAM < 242-tone RU
				Rx 1024-QAM And 4096-QAM < 242-tone RU
				PPE Thresholds Present
				Maximum Number Of Supported EHT-LTFs: 1
			EHT MCS/NSS: (0x22222200000000000000000000):
			EHT bw=20 MHz, max NSS for MCS 0-7: Rx=2, Tx=2
			EHT bw=20 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
			EHT bw=20 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
			EHT bw=20 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT PPE Thresholds 0xc1 0x0e 0xe0 
		HE Iftypes: AP
			HE MAC Capabilities (0x78011a100000):
				+HTC HE Supported
				Trigger Frame MAC Padding Duration: 2
				Multi-TID Aggregation Support: 7
				Broadcast TWT
				OM Control
				Maximum A-MPDU Length Exponent: 3
			HE PHY Capabilities: (0x02200e090009800401c400):
				HE40/2.4GHz
				LDPC Coding in Payload
				NDP with 4x HE-LTF and 3.2us GI
				STBC Tx <= 80MHz
				STBC Rx <= 80MHz
				DCM Max Constellation: 1
				DCM Max Constellation Rx: 1
				Sounding Dimensions <= 80Mhz: 1
				Sounding Dimensions > 80Mhz: 1
				PPE Threshold Present
				HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
				HE ER SU PPDU 4x HE-LTF 0.8us GI
				TX 1024-QAM
			HE RX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			PPE Threshold 0x61 0x1c 0xc7 0x71 
		EHT Iftypes: AP
			EHT MAC Capabilities (0x8200):
				EHT OM Control Supported
			EHT PHY Capabilities: (0x0c00000000480000):
				242-tone RU in BW wider than 20MHz Supported
				NDP With  EHT-LTF And 3.2 µs GI
				PPE Thresholds Present
				Maximum Number Of Supported EHT-LTFs: 1
			EHT MCS/NSS: (0x22222200000000000000000000):
			EHT bw=20 MHz, max NSS for MCS 0-7: Rx=2, Tx=2
			EHT bw=20 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
			EHT bw=20 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
			EHT bw=20 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT PPE Thresholds 0xc1 0x0e 0xe0 
		Bitrates (non-HT):
			* 1.0 Mbps
			* 2.0 Mbps (short preamble supported)
			* 5.5 Mbps (short preamble supported)
			* 11.0 Mbps (short preamble supported)
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 2412 MHz [1] (22.0 dBm)
			* 2417 MHz [2] (22.0 dBm)
			* 2422 MHz [3] (22.0 dBm)
			* 2427 MHz [4] (22.0 dBm)
			* 2432 MHz [5] (22.0 dBm)
			* 2437 MHz [6] (22.0 dBm)
			* 2442 MHz [7] (22.0 dBm)
			* 2447 MHz [8] (22.0 dBm)
			* 2452 MHz [9] (22.0 dBm)
			* 2457 MHz [10] (22.0 dBm)
			* 2462 MHz [11] (22.0 dBm)
			* 2467 MHz [12] (22.0 dBm)
			* 2472 MHz [13] (22.0 dBm)
			* 2484 MHz [14] (disabled)
	Band 2:
		Capabilities: 0x19ef
			RX LDPC
			HT20/HT40
			SM Power Save disabled
			RX HT20 SGI
			RX HT40 SGI
			TX STBC
			RX STBC 1-stream
			Max AMSDU length: 7935 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 4 usec (0x05)
		HT Max RX data rate: 300 Mbps
		HT TX/RX MCS rate indexes supported: 0-15
		VHT Capabilities (0x039071f6):
			Max MPDU length: 11454
			Supported Channel Width: 160 MHz
			RX LDPC
			short GI (80 MHz)
			short GI (160/80+80 MHz)
			TX STBC
			SU Beamformee
			MU Beamformee
		VHT RX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT RX highest supported: 0 Mbps
		VHT TX MCS set:
			1 streams: MCS 0-9
			2 streams: MCS 0-9
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT TX highest supported: 0 Mbps
		VHT extended NSS: supported
		HE Iftypes: managed
			HE MAC Capabilities (0x78018a30abc0):
				+HTC HE Supported
				Trigger Frame MAC Padding Duration: 2
				Multi-TID Aggregation Support: 7
				Broadcast TWT
				32-bit BA Bitmap
				OM Control
				Maximum A-MPDU Length Exponent: 1
				RX Control Frame to MultiBSS
				A-MSDU in A-MPDU
				Multi-TID Aggregation TX: 7
				UL 2x996-Tone RU
			HE PHY Capabilities: (0x0c3f4e09fd098c160ffc01):
				HE40/HE80/5GHz
				HE160/5GHz
				Punctured Preamble RX: 15
				Device Class: 1
				LDPC Coding in Payload
				NDP with 4x HE-LTF and 3.2us GI
				STBC Tx <= 80MHz
				STBC Rx <= 80MHz
				Full Bandwidth UL MU-MIMO
				DCM Max Constellation: 1
				DCM Max Constellation Rx: 1
				SU Beamformee
				Beamformee STS <= 80Mhz: 7
				Beamformee STS > 80Mhz: 7
				Sounding Dimensions <= 80Mhz: 1
				Sounding Dimensions > 80Mhz: 1
				Triggered SU Beamforming Feedback
				Triggered MU Beamforming Feedback
				PPE Threshold Present
				Power Boost Factor ar
				HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
				Max NC: 2
				HE ER SU PPDU 4x HE-LTF 0.8us GI
				20MHz in 40MHz HE PPDU 2.4GHz
				20MHz in 160/80+80MHz HE PPDU
				80MHz in 160/80+80MHz HE PPDU
				TX 1024-QAM
				RX 1024-QAM
				RX Full BW SU Using HE MU PPDU with Compression SIGB
				RX Full BW SU Using HE MU PPDU with Non-Compression SIGB
			HE RX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE RX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			PPE Threshold 0x61 0x1c 0xc7 0x71 
		EHT Iftypes: managed
			EHT MAC Capabilities (0x0200):
				EHT OM Control Supported
			EHT PHY Capabilities: (0xdc1f4920184e0000):
				242-tone RU in BW wider than 20MHz Supported
				NDP With  EHT-LTF And 3.2 µs GI
				Partial Bandwidth UL MU-MIMO
				SU Beamformee
				Beamformee SS (80MHz): 7
				Beamformee SS (160MHz): 7
				Number Of Sounding Dimensions (80MHz): 1
				Number Of Sounding Dimensions (160MHz): 1
				Number Of Sounding Dimensions (320MHz): 1
				Triggered SU Beamforming Feedback
				EHT MU PPDU With 4 EHT-LTF And 0.8 µs GI
				Max Nc: 1
				Tx 1024-QAM And 4096-QAM < 242-tone RU
				Rx 1024-QAM And 4096-QAM < 242-tone RU
				PPE Thresholds Present
				Maximum Number Of Supported EHT-LTFs: 1
			EHT MCS/NSS: (0x22222222222200000000000000):
			EHT bw <= 80 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
			EHT bw <= 80 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
			EHT bw <= 80 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT bw=160 MHz, max NSS for MCS 8-9: Rx=0, Tx=0
			EHT bw=160 MHz, max NSS for MCS 10-11: Rx=0, Tx=0
			EHT bw=160 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT PPE Thresholds 0xc1 0x0e 0xe0 
		HE Iftypes: AP
			HE MAC Capabilities (0x78010a100000):
				+HTC HE Supported
				Trigger Frame MAC Padding Duration: 2
				Multi-TID Aggregation Support: 7
				Broadcast TWT
				OM Control
				Maximum A-MPDU Length Exponent: 1
			HE PHY Capabilities: (0x0c200e090009800401c400):
				HE40/HE80/5GHz
				HE160/5GHz
				LDPC Coding in Payload
				NDP with 4x HE-LTF and 3.2us GI
				STBC Tx <= 80MHz
				STBC Rx <= 80MHz
				DCM Max Constellation: 1
				DCM Max Constellation Rx: 1
				Sounding Dimensions <= 80Mhz: 1
				Sounding Dimensions > 80Mhz: 1
				PPE Threshold Present
				HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
				HE ER SU PPDU 4x HE-LTF 0.8us GI
				TX 1024-QAM
			HE RX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE RX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			PPE Threshold 0x61 0x1c 0xc7 0x71 
		EHT Iftypes: AP
			EHT MAC Capabilities (0x0200):
				EHT OM Control Supported
			EHT PHY Capabilities: (0x0c00000000480000):
				242-tone RU in BW wider than 20MHz Supported
				NDP With  EHT-LTF And 3.2 µs GI
				PPE Thresholds Present
				Maximum Number Of Supported EHT-LTFs: 1
			EHT MCS/NSS: (0x22222222222200000000000000):
			EHT bw <= 80 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
			EHT bw <= 80 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
			EHT bw <= 80 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT bw=160 MHz, max NSS for MCS 8-9: Rx=0, Tx=0
			EHT bw=160 MHz, max NSS for MCS 10-11: Rx=0, Tx=0
			EHT bw=160 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT PPE Thresholds 0xc1 0x0e 0xe0 
		Bitrates (non-HT):
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 5180 MHz [36] (22.0 dBm)
			* 5200 MHz [40] (22.0 dBm)
			* 5220 MHz [44] (22.0 dBm)
			* 5240 MHz [48] (22.0 dBm)
			* 5260 MHz [52] (22.0 dBm) (no IR, radar detection)
			* 5280 MHz [56] (22.0 dBm) (no IR, radar detection)
			* 5300 MHz [60] (22.0 dBm) (no IR, radar detection)
			* 5320 MHz [64] (22.0 dBm) (no IR, radar detection)
			* 5340 MHz [68] (disabled)
			* 5360 MHz [72] (disabled)
			* 5380 MHz [76] (disabled)
			* 5400 MHz [80] (disabled)
			* 5420 MHz [84] (disabled)
			* 5440 MHz [88] (disabled)
			* 5460 MHz [92] (disabled)
			* 5480 MHz [96] (disabled)
			* 5500 MHz [100] (22.0 dBm) (no IR, radar detection)
			* 5520 MHz [104] (22.0 dBm) (no IR, radar detection)
			* 5540 MHz [108] (22.0 dBm) (no IR, radar detection)
			* 5560 MHz [112] (22.0 dBm) (no IR, radar detection)
			* 5580 MHz [116] (22.0 dBm) (no IR, radar detection)
			* 5600 MHz [120] (22.0 dBm) (no IR, radar detection)
			* 5620 MHz [124] (22.0 dBm) (no IR, radar detection)
			* 5640 MHz [128] (22.0 dBm) (no IR, radar detection)
			* 5660 MHz [132] (22.0 dBm) (no IR, radar detection)
			* 5680 MHz [136] (22.0 dBm) (no IR, radar detection)
			* 5700 MHz [140] (22.0 dBm) (no IR, radar detection)
			* 5720 MHz [144] (22.0 dBm) (no IR, radar detection)
			* 5745 MHz [149] (22.0 dBm)
			* 5765 MHz [153] (22.0 dBm)
			* 5785 MHz [157] (22.0 dBm)
			* 5805 MHz [161] (22.0 dBm)
			* 5825 MHz [165] (22.0 dBm)
			* 5845 MHz [169] (22.0 dBm) (no IR)
			* 5865 MHz [173] (22.0 dBm) (no IR)
			* 5885 MHz [177] (22.0 dBm) (no IR)
			* 5905 MHz [181] (disabled)
	Band 4:
		HE Iftypes: managed
			HE MAC Capabilities (0x78019230abc0):
				+HTC HE Supported
				Trigger Frame MAC Padding Duration: 2
				Multi-TID Aggregation Support: 7
				Broadcast TWT
				32-bit BA Bitmap
				OM Control
				Maximum A-MPDU Length Exponent: 2
				RX Control Frame to MultiBSS
				A-MSDU in A-MPDU
				Multi-TID Aggregation TX: 7
				UL 2x996-Tone RU
			HE PHY Capabilities: (0x0c3f4e09fd098c160ffc01):
				HE40/HE80/5GHz
				HE160/5GHz
				Punctured Preamble RX: 15
				Device Class: 1
				LDPC Coding in Payload
				NDP with 4x HE-LTF and 3.2us GI
				STBC Tx <= 80MHz
				STBC Rx <= 80MHz
				Full Bandwidth UL MU-MIMO
				DCM Max Constellation: 1
				DCM Max Constellation Rx: 1
				SU Beamformee
				Beamformee STS <= 80Mhz: 7
				Beamformee STS > 80Mhz: 7
				Sounding Dimensions <= 80Mhz: 1
				Sounding Dimensions > 80Mhz: 1
				Triggered SU Beamforming Feedback
				Triggered MU Beamforming Feedback
				PPE Threshold Present
				Power Boost Factor ar
				HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
				Max NC: 2
				HE ER SU PPDU 4x HE-LTF 0.8us GI
				20MHz in 40MHz HE PPDU 2.4GHz
				20MHz in 160/80+80MHz HE PPDU
				80MHz in 160/80+80MHz HE PPDU
				TX 1024-QAM
				RX 1024-QAM
				RX Full BW SU Using HE MU PPDU with Compression SIGB
				RX Full BW SU Using HE MU PPDU with Non-Compression SIGB
			HE RX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE RX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			PPE Threshold 0x61 0x1c 0xc7 0x71 
		EHT Iftypes: managed
			EHT MAC Capabilities (0x0200):
				EHT OM Control Supported
			EHT PHY Capabilities: (0xdeff4920184e0000):
				320MHz in 6GHz Supported
				242-tone RU in BW wider than 20MHz Supported
				NDP With  EHT-LTF And 3.2 µs GI
				Partial Bandwidth UL MU-MIMO
				SU Beamformee
				Beamformee SS (80MHz): 7
				Beamformee SS (160MHz): 7
				Beamformee SS (320MHz): 7
				Number Of Sounding Dimensions (80MHz): 1
				Number Of Sounding Dimensions (160MHz): 1
				Number Of Sounding Dimensions (320MHz): 1
				Triggered SU Beamforming Feedback
				EHT MU PPDU With 4 EHT-LTF And 0.8 µs GI
				Max Nc: 1
				Tx 1024-QAM And 4096-QAM < 242-tone RU
				Rx 1024-QAM And 4096-QAM < 242-tone RU
				PPE Thresholds Present
				Maximum Number Of Supported EHT-LTFs: 1
			EHT MCS/NSS: (0x22222222222222222200000000):
			EHT bw <= 80 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
			EHT bw <= 80 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
			EHT bw <= 80 MHz, max NSS for MCS 12-13: Rx=2, Tx=2
			EHT bw=160 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
			EHT bw=160 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
			EHT bw=160 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT bw=320 MHz, max NSS for MCS 8-9: Rx=0, Tx=0
			EHT bw=320 MHz, max NSS for MCS 10-11: Rx=0, Tx=0
			EHT bw=320 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT PPE Thresholds 0xc1 0x0e 0xe0 
		HE Iftypes: AP
			HE MAC Capabilities (0x780112100000):
				+HTC HE Supported
				Trigger Frame MAC Padding Duration: 2
				Multi-TID Aggregation Support: 7
				Broadcast TWT
				OM Control
				Maximum A-MPDU Length Exponent: 2
			HE PHY Capabilities: (0x0c200e090009800401c400):
				HE40/HE80/5GHz
				HE160/5GHz
				LDPC Coding in Payload
				NDP with 4x HE-LTF and 3.2us GI
				STBC Tx <= 80MHz
				STBC Rx <= 80MHz
				DCM Max Constellation: 1
				DCM Max Constellation Rx: 1
				Sounding Dimensions <= 80Mhz: 1
				Sounding Dimensions > 80Mhz: 1
				PPE Threshold Present
				HE SU PPDU & HE PPDU 4x HE-LTF 0.8us GI
				HE ER SU PPDU 4x HE-LTF 0.8us GI
				TX 1024-QAM
			HE RX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set <= 80 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE RX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			HE TX MCS and NSS set 160 MHz
				1 streams: MCS 0-11
				2 streams: MCS 0-11
				3 streams: not supported
				4 streams: not supported
				5 streams: not supported
				6 streams: not supported
				7 streams: not supported
				8 streams: not supported
			PPE Threshold 0x61 0x1c 0xc7 0x71 
		EHT Iftypes: AP
			EHT MAC Capabilities (0x0200):
				EHT OM Control Supported
			EHT PHY Capabilities: (0x0ee0000000480000):
				320MHz in 6GHz Supported
				242-tone RU in BW wider than 20MHz Supported
				NDP With  EHT-LTF And 3.2 µs GI
				Beamformee SS (320MHz): 7
				PPE Thresholds Present
				Maximum Number Of Supported EHT-LTFs: 1
			EHT MCS/NSS: (0x22222222222222222200000000):
			EHT bw <= 80 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
			EHT bw <= 80 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
			EHT bw <= 80 MHz, max NSS for MCS 12-13: Rx=2, Tx=2
			EHT bw=160 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
			EHT bw=160 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
			EHT bw=160 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT bw=320 MHz, max NSS for MCS 8-9: Rx=0, Tx=0
			EHT bw=320 MHz, max NSS for MCS 10-11: Rx=0, Tx=0
			EHT bw=320 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
			EHT PPE Thresholds 0xc1 0x0e 0xe0 
		Bitrates (non-HT):
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 5955 MHz [1] (22.0 dBm) (no IR)
			* 5975 MHz [5] (22.0 dBm) (no IR)
			* 5995 MHz [9] (22.0 dBm) (no IR)
			* 6015 MHz [13] (22.0 dBm) (no IR)
			* 6035 MHz [17] (22.0 dBm) (no IR)
			* 6055 MHz [21] (22.0 dBm) (no IR)
			* 6075 MHz [25] (22.0 dBm) (no IR)
			* 6095 MHz [29] (22.0 dBm) (no IR)
			* 6115 MHz [33] (22.0 dBm) (no IR)
			* 6135 MHz [37] (22.0 dBm) (no IR)
			* 6155 MHz [41] (22.0 dBm) (no IR)
			* 6175 MHz [45] (22.0 dBm) (no IR)
			* 6195 MHz [49] (22.0 dBm) (no IR)
			* 6215 MHz [53] (22.0 dBm) (no IR)
			* 6235 MHz [57] (22.0 dBm) (no IR)
			* 6255 MHz [61] (22.0 dBm) (no IR)
			* 6275 MHz [65] (22.0 dBm) (no IR)
			* 6295 MHz [69] (22.0 dBm) (no IR)
			* 6315 MHz [73] (22.0 dBm) (no IR)
			* 6335 MHz [77] (22.0 dBm) (no IR)
			* 6355 MHz [81] (22.0 dBm) (no IR)
			* 6375 MHz [85] (22.0 dBm) (no IR)
			* 6395 MHz [89] (22.0 dBm) (no IR)
			* 6415 MHz [93] (22.0 dBm) (no IR)
			* 6435 MHz [97] (22.0 dBm) (no IR)
			* 6455 MHz [101] (22.0 dBm) (no IR)
			* 6475 MHz [105] (22.0 dBm) (no IR)
			* 6495 MHz [109] (22.0 dBm) (no IR)
			* 6515 MHz [113] (22.0 dBm) (no IR)
			* 6535 MHz [117] (22.0 dBm) (no IR)
			* 6555 MHz [121] (22.0 dBm) (no IR)
			* 6575 MHz [125] (22.0 dBm) (no IR)
			* 6595 MHz [129] (22.0 dBm) (no IR)
			* 6615 MHz [133] (22.0 dBm) (no IR)
			* 6635 MHz [137] (22.0 dBm) (no IR)
			* 6655 MHz [141] (22.0 dBm) (no IR)
			* 6675 MHz [145] (22.0 dBm) (no IR)
			* 6695 MHz [149] (22.0 dBm) (no IR)
			* 6715 MHz [153] (22.0 dBm) (no IR)
			* 6735 MHz [157] (22.0 dBm) (no IR)
			* 6755 MHz [161] (22.0 dBm) (no IR)
			* 6775 MHz [165] (22.0 dBm) (no IR)
			* 6795 MHz [169] (22.0 dBm) (no IR)
			* 6815 MHz [173] (22.0 dBm) (no IR)
			* 6835 MHz [177] (22.0 dBm) (no IR)
			* 6855 MHz [181] (22.0 dBm) (no IR)
			* 6875 MHz [185] (22.0 dBm) (no IR)
			* 6895 MHz [189] (22.0 dBm) (no IR)
			* 6915 MHz [193] (22.0 dBm) (no IR)
			* 6935 MHz [197] (22.0 dBm) (no IR)
			* 6955 MHz [201] (22.0 dBm) (no IR)
			* 6975 MHz [205] (22.0 dBm) (no IR)
			* 6995 MHz [209] (22.0 dBm) (no IR)
			* 7015 MHz [213] (22.0 dBm) (no IR)
			* 7035 MHz [217] (22.0 dBm) (no IR)
			* 7055 MHz [221] (22.0 dBm) (no IR)
			* 7075 MHz [225] (22.0 dBm) (no IR)
			* 7095 MHz [229] (22.0 dBm) (no IR)
			* 7115 MHz [233] (22.0 dBm) (no IR)
	Supported commands:
		 * new_interface
		 * set_interface
		 * new_key
		 * start_ap
		 * new_station
		 * new_mpath
		 * set_mesh_config
		 * set_bss
		 * authenticate
		 * associate
		 * deauthenticate
		 * disassociate
		 * join_ibss
		 * join_mesh
		 * remain_on_channel
		 * set_tx_bitrate_mask
		 * frame
		 * frame_wait_cancel
		 * set_wiphy_netns
		 * set_channel
		 * tdls_mgmt
		 * tdls_oper
		 * start_sched_scan
		 * probe_client
		 * set_noack_map
		 * register_beacons
		 * start_p2p_device
		 * set_mcast_rate
		 * connect
		 * disconnect
		 * channel_switch
		 * set_qos_map
		 * add_tx_ts
		 * set_multicast_to_unicast
	software interface modes (can always be added):
		 * AP/VLAN
		 * monitor
	valid interface combinations:
		 * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1,
		   total <= 3, #channels <= 2
	HT Capability overrides:
		 * MCS: ff ff ff ff ff ff ff ff ff ff
		 * maximum A-MSDU length
		 * supported channel width
		 * short GI for 40 MHz
		 * max A-MPDU length exponent
		 * min MPDU start spacing
	Device supports TX status socket option.
	Device supports HT-IBSS.
	Device supports SAE with AUTHENTICATE command
	Device supports low priority scan.
	Device supports scan flush.
	Device supports per-vif TX power setting
	P2P GO supports CT window setting
	P2P GO supports opportunistic powersave setting
	Driver supports full state transitions for AP/GO clients
	Driver supports a userspace MPM
	Driver/device bandwidth changes during BSS lifetime (AP/GO mode)
	Device adds DS IE to probe requests
	Device can update TPC Report IE
	Device supports static SMPS
	Device supports dynamic SMPS
	Device supports WMM-AC admission (TSPECs)
	Device supports configuring vdev MAC-addr on create.
	Device supports randomizing MAC-addr in scans.
	Device supports randomizing MAC-addr in sched scans.
	Device supports randomizing MAC-addr in net-detect scans.
	max # scan plans: 2
	max scan plan interval: 65535
	max scan plan iterations: 254
	Supported TX frame types:
		 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
	Supported RX frame types:
		 * IBSS: 0x40 0xb0 0xc0 0xd0
		 * managed: 0x40 0xb0 0xd0
		 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * mesh point: 0xb0 0xc0 0xd0
		 * P2P-client: 0x40 0xd0
		 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * P2P-device: 0x40 0xd0
	Supported extended features:
		* [ VHT_IBSS ]: VHT-IBSS
		* [ RRM ]: RRM
		* [ MU_MIMO_AIR_SNIFFER ]: MU-MIMO sniffer
		* [ SCAN_START_TIME ]: scan start timestamp
		* [ BSS_PARENT_TSF ]: BSS last beacon/probe TSF
		* [ BEACON_RATE_LEGACY ]: legacy beacon rate setting
		* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
		* [ FILS_MAX_CHANNEL_TIME ]: FILS max channel attribute override with dwell time
		* [ ACCEPT_BCAST_PROBE_RESP ]: accepts broadcast probe response
		* [ OCE_PROBE_REQ_HIGH_TX_RATE ]: probe request TX at high rate (at least 5.5Mbps)
		* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
		* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
		* [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans
		* [ BEACON_PROTECTION ]: beacon protection support
		* [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
		* [ PROTECTED_TWT ]: protected Target Wake Time (TWT) support
		* [ DEL_IBSS_STA ]: deletion of IBSS station support
		* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
		* [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support

See also this note from Intel support:

After reviewing the case, it is important to mention that when using Linux as Operating System, the Intel® wireless products are fully supported in station mode. As for monitor mode goes, the features and its support are limited, so it's expected that 802.11ac (uses OFDM) may function in monitor mode but 802.11ax(uses OFDMA) may not.

From the thread Is it possible to enable monitor mode on linux for wifi the 6ghz frequency band on the AX210?.

@thewade
Copy link

thewade commented Mar 12, 2025

First off great news that iwlwifi is now part of the Raspberry OS kernel. That will make things so much easier.

As for the firmware itself does Raspberry Pi OS have the Debian package firmware-iwlwifi. That package would be the easiest way to get the firmware. I would only suggest reviewing the dmesg logs and copying files yourself if module still fails to load after installing that package, or it you have a need for firmware newer then the package provides.

As for monitor mode, I fought for that issue a long time myself. The thing to know about Intel is that it won't unlock the 6GHz band unless it determines it is in the correct regulatory region. The feature they have to determine the region is called Location Aware Regulatory and it cannot be disabled. The way it works is it scans nearby access points and looks at the 802.11d country information in the wireless beacons. If you have no nearby access points with the country being broadcast in the beacons, it will unable to determine the region and the 6GHz band will remain locked. For client mode this isn't much of an issue as the access point you are connecting to is likely broadcasting this. For monitor mode this can be an issue because as far as I know the device does not do active scans in monitor mode, and without those scans it will be unable to determine the region. It is even more problematic in access point mode, cause it is also not doing the scans by default, and even if you use a hack to enable the scans there is a chance you are trying to deploy an access point somewhere there are no other access points around.

If the steps your provided for monitor mode are reliable that is great, but for myself when I last tested changing the interface mode was causing the regulatory region to get reset. To make it work reliably I created a separate monitor interface based on the physical interface, did a scan with the main interface, and only then I would put the monitor up and the main interface down.

Basically:

iw phy0 interface add mon0 type monitor flags control
ip link set wlp2s0 up
iw dev wlp2s0 scan
iw reg get
ip link set mon0 up
ip link set wlp2s0 down
iw mon0 set freq 6135

If you are having trouble, I would suggest trying the above.

Anyways keep of the good work. I am excited to see the progress you are making!

@geerlingguy
Copy link
Owner Author

@thewade - It looks like firmware-iwlwifi is indeed in the repo, so I will rebuild my Pi and see if that is the easier solution than manually grabbing the firmware files. Thanks!

https://www.raspberryconnect.com/raspbian-packages/76-raspbian-kernel-packages

@geerlingguy
Copy link
Owner Author

geerlingguy commented Mar 12, 2025

Tried the package instead of direct firmware download:

$ cd /lib/firmware
$ sudo rm -rf iwlwifi-gl-c0-fm-c0-83.ucode iwlwifi-gl-c0-fm-c0-83.ucode
$ sudo reboot

At this point, I get the 'firmware not found' message again in dmesg logs. Then I install the package:

$ sudo apt install -y firmware-iwlwifi
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  firmware-iwlwifi
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 43.4 MB of archives.
After this operation, 100.0 MB of additional disk space will be used.
Get:1 http://archive.raspberrypi.com/debian bookworm/main arm64 firmware-iwlwifi all 1:20240709-2~bpo12+1+rpt2 [43.4 MB]
Fetched 43.4 MB in 3s (15.5 MB/s)            
Selecting previously unselected package firmware-iwlwifi.
(Reading database ... 149665 files and directories currently installed.)
Preparing to unpack .../firmware-iwlwifi_1%3a20240709-2~bpo12+1+rpt2_all.deb ...
Unpacking firmware-iwlwifi (1:20240709-2~bpo12+1+rpt2) ...
Setting up firmware-iwlwifi (1:20240709-2~bpo12+1+rpt2) ...

$ sudo reboot

And after reboot...

[    2.475622] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002)
[    2.481137] iwlwifi 0000:01:00.0: Detected crf-id 0x2001910, cnv-id 0x2001910 wfpm id 0x80000000
[    2.481195] iwlwifi 0000:01:00.0: PCI dev 272b/00f4, rev=0x472, rfid=0x112200
[    2.481371] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-83.ucode failed with error -2
[    2.481384] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-82.ucode failed with error -2
[    2.481394] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-81.ucode failed with error -2
[    2.481404] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-80.ucode failed with error -2
[    2.481406] iwlwifi 0000:01:00.0: no suitable firmware found!
[    2.481407] iwlwifi 0000:01:00.0: minimum version required: iwlwifi-gl-c0-fm-c0-80
[    2.481409] iwlwifi 0000:01:00.0: maximum version supported: iwlwifi-gl-c0-fm-c0-83
[    2.481411] iwlwifi 0000:01:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

It looks like many of the firmware files are installed, but not the two needed for the BE200:

$ ls /lib/firmware/iwl*
/lib/firmware/iwlwifi-1000-5.ucode               /lib/firmware/iwlwifi-ma-b0-hr-b0-89.ucode
/lib/firmware/iwlwifi-100-5.ucode                /lib/firmware/iwlwifi-Qu-b0-hr-b0-59.ucode
/lib/firmware/iwlwifi-105-6.ucode                /lib/firmware/iwlwifi-Qu-b0-hr-b0-72.ucode
/lib/firmware/iwlwifi-135-6.ucode                /lib/firmware/iwlwifi-Qu-b0-hr-b0-77.ucode
/lib/firmware/iwlwifi-2000-6.ucode               /lib/firmware/iwlwifi-Qu-b0-jf-b0-59.ucode
/lib/firmware/iwlwifi-2030-6.ucode               /lib/firmware/iwlwifi-Qu-b0-jf-b0-72.ucode
/lib/firmware/iwlwifi-3160-17.ucode              /lib/firmware/iwlwifi-Qu-b0-jf-b0-77.ucode
/lib/firmware/iwlwifi-3168-29.ucode              /lib/firmware/iwlwifi-Qu-c0-hr-b0-59.ucode
/lib/firmware/iwlwifi-3945-2.ucode               /lib/firmware/iwlwifi-Qu-c0-hr-b0-72.ucode
/lib/firmware/iwlwifi-4965-2.ucode               /lib/firmware/iwlwifi-Qu-c0-hr-b0-77.ucode
/lib/firmware/iwlwifi-5000-5.ucode               /lib/firmware/iwlwifi-Qu-c0-jf-b0-59.ucode
/lib/firmware/iwlwifi-5150-2.ucode               /lib/firmware/iwlwifi-Qu-c0-jf-b0-72.ucode
/lib/firmware/iwlwifi-6000-4.ucode               /lib/firmware/iwlwifi-Qu-c0-jf-b0-77.ucode
/lib/firmware/iwlwifi-6000g2a-6.ucode            /lib/firmware/iwlwifi-QuZ-a0-hr-b0-59.ucode
/lib/firmware/iwlwifi-6000g2b-6.ucode            /lib/firmware/iwlwifi-QuZ-a0-hr-b0-72.ucode
/lib/firmware/iwlwifi-6050-5.ucode               /lib/firmware/iwlwifi-QuZ-a0-hr-b0-77.ucode
/lib/firmware/iwlwifi-7260-17.ucode              /lib/firmware/iwlwifi-QuZ-a0-jf-b0-59.ucode
/lib/firmware/iwlwifi-7265-17.ucode              /lib/firmware/iwlwifi-QuZ-a0-jf-b0-72.ucode
/lib/firmware/iwlwifi-7265D-29.ucode             /lib/firmware/iwlwifi-QuZ-a0-jf-b0-77.ucode
/lib/firmware/iwlwifi-8000C-36.ucode             /lib/firmware/iwlwifi-so-a0-gf4-a0-72.ucode
/lib/firmware/iwlwifi-8265-36.ucode              /lib/firmware/iwlwifi-so-a0-gf4-a0-86.ucode
/lib/firmware/iwlwifi-9000-pu-b0-jf-b0-38.ucode  /lib/firmware/iwlwifi-so-a0-gf4-a0-89.ucode
/lib/firmware/iwlwifi-9000-pu-b0-jf-b0-46.ucode  /lib/firmware/iwlwifi-so-a0-gf4-a0.pnvm
/lib/firmware/iwlwifi-9260-th-b0-jf-b0-38.ucode  /lib/firmware/iwlwifi-so-a0-gf-a0-72.ucode
/lib/firmware/iwlwifi-9260-th-b0-jf-b0-46.ucode  /lib/firmware/iwlwifi-so-a0-gf-a0-86.ucode
/lib/firmware/iwlwifi-cc-a0-59.ucode             /lib/firmware/iwlwifi-so-a0-gf-a0-89.ucode
/lib/firmware/iwlwifi-cc-a0-72.ucode             /lib/firmware/iwlwifi-so-a0-gf-a0.pnvm
/lib/firmware/iwlwifi-cc-a0-77.ucode             /lib/firmware/iwlwifi-so-a0-hr-b0-72.ucode
/lib/firmware/iwlwifi-gl-c0-fm-c0-86.ucode       /lib/firmware/iwlwifi-so-a0-hr-b0-86.ucode
/lib/firmware/iwlwifi-gl-c0-fm-c0.pnvm           /lib/firmware/iwlwifi-so-a0-hr-b0-89.ucode
/lib/firmware/iwlwifi-gl-c0-fm-c0.pnvm.1         /lib/firmware/iwlwifi-so-a0-jf-b0-72.ucode
/lib/firmware/iwlwifi-ma-b0-gf4-a0-86.ucode      /lib/firmware/iwlwifi-so-a0-jf-b0-77.ucode
/lib/firmware/iwlwifi-ma-b0-gf4-a0-89.ucode      /lib/firmware/iwlwifi-ty-a0-gf-a0-59.ucode
/lib/firmware/iwlwifi-ma-b0-gf4-a0.pnvm          /lib/firmware/iwlwifi-ty-a0-gf-a0-72.ucode
/lib/firmware/iwlwifi-ma-b0-gf-a0-86.ucode       /lib/firmware/iwlwifi-ty-a0-gf-a0-86.ucode
/lib/firmware/iwlwifi-ma-b0-gf-a0-89.ucode       /lib/firmware/iwlwifi-ty-a0-gf-a0-89.ucode
/lib/firmware/iwlwifi-ma-b0-gf-a0.pnvm           /lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm
/lib/firmware/iwlwifi-ma-b0-hr-b0-86.ucode

It looks like /lib/firmware/iwlwifi-gl-c0-fm-c0-86.ucode is present, but the driver says it only works with up to 83.ucode, odd! I wonder if upgrading to kernel 6.12 would solve that (that's the current next kernel version...).

According to @thewade's comment here, iwlwifi-ty-a0-gf-a0-86.ucode was used for the AX210, and iwlwifi-gl-c0-fm-c0-86.ucode was used for the BE200, on "Ubuntu 24.04 beta (kernel 6.8.0)", whereas the Pi is on 6.6.y right now, which would correspond to the earlier version of the firmware (83)... Seems like the packaged firmware should align though, I wonder if this is also a problem on Debian 12 proper?

@geerlingguy
Copy link
Owner Author

Indeed; Bookworm's iwlwifi-firmware package doesn't contain the firmware for the BE200 whatsoever:

https://packages.debian.org/bookworm/all/firmware-iwlwifi/filelist

It contains the following versions for the AX210:

/lib/firmware/iwlwifi-ty-a0-gf-a0-59.ucode
/lib/firmware/iwlwifi-ty-a0-gf-a0-66.ucode
/lib/firmware/iwlwifi-ty-a0-gf-a0-72.ucode

@thewade
Copy link

thewade commented Mar 12, 2025

The version of the iwlwifi firmware that is supported is related to the Linux kernel. When you update the kernel often you need to download new firmware.

For a typical distro I would expect their various firmware packages to align with the supported kernel. It doesn't have to be the exact file either. For iwlwifi you can have multiple firmware files and it will automatically pick the best version that is supported with the kernel.

You might be able to open a bug against Debian to add the files. For Ubuntu they maintain their own linux-firmware package and in the past I had opened a bug to request they add updated firmware for iwlwifi.

Debian is more strict on open source then Ubuntu, so they might also be less interested in maintaining these packages.

@geerlingguy
Copy link
Owner Author

For a typical distro I would expect their various firmware packages to align with the supported kernel. It doesn't have to be the exact file either. For iwlwifi you can also have multiple firmware files and it will automatically pick the best version that is supported with the kernel.

Yeah, I had run sudo apt update && sudo apt upgrade -y earlier today, so both the kernel and the firmware-iwlwifi packages should be in sync. It has version 86, which is newer than the 83, and I presume I might be the first person who attempted a BE200 at least on the Pi 5 with Pi OS 12 and this package?

I'm not sure where the packages are built for Pi OS, I believe it's a separate place than Debian proper (Debian 12 is a bit further behind on the kernel—it's default is 6.1...).

@thewade
Copy link

thewade commented Mar 13, 2025

Regarding performance, you might be able to use Multi-Link Operation (MLO) to improve performance by spreading the connection over multiple bands at once (e.g. 5GHz/6GHz).

From what I read online it should work with Intel and linux kernel 6.11+ and a wireless router that support the feature:
https://community.intel.com/t5/Wireless/Which-special-driver-version-need-to-support-be200-mlo-features/m-p/1619965

Haven't had a chance to test it myself yet.

@geerlingguy
Copy link
Owner Author

@thewade - In my preliminary testing, I was not able to see a difference with MLO on my 5/6 GHz be setup: #709 (comment)

Not sure what else to try, it could be something that is kind of 'magic', as I can't find a way to force it to try more than one channel at a time. Or maybe iw doesn't have the ability to display more than one channel in the version that's included with Pi OS currently?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants