11

I've recently installed an Intel Wi-Fi 6 AX210 controller to test 6 GHz wireless networks. The specifications clearly say that the device supports 2.4, 5 and 6 GHz bands, but the iw list shows that all 6 GHz frequencies are disabled:

...
Frequencies:
        * 5955 MHz [1] (disabled)
        * 5975 MHz [5] (disabled)
        * 5995 MHz [9] (disabled)
        * 6015 MHz [13] (disabled)
        * 6035 MHz [17] (disabled)
        * 6055 MHz [21] (disabled)
        * 6075 MHz [25] (disabled)
        * 6095 MHz [29] (disabled)
        * 6115 MHz [33] (disabled)
        * 6135 MHz [37] (disabled)
        * 6155 MHz [41] (disabled)
        * 6175 MHz [45] (disabled)
        * 6195 MHz [49] (disabled)
        * 6215 MHz [53] (disabled)
        * 6235 MHz [57] (disabled)
        * 6255 MHz [61] (disabled)
        * 6275 MHz [65] (disabled)
        * 6295 MHz [69] (disabled)
        * 6315 MHz [73] (disabled)
        * 6335 MHz [77] (disabled)
        * 6355 MHz [81] (disabled)
        * 6375 MHz [85] (disabled)
        * 6395 MHz [89] (disabled)
        * 6415 MHz [93] (disabled)
        * 6435 MHz [97] (disabled)
        * 6455 MHz [101] (disabled)
        * 6475 MHz [105] (disabled)
        * 6495 MHz [109] (disabled)
        * 6515 MHz [113] (disabled)
        * 6535 MHz [117] (disabled)
        * 6555 MHz [121] (disabled)
        * 6575 MHz [125] (disabled)
        * 6595 MHz [129] (disabled)
        * 6615 MHz [133] (disabled)
        * 6635 MHz [137] (disabled)
        * 6655 MHz [141] (disabled)
        * 6675 MHz [145] (disabled)
        * 6695 MHz [149] (disabled)
        * 6715 MHz [153] (disabled)
        * 6735 MHz [157] (disabled)
        * 6755 MHz [161] (disabled)
        * 6775 MHz [165] (disabled)
        * 6795 MHz [169] (disabled)
        * 6815 MHz [173] (disabled)
        * 6835 MHz [177] (disabled)
        * 6855 MHz [181] (disabled)
        * 6875 MHz [185] (disabled)
        * 6895 MHz [189] (disabled)
        * 6915 MHz [193] (disabled)
        * 6935 MHz [197] (disabled)
        * 6955 MHz [201] (disabled)
        * 6975 MHz [205] (disabled)
        * 6995 MHz [209] (disabled)
        * 7015 MHz [213] (disabled)
        * 7035 MHz [217] (disabled)
        * 7055 MHz [221] (disabled)
        * 7075 MHz [225] (disabled)
        * 7095 MHz [229] (disabled)
        * 7115 MHz [233] (disabled)
...

I suppose this is something related to regional band restrictions. Right now I am in the EU, which has adopted frequencies 5925-6425 MHz, according to wi-fi.org.

The iw reg get outputs the following:

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 00: 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), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
        (5190 - 5210 @ 160), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
        (5210 - 5230 @ 160), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, PASSIVE-SCAN
        (5230 - 5250 @ 160), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, PASSIVE-SCAN
        (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 @ 80), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-160MHZ, PASSIVE-SCAN
        (5755 - 5775 @ 80), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
        (5775 - 5795 @ 80), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-160MHZ, PASSIVE-SCAN
        (5795 - 5815 @ 80), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
        (5815 - 5835 @ 40), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-80MHZ, NO-160MHZ, PASSIVE-SCAN

Grepping for iwlwifi through dmesg didn't give any relevant information for me:

iwlwifi 0000:06:00.0: api flags index 2 larger than supported by driver
iwlwifi 0000:06:00.0: Unhandled alg: 0x71b
iwlwifi 0000:06:00.0: Unhandled alg: 0x3f0707
iwlwifi 0000:06:00.0: Unhandled alg: 0x3f0707
iwlwifi 0000:06:00.0: Unhandled alg: 0x71b
iwlwifi 0000:06:00.0: Unhandled alg: 0x71b

I have two questions:

  1. Why is the 6 GHz band not working?
  2. How can I make the adapter use less restrictive settings?

My setup:

  • Kernel: 5.15.0-56-generic
  • OS: Ubuntu 22.04.1 LTS (Jammy Jellyfish)
  • Controller: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725] (rev 1a)
Peter Mortensen
  • 12,090
  • 23
  • 70
  • 90
Abra Mixabra
  • 111
  • 1
  • 5
  • 4
    https://community.intel.com/t5/Wireless/How-to-enable-AX210-6GHz-channels/td-p/1319885 has some useful information, it seems support would work at least in some countries with -68 firmware and new enough kernel. – jpa Dec 26 '22 at 10:06

3 Answers3

7

Why is 6 Ghz band not working?

It only works with Windows 11.

All Intel® Wi-Fi 6E (Gig+) products support the new 6GHz band for Wi-Fi. Usage of the 6GHz band relies on Microsoft Windows (Windows® 11) Operating System support.

(emphasis mine)

Source: How to Enable Wi-Fi 6E/ 6GHz Band Using Intel® Wi-Fi 6E (Gig+)...

The specifications page you link to does say:

Supported Operating Systems Windows 11, 64-bit*, Windows 10, 64-bit*, Linux*

However Intel does not currently offer a Linux driver.


How can I make the adapter use less restrictive settings?

You can't.

Requirements to enable Wi-Fi 6E /6GHz band:

  • Make sure your system is running Microsoft Windows (Windows® 11) Operating System. including the latest updates available from Microsoft.
  • Use the latest Wi-Fi drivers for Intel® Wireless adapters version 22.70.0 or later.
  • Please note that a 6GHz compatible router is required for 6E functionality. Be aware that the use of the 6GHz band may be prohibited by regulatory in your country or might not be enabled on your platform by the system manufacturer.

Source: How to Enable Wi-Fi 6E/ 6GHz Band Using Intel® Wi-Fi 6E (Gig+)...

DavidPostill
  • 153,128
  • 77
  • 353
  • 394
  • Intel might in the future release a Linux Wi-Fi 6E driver. There probably is an underlying reason it’s Windows only though. – Ramhound Dec 26 '22 at 02:10
  • 1
    I wonder if its kernel support, or the 'usual' problem of needing a bleeding edge driver. – Journeyman Geek Dec 26 '22 at 02:49
  • 4
    @Bib Does that firmware (and driver) actually support using the 6GHz band on this card? Because the issue is not so much that there is no support for the card, it’s that there is no support for _certain features of the card_. – Austin Hemmelgarn Dec 26 '22 at 16:36
  • 1
    @Ramhound: I'd guess the "underlying reason" might be some stupid legal crap, like maybe using some closed-source thing they can't put into a Linux driver? Normally closed-source binary blobs only need to be in firmware, though, not the driver that talks to it. Maybe some regulatory thing like being able to guarantee that the driver can be updated in case of changes to the frequency usage? It's pretty disappointing; Intel has normally been very good about open-source support for their hardware in general, so I certainly hope they have some kind of reason. – Peter Cordes Dec 26 '22 at 20:32
  • @Bib - What exactly is wrong with my statement? This answer quotes Intel. My comment was pretty limited to Intel releasing a driver to support Linux. Third-party or other party releasing a driver doesn’t seem relevant to my comment. – Ramhound Dec 26 '22 at 22:24
  • @PeterCordes the driver might be loading a newer firmware. Or perhaps the driver is querying Windows the location for deciding which bands to enable, with a disabled default. – Ángel Dec 27 '22 at 01:16
2

Intel uses Location-Aware Regulatory (LAR) to detect your current region and enable the allowed bands. This is handled directly by the firmware of the WiFi card. The newer firmware versions allow 6GHz usage in Germany and it has been verified to work by me.

Wifi 6E was enabled only in newer versions of the firmware. To check the firmware version, use the command sudo dmesg | grep iwlwifi. For example, for an AX210, the output would be [ 3.136078] iwlwifi 0000:00:04.0: loaded firmware version 72.daa05125.0 ty-a0-gf-a0-72.ucode op_mode iwlmvm. I recommend to use at least firmware version 72, which may require a newer Linux kernel. But older versions may work as well.

To enable 6E, it is essential that the WiFi module correctly detects the region. A scan is required for the 6E capabilities to be unlocked. To check the region, use the command iw reg get. If the card has not yet completed a scan and determined the region, the output will be similar to country 00: DFS-UNSET. To trigger this behavior, use the command iw dev wlan0 scan, replacing "wlan0" with the name of your WiFi interface. You can use iw dev to retrieve the respective name. After the scan completes, you can verify that the region was correctly updated by again executing iw reg get.

gosticks
  • 21
  • 1
  • This Intel stuff is annoying. It “worked” exactly as described back in the days of kernel `6.1.x` and firmware `72.x`. It **no longer works** today; a `6.3.x` kernel loads firmware `74.x` and there is no LAR, all 6GHz channels stay disabled etc. As for the quotes around “worked”: `6.1.x` + `72.x` misidentified Switzerland as Germany and allowed 6GHz channels only based on that. Yet 6GHz is allowed in Switzerland, my APs work fine with 6GHz and so do phones (Pixel 6 Pro, Pixel 7 Pro). Only **Intel** laptops are broken — **as always** — and stay at `DFS-UNSET`. – Andrej Podzimek May 12 '23 at 15:09
  • 1
    It started working again on 6.3.6, kind of at random. I suspect that the 6 GHz channels get unblocked (only) when the environment is incorrectly identified as `DE`. My AP transmits (correctly) `CH` in its `802.11d` and there seems to be no (or insufficient) data for 6 GHz channels in Switzerland (on Linux at the moment). Android phones connect just fine though. The success or failure of my laptop’s connection depends on some random folks from the neighborhood with rogue misconfigured `DE` access points. Perhaps when they are the majority, 6 GHz gets unblocked, otherwise it stays blocked. – Andrej Podzimek Jun 12 '23 at 12:52
  • I have two Lenovo laptops here with identical WiFi 6E chips (`8086:51f0`, `Intel(R) Wi-Fi 6E AX211 160MHz, REV=0x370`), running identical Arch Linux 6.3.7 kernel and Intel firmware (`74.fe17486e.0 so-a0-gf-a0-74.ucode`). Both report the same `country EU: DFS-UNSET`. One Intel card operates fine on 6GHz, the other reports 6GHz channels are blocked by regulatory restrictions. What. The. F. Intel. – gertvdijk Jun 14 '23 at 16:20
  • This kernel development mailing list thread suggests that the ACPI table (as exposed by BIOS) can trigger the Intel firmware/driver to turn off WiFi-6E on your card. https://lore.kernel.org/lkml/0611323c-2088-e6f3-1c38-7cf742dfb60d@leemhuis.info/T/ It appears that one of the two Lenovo laptops I have here has indeed an OEM flag set to disable 6E, but that's an error as it's sold with 6E-6GHz ability. I'll have to poke Lenovo support on this one. :-( – gertvdijk Jun 14 '23 at 16:48
1

User gosticks has all the correct information. However because I have too low reputation to comment directly I just wanted to add a few things.

If you are seeing country 00: DFS-UNSET it means LAR was unable to determine the correct region. If it cannot determine the correct region the firmware will not unlock the 6GHz spectrum.

If 802.11d is a setting in your router be sure to enable it as this is one of the ways LAR determines region.

The other thing to note is that the 6GHz spectrum is not supported in all countries and Intel has not received regulatory approval for all countries where it is supported.

I do know that latest pnvm and core72 enables supports more countries per this commit: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/iwlwifi-ty-a0-gf-a0.pnvm?id=20d9516de4cdc041e2aa83009e5b0464b1c3ed81

Core72 however only works natively with kernel 5.18 and above. If you want to try updating your kernel and the Intel firmware you can try the following:

sudo apt-get update
sudo apt-get install linux-generic-hwe-22.04 
sudo apt-get install git
git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cd linux-firmware
sudo cp iwlwifi* /lib/firmware
sudo reboot

I can confirm that in my region if you follow the above 6GHz works in Ubuntu 22.04.

thewade
  • 11
  • 1