Intel Wi-Fi 6 AX210/AX211/AX411 160MHz not working

FYI my Wifi AX210 works in with AMD PC (5800H/B550).

~> uname -a
Haiku shredder 1 hrev56578+96 Apr 21 2024 06:25: x86_64 x86_64 Haiku

~> lspci | grep Net
06:00.0 Network controller: Intel Corporation Wi-Fi 6E(802.11ax) AX210/AX1675* 2x2 [Typhoon Peak] (rev 1a)

~> ifconfig /dev/net/iaxwifi200/0
/dev/net/iaxwifi200/0
Hardware type: Ethernet, Address: a4:f9:33:a1:b6:5c
Media type: 802.11ac
Network: JRU, Address: 78:98:e8:d8:75:60, WPA2, PSK/CCMP
inet addr: 192.168.1.107, Bcast: 192.168.1.255, Mask: 255.255.255.0
MTU: 2294, Metric: 0, up broadcast link auto-configured
Receive: 2786 packets, 0 errors, 1981755 bytes, 0 mcasts, 0 dropped
Transmit: 1157 packets, 0 errors, 132108 bytes, 0 mcasts, 0 dropped
Collisions: 0

~> listusb | grep -i intel
8087:0032 /dev/bus/usb/0/10/3 “Intel Corp.” “AX210 Bluetooth” ver. 0000

1 Like

~> listdev ?

Okay sorry for the delay… I purchased a second NVMe drive for my laptop so that I could have a permanent Haiku install rather than having to switch back and forth. I also updated to hrev 57709. The information as previously requested is as follows:

~> uname -a
Haiku shredder 1 hrev57709 Apr 21 2024 06:35:41 x86_64 x86_64 Haiku
~> listdev

device Bridge (Host bridge) [6|0|0]
  vendor 8086: Intel Corporation
  device 9a36: 11th Gen Core Processor Host Bridge/DRAM Registers

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 9a01: 11th Gen Core Processor PCIe Controller #1

device Display controller (VGA compatible controller, VGA controller) [3|0|0]
  vendor 10de: NVIDIA Corporation
  device 25a0: GA107M [GeForce RTX 3050 Ti Mobile]

device Multimedia controller (Audio device) [4|3|0]
  vendor 10de: NVIDIA Corporation
  device 2291: Unknown

device Display controller (VGA compatible controller, VGA controller) [3|0|0]
  vendor 8086: Intel Corporation
  device 9a60: TigerLake-H GT1 [UHD Graphics]

device Signal processing controller [11|80|0]
  vendor 8086: Intel Corporation
  device 9a03: TigerLake-LP Dynamic Tuning Processor Participant

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 9a0f: 11th Gen Core Processor PCIe Controller #0

device Mass storage controller (Non-Volatile memory controller, NVM Ex [1|8|2]
  vendor 144d: Samsung Electronics Co Ltd
  device a80c: Unknown

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 9a2d: Tiger Lake-H Thunderbolt 4 PCI Express Root Port #1

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 9a2f: Tiger Lake-H Thunderbolt 4 PCI Express Root Port #2

device Serial bus controller (USB controller, XHCI) [c|3|30]
  vendor 8086: Intel Corporation
  device 9a17: Tiger Lake-H Thunderbolt 4 USB Controller

   device Hub (Unused, Full speed (or root) hub) [9|0|0]
     vendor 0000: Unknown
     device 0000: Unknown

device Serial bus controller (USB controller, USB4 Host Interface) [c|3|40]
  vendor 8086: Intel Corporation
  device 9a1f: Tiger Lake-H Thunderbolt 4 NHI #0

device Serial bus controller (USB controller, USB4 Host Interface) [c|3|40]
  vendor 8086: Intel Corporation
  device 9a21: Tiger Lake-H Thunderbolt 4 NHI #1

device Serial bus controller (USB controller, XHCI) [c|3|30]
  vendor 8086: Intel Corporation
  device 43ed: Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller

   device Hub (Unused, Full speed (or root) hub) [9|0|0]
     vendor 0000: Unknown
     device 0000: Unknown

      device Video (Video Streaming) [e|2|1]
        vendor 13d3: IMC Networks
        device 5271: Unknown

      device Vendor Specific Class () [ff|0|0]
        vendor 06cb: Synaptics, Inc.
        device 00f9: Unknown

      device Human Interface Device (No Subclass, None) [3|0|0]
        vendor 056a: Wacom Co., Ltd
        device 52a3: Unknown

      device Wireless (Radio Frequency, Bluetooth) [e0|1|1]
        vendor 8087: Intel Corp.
        device 0032: AX210 Bluetooth

      device Mass Storage (SCSI, Bulk-Only) [8|6|50]
        vendor 0781: SanDisk Corp.
        device 5581: Ultra

device Memory controller (RAM memory) [5|0|0]
  vendor 8086: Intel Corporation
  device 43ef: Tiger Lake-H Shared SRAM

device Serial bus controller [c|80|0]
  vendor 8086: Intel Corporation
  device 43e8: Tiger Lake-H Serial IO I2C Controller #0

device Communication controller [7|80|0]
  vendor 8086: Intel Corporation
  device 43e0: Tiger Lake-H Management Engine Interface

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 43c0: Unknown

device Mass storage controller (Non-Volatile memory controller, NVM Ex [1|8|2]
  vendor 2646: Kingston Technology Company, Inc.
  device 500f: Unknown

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 43b8: Unknown

device (Unknown) (255:0:0) [ff|0|0]
  vendor 10ec: Realtek Semiconductor Co., Ltd.
  device 525a: RTS525A PCI Express Card Reader

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 43be: Unknown

device Network controller [2|80|0]
  vendor 8086: Intel Corporation
  device 2725: Wi-Fi 6 AX210/AX211/AX411 160MHz

device Bridge (ISA bridge) [6|1|0]
  vendor 8086: Intel Corporation
  device 4389: Unknown

device Multimedia controller (Multimedia audio controller) [4|1|0]
  vendor 8086: Intel Corporation
  device 43c8: Tiger Lake-H HD Audio Controller

device Serial bus controller (SMBus) [c|5|0]
  vendor 8086: Intel Corporation
  device 43a3: Tiger Lake-H SMBus Controller

device Serial bus controller [c|80|0]
  vendor 8086: Intel Corporation
  device 43a4: Tiger Lake-H SPI Controller
~> listimage | grep "dev/net"
14128 0xffffffff82720000 0xffffffff8277f000     0          0 /boot/system/add-ons/kernel/drivers/dev/net/iaxwifi200
TEAM 4441 (/bin/grep --color=auto dev/net):
~> listusb
0000:0000 /dev/bus/usb/0/hub "HAIKU Inc." "XHCI RootHub" ver. 0300
8087:0032 /dev/bus/usb/1/13 "Intel Corp." "AX210 Bluetooth" ver. 0000
0781:5581 /dev/bus/usb/1/16 "SanDisk Corp." "Ultra" ver. 0100
13d3:5271 /dev/bus/usb/1/7 "IMC Networks" "Integrated RGB Camera" ver. 6014
06cb:00f9 /dev/bus/usb/1/8 "Synaptics, Inc." "" ver. 0000
056a:52a3 /dev/bus/usb/1/9 "Wacom Co., Ltd" "Pen and multitouch sensor" ver. 0002
0000:0000 /dev/bus/usb/1/hub "HAIKU Inc." "XHCI RootHub" ver. 0300
~> ifconfig /dev/net/iaxwifi200/0
/dev/net/iaxwifi200/0
        Hardware type: Ethernet, Address: 00:00:00:00:00:00
        inet addr: --, Bcast: --, Mask: --
        MTU: 2294, Metric: 0, up broadcast
        Receive: 0 packets, 0 errors, 0 bytes, 0 mcasts, 0 dropped
        Transmit: 0 packets, 0 errors, 0 bytes, 0 mcasts, 0 dropped
        Collisions: 0
~> ifconfig /dev/net/iaxwifi200/0 scan
ifconfig: Scan on "/dev/net/iaxwifi200/0" failed: Device/File/Resource busy 
~> ifconfig /dev/net/iaxwifi200/0 list
name                             address              signal  auth
ifconfig: Getting networks failed: Network is downclear

I was also able to get a copy of the syslog via a USB stick, and it shows these messages related to the iaxwifi200:

KERN: pci_reserve_device(9, 0, 0, iaxwifi200)

KERN: [iaxwifi200] (iwx) bus_alloc_resource(3, [16], 0x0, 0xffffffffffffffff, 0x1,0x2)
KERN: set MTRRs to:
KERN:   mtrr:  0: base: 0x6f000000, size:  0x1000000, type: 0
KERN:   mtrr:  1: base: 0x70000000, size:  0x4000000, type: 0
KERN:   mtrr:  2: base: 0x80000000, size: 0x80000000, type: 0
KERN:   mtrr:  3: base: 0x614d1a0000, size:    0x20000, type: 0
KERN:   mtrr:  4: base: 0x4002320000, size:     0x8000, type: 1
KERN:   mtrr:  5: base: 0x4002300000, size:    0x20000, type: 1
KERN:   mtrr:  6: base: 0x4002200000, size:   0x100000, type: 1
KERN:   mtrr:  7: base: 0x4002000000, size:   0x200000, type: 1
KERN:   mtrr:  8: base: 0x4000000000, size:  0x2000000, type: 1
KERN: update_mtrrs(): Succeeded setting MTRRs after ignoring uncacheable ranges up to size 0x1000.

KERN: [iaxwifi200] (iwx) bus_alloc_resource(1, [1], 0x0, 0xffffffffffffffff, 0x1,0x2)

KERN: package_daemon: [5409611:  3012] iaxwifi200: could not read firmware iwx-ty-a0-gf-a0-77 (error -1)
KERN: iaxwifi200: failed to load init firmware

KERN: package_daemon: [5422346:  3012] KERN: [iaxwifi200] iaxwifi200: /dev/net/iaxwifi200/0
KERN: start_wlan: wlan started.
KERN: package_daemon: [5423179:  3012] KERN: iaxwifi200: init_driver(0xffffffff827804b0)
KERN: loaded driver /boot/system/add-ons/kernel/drivers/dev/net/iaxwifi200

KERN: [net/iaxwifi200/0] compat_open(0x2)
KERN: iaxwifi200: could not read firmware iwx-ty-a0-gf-a0-77 (error -1)
KERN: iaxwifi200: failed to load init firmware
KERN: /dev/net/iaxwifi200/0: link down, media 0x80 quality 1000 speed 0

I find the error messages about not being able to load the firmware file iwx-ty-a0-gf-a0-77 especially interesting, as if I look in the folder /system/data/firmware/iaxwifi200/ I can confirm that that file is missing, I only have these files:

~> ls /system/data/firmware/iaxwifi200/
iwx-cc-a0-63        iwx-Qu-c0-jf-b0-63    iwx-so-a0-gf4-a0-67
iwx-cc-a0-67        iwx-QuZ-a0-hr-b0-63   iwx-so-a0-gf4-a0.pnvm
iwx-license         iwx-QuZ-a0-hr-b0-67   iwx-so-a0-hr-b0-64
iwx-Qu-b0-hr-b0-63  iwx-QuZ-a0-jf-b0-63   iwx-so-a0-jf-b0-64
iwx-Qu-b0-jf-b0-63  iwx-so-a0-gf-a0-67    iwx-ty-a0-gf-a0-67
iwx-Qu-c0-hr-b0-63  iwx-so-a0-gf-a0.pnvm  iwx-ty-a0-gf-a0.pnvm

I can see the firware tarball from OpenBSD http://firmware.openbsd.org/firmware/7.5/iwx-firmware-20230629.tgz does contain some files named - iwx-ty-a0-gf-a0-77. Do these just need to be added to Haiku perhaps?

Thanks. Adam.

Create a new ticket for the driver. See: #18573 (iaxwifi200: could not load firmware) – Haiku (haiku-os.org)

1 Like

They should already be available in the package repositories. Just run pkgman full-sync (or pkgman up intel_wifi_firmwares for just the one package.)

@waddlesplash Erm… wouldn’t I need Internet access to use pkgman? I tried anyway, and got these errors:

~> pkgman full-sync

Refreshing repository "Haiku" failed   0%: Server not found
Refreshing repository "HaikuPorts" failed   0%: Server not found
Nothing to do.

and also:

~> pkgman up intel_wifi_firmwares

Refreshing repository "Haiku" failed   0%: Server not found
Refreshing repository "HaikuPorts" failed   0%: Server not found
Nothing to do.

Can you connect by cable, to download the firmwares and updates ?

@RogFanther Unfortunately not, there is no other Ethernet or Wifi port on the laptop. My only option is to transfer files over from another machine using a USB Stick formatted with the FAT filesystem.

What about USB Tethering using your phone or a USB Wifi dongle?

1 Like

What about USB tethering? Most Android phones support that now, and it generally works on Haiku.

Otherwise, you’ll have to manually copy the newer package over and then install it (pkgman install filename.hpkg should still work even if there’s no internet access.)

I don’t have a USB Wifi dongle. I tried tethering my phone, a Google Pixel 7a, but it doesn’t appear to work. I did the following:

  1. Connect it to the laptop using USB-C cable
  2. Enable USB Tethering in the Android Settings.
  3. In Haiku, running listusb shows: 18d1:4eeb /dev/bus/usb/1/3 "Google Inc." "Pixel 7a" ver. 0510.

Is there some other settings I am meant to change in Haiku to enable it to send IP traffic via the USB tether?

Okay… I downloaded the package’s .hpkg file from here: https://depot.haiku-os.org/#!/pkg/intel_wifi_firmwares/haikuports/haikuports_x86_64/2023_03_06/-/-/-/1/any?bcguid=bc471-VRHK and put it on my USB stick and transferred it to my laptop with the Haiku install.

I then ran pkgman install intel_wifi_firmwares-2023_03_06-1-any.hpkg, it then said:

Refreshing repository "Haiku" failed   0%: Server not found
Refreshing repository "HaikuPorts" failed   0%: Server not found
The following changes will be made:
    in system:
        upgrade package intel_wifi_firmwares-2022_01_11-5 to 2023_03_06-1 from local file
Continue? [yes/no] (yes): yes

[system] Applying changes...
[system] Changes applied. Old activation state backed up in "state_2024-04-26_22:33:40"
[system] Cleaning up...
[system] Done.

There was no change immediately after that to the status of the Wifi card, and so I rebooted the system.

Sadly the Wifi still doesn’t work, in syslog I now see different errors like:

KERN: iaxwifi200: could not load firmware, -2147483639
KERN: iaxwifi200: failed to load init firmware
KERN: iaxwifi200: timeout waiting for master

What should I try next please?
Is it worth me perhaps trying to do something with the newer OpenBSD firmware package: iwx-firmware-20230629.tgz

This message happens when the firmware load event did not complete (i.e. the hardware never indicated that firmware loading completed.) Newer firmware will not fix this, I don’t think.

Does the driver work on its native OpenBSD on this hardware? If so, then this must be a Haiku problem somehow. There are some bug reports with these sorts of timeouts, but it doesn’t seem to be especially common to have hardware with this problem (it doesn’t happen for me, at least.)

Possibly something is wrong with interrupt delivery or something like that, but I wouldn’t really know where to begin with debugging that…

Yes, it appears to work fine in OpenBSD 7.3.

1 Like

No, if the phone is compatible with our driver, it is r cognized automatically and you get an ip from dhcp. But thereare several variants ofusb tethering protocols, and not all of them are supported yet

See: Realtek Wifi-USB-Stick not working - Help - Haiku Community (haiku-os.org)

  • D-Link DWA 131 Wireless N USB Nano Adapter

On BeOS and Haiku, there are a few compatible USB to Ethernet/Wifi solutions.

There are a few cases where Wifi adapters either work/don’t work when loading firmware or in general on various laptops/desktops. Possibly, we can use already compatible USB-to-ethernet/wifi solution to get around this issue for many end users as an immediate workaround.

1 Like