Wireless
Participate in insightful discussions regarding issues related to Intel® Wireless Adapters and technologies
8536 Discussions

Intel AX200 bluetooth won't work on Linux

kapa
New Contributor I
32,570 Views

Hi,

I purchased a PCIE AX200 Wifi6 and Bluetooth adapter for my notebook (Asus Zenbook 14 OLED) as the WiFi performance of the factory delivered adapter of another manufaturer was not that good.

With AX200, Wifi was working out of the box, but the bluetooth device was not recognized at all. 


Since I have a dual boot set up, I booted into Windows 11 and wifi worked out of the box too, however the bluetooth adapter was not recognized, but after intalling Intel PROSet drives it was working! 

Conclusion: no hardware problem as such.

Then I disabled fast boot in BIOS and shut down the notebook. After a cold boot I could see the Bluetooth adapter in Linux dmesg, but the system fails to initialize it:

dmesg | grep Blue
[    9.205446] Bluetooth: Core ver 2.22
[    9.205474] Bluetooth: HCI device and connection manager initialized
[    9.205479] Bluetooth: HCI socket layer initialized
[    9.205482] Bluetooth: L2CAP socket layer initialized
[    9.205488] Bluetooth: SCO socket layer initialized
[    9.279965] Bluetooth: hci0: Bootloader revision 0.3 build 0 week 24 2017
[    9.281972] Bluetooth: hci0: Device revision is 1
[    9.281977] Bluetooth: hci0: Secure boot is enabled
[    9.281980] Bluetooth: hci0: OTP lock is enabled
[    9.281982] Bluetooth: hci0: API lock is enabled
[    9.281985] Bluetooth: hci0: Debug lock is disabled
[    9.281987] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[    9.310291] Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
[    9.310300] Bluetooth: hci0: Boot Address: 0x24800
[    9.310302] Bluetooth: hci0: Firmware Version: 132-3.24
[    9.614685] Bluetooth: hci0: Failed to send firmware data (-19)
[    9.614724] Bluetooth: hci0: sending frame failed (-19)
[    9.614737] Bluetooth: hci0: FW download error recovery failed (-19)
[    9.614776] Bluetooth: hci0: sending frame failed (-19)
[    9.614786] Bluetooth: hci0: Reading supported features failed (-19)
[    9.614789] Bluetooth: hci0: Error reading debug features
[    9.614793] Bluetooth: hci0: HCI LE Coded PHY feature bit is set, but its usage is not supported.
[    9.614803] Bluetooth: hci0: sending frame failed (-19)
[    9.614812] Bluetooth: hci0: Failed to read MSFT supported features (-19)
[   10.175761] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   10.175768] Bluetooth: BNEP filters: protocol multicast
[   10.175774] Bluetooth: BNEP socket layer initialized


I am running Fedora 40 with kernel 6.8.8, also compiled tried 6.9 and 6.1.9 myself to see if it helps. Also tried Manjaro 240513 with kernel 6.9

Correspondingly hcitool, rfkill commands don't show anything and  /sys/class/bluetooth is an empty directory.

I could not find any info on which kernel it was supposed to work and why loading the firmware fails. I have tried different linux-firmware versions too, from latest Fedora to latest from kernel.org, just the (-19) code changes to (-22).

If I insert a USB bluetooh dongle, it works immediately, but not the AX200 bluetooth module, please help figuring out what can be done.

Best regards,

Kapa 

 

# inxi -E
Bluetooth:
  Message: No bluetooth data found.

# hcitool  dev
Devices:

# rfkill list
1: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
0 Kudos
1 Solution
kapa
New Contributor I
28,725 Views

Hi,

I just want to post an update on this. I solved the problem. Now I have a fully functional PCI-E card with WiFi and Bluetooth.

But since you whre reluctant to help me, I won't tell you what I did.

Enjoy your day,
kapa

View solution in original post

0 Kudos
38 Replies
kapa
New Contributor I
19,019 Views
Hi,

The WiFi capability of the AX200 card is not under question in this case, as it works a way better than the MediaTek card.

It is the Bluetooth capability which does not work.

I am working with Linux since kernel 2.2, back in the days around 1999 no hardware was designed for Linux and despite that we have got it running.

I understand that you don’t want to look into that tissue as it would mean a challenge and you may not have time for it.

Luckily it’s not 1999 anymore and I can afford to buy an other PCIE WiFi card to test out with the hardware.

Less likely an Intel card though.

Thanks anyway.


0 Kudos
Caguicla_Intel
Moderator
18,970 Views

Hi kapa,

 

Appreciate your feedback on this matter.

 

Please understand that it is not a matter of reluctance to assist you further. Our commitment to providing comprehensive support remains strong.

 

However, we are currently facing a limitation in this particular matter. As your laptop is an Original Equipment Manufacturer (OEM) unit, and considering that the wireless card has been upgraded, we must adhere to certain protocols. These upgrades typically require approval from the OEM to ensure compatibility and maintain the integrity of the system.

  

Should you have any questions or require further clarification, please do not hesitate to reach out.

 

Best regards,

 

Caguicla C.

Intel® Customer Support Technician


0 Kudos
kapa
New Contributor I
18,900 Views

Hi,

for me commitment to providing comprehensive support  means something else.


You as hardware manufacturer declare Linux compatibility of the AX200 but are not interested in making it work in recent kernels hiding behind OEM restrictions.


Sticking a PCIE card in a self-built PC  is same as sticking it into a notebook in my view. I bought the hardware from my after-tax money and it belongs to me, I can do with it it what I want.

 

I don't believe ASUS will come to my home and beat me up for changing a network card. Also I dont believe they will come to your home and beat you up for helping me making the bluetooth run on the AX200 under Linux... wait a moment, they won't as you won't help me out anyway...

Hiding behing OEM restrictions and finger pointing to other manufacturers is so easy.

Enjoy doing nothing!


0 Kudos
Caguicla_Intel
Moderator
18,486 Views

Hi kapa,

 

I have discussed this issue with our engineering team. Please see the feedback provided below.

 

Please install the latest and stable version of the mainline kernel, 6.9, available at kernel.org. This version includes the most recent wireless/Bluetooth firmware for the Intel AX200, version 77 (iwlwifi-cc-a0-ucode), which could potentially fix the problem.

https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/intel

intel/ibt-20-1-4.sfi

intel/ibt-20-0-3.sfi

 

If, after updating, you find that the issue persists, I recommend re-installing Fedora with Silverblue to ensure you have the latest Kernel. Alternatively, it may be beneficial to contact your PC manufacturer to verify whether your system is upgradable and compatible with the AX200 module.

 

Please do not hesitate to reach out if you require further assistance or if you have any questions regarding the process.

 

Best regards,

 

Caguicla C.

Intel® Customer Support Technician


0 Kudos
kapa
New Contributor I
18,456 Views

Hi Caguicla C.,

thanks for coming back on it, I appreciate it!

I made a request to ASUS whether they support other network cards in the notebook than the originally delivered ones, but the reply is yet pending, I'll keep you updated on that.

Thanks for confirming, that kernel 6.9 and ibt-20-1-4.sfi and ibt-20-0-3.sfi should work with the cards.

This is an important info, because meanwhile I compiled a vanilla kernel 6.9 and added trace messages to btintel.c as well as increasing timeouts.

Looking on the flow in the btintel driver, it sends the  ibt-20-1-3.sfi firmware to the card based on hwinfo it reads from it.
The firmware is loaded in 1.3 sec, then I see a USB disconnect in dmesg, then the driver times out on waiting for the bluetooth device  to come up with the loaded firmware.

I have also read in some public resources, that it should be ibt-20-1-4.sfi for that card, so I hardcoded ibt-20-1-4.sfi in the btintel.c file to be downloaded to the card, but it also didn't come up with the loaded firmware.

I will try hardcoding the ibt-20-0-3.sfi  firmware file and if it does not help, install Fedora Silverblue from scratch.

Will let you know later.

Cheers,

kapa

0 Kudos
Caguicla_Intel
Moderator
18,334 Views

Hi kapa,

 

It's our pleasure to assist you. Please be assured that we are fully committed to providing you with the necessary support. Nonetheless, for the most accurate and detailed information, we recommend contacting your manufacturer directly. We look forward to your feedback after you've followed the recommendations and received a response from Asus regarding this issue.

 

Best regards,

 

Caguicla C.

Intel® Customer Support Technician


0 Kudos
kapa
New Contributor I
18,297 Views

Hi Caguicla,

 

I inquired with ASUS support regarding potential technical limitations in replacing the factory-installed WiFi module with one from a different manufacturer, as I am experiencing suboptimal performance with the original module.

ASUS's response was rather brief and can be summarized as follows:

  • Replacing any modules except SSD modules would void the warranty (which is not a concern for me).
  • ASUS does not support Linux (and has never done so).

Despite my specific question about possible technical limitations, such as hard coding in the BIOS or other constraints tied to the original card, their response focused solely on warranty issues and their lack of Linux support.

Based on this, I am inclined to believe there are no technical limitations.


Regarding my tests:

- I compiled the latest mainline kernel 6.9.3 from kernel.org
- took latest linux-firmare package linux-firmware-20240513.tar.gz from git.kernel.org
- booted and the kernel tried to load ibt-20-1-3.sfi  and failed:

 

 

[    9.799353] Bluetooth: Core ver 2.22
[    9.802787] Bluetooth: HCI device and connection manager initialized
[    9.803337] Bluetooth: HCI socket layer initialized
[    9.806809] Bluetooth: L2CAP socket layer initialized
[    9.808284] Bluetooth: SCO socket layer initialized
[    9.872109] Bluetooth: hci0: Bootloader revision 0.3 build 0 week 24 2017
[    9.874118] Bluetooth: hci0: Device revision is 1
[    9.874123] Bluetooth: hci0: Secure boot is enabled
[    9.874126] Bluetooth: hci0: OTP lock is enabled
[    9.874128] Bluetooth: hci0: API lock is enabled
[    9.874129] Bluetooth: hci0: Debug lock is disabled
[    9.874132] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[    9.879597] Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
[    9.879621] Bluetooth: hci0: Boot Address: 0x24800
[    9.879623] Bluetooth: hci0: Firmware Version: 132-3.24
[   10.371396] Bluetooth: hci0: Failed to send firmware data (-19)
[   10.372616] Bluetooth: hci0: sending frame failed (-19)
[   10.372624] Bluetooth: hci0: FW download error recovery failed (-19)
[   10.372669] Bluetooth: hci0: sending frame failed (-19)
[   10.375926] Bluetooth: hci0: Reading supported features failed (-19)
[   10.375930] Bluetooth: hci0: Error reading debug features
[   10.377525] Bluetooth: hci0: HCI LE Coded PHY feature bit is set, but its usage is not supported.
[   10.377551] Bluetooth: hci0: sending frame failed (-19)
[   10.379290] Bluetooth: hci0: Failed to read MSFT supported features (-19)
[   10.856054] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   10.857260] Bluetooth: BNEP filters: protocol multicast
[   10.858384] Bluetooth: BNEP socket layer initialized

 

 

Then I patched the drivers/bluetooth/btintel.c here, to use sfi-20-0-3.sfi:

 

 

 1928 static int btintel_get_fw_name(struct intel_version *ver,
   1929                                              struct intel_boot_params *params,
   1930                                              char *fw_name, size_t len,
   1931                                              const char *suffix)
   1932 {
   1933         switch (ver->hw_variant) {
   1934         case 0x0b:      /* SfP */
   1935         case 0x0c:      /* WsP */
   1936                 snprintf(fw_name, len, "intel/ibt-%u-%u.%s",
   1937                          ver->hw_variant,
   1938                          le16_to_cpu(params->dev_revid),
   1939                          suffix);
   1940                 break;
   1941         case 0x11:      /* JfP */
   1942         case 0x12:      /* ThP */
   1943         case 0x13:      /* HrP */
   1944         case 0x14:      /* CcP */
   1945                 snprintf(fw_name, len, "intel/ibt-%u-%u-%u.%s",
   1946                          ver->hw_variant,
   1947                          //ver->hw_revision,
   1948                          0, // <-- HW revision overrid
   1949                          ver->fw_revision,
   1950                          suffix);
   1951                 break;
   1952         default:
   1953                 return -EINVAL;
   1954         }
   1955 
   1956         return 0;
   1957 }

 

 

 Then compiled the module, copied to /lib/modules and booted:

 

[    9.769117] Bluetooth: Core ver 2.22
[    9.771725] Bluetooth: HCI device and connection manager initialized
[    9.771733] Bluetooth: HCI socket layer initialized
[    9.771739] Bluetooth: L2CAP socket layer initialized
[    9.771750] Bluetooth: SCO socket layer initialized
[    9.882282] Bluetooth: hci0: Bootloader revision 0.3 build 0 week 24 2017
[    9.884270] Bluetooth: hci0: Device revision is 1
[    9.884272] Bluetooth: hci0: Secure boot is enabled
[    9.884274] Bluetooth: hci0: OTP lock is enabled
[    9.884275] Bluetooth: hci0: API lock is enabled
[    9.884276] Bluetooth: hci0: Debug lock is disabled
[    9.884277] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[    9.892153] Bluetooth: hci0: Found device firmware: intel/ibt-20-0-3.sfi
[    9.892187] Bluetooth: hci0: Boot Address: 0x24800
[    9.892189] Bluetooth: hci0: Firmware Version: 255-255.255
[   10.344558] Bluetooth: hci0: Failed to send firmware data (-19)
[   10.345536] Bluetooth: hci0: sending frame failed (-19)
[   10.345543] Bluetooth: hci0: FW download error recovery failed (-19)
[   10.345579] Bluetooth: hci0: sending frame failed (-19)
[   10.348092] Bluetooth: hci0: Reading supported features failed (-19)
[   10.348094] Bluetooth: hci0: Error reading debug features
[   10.348096] Bluetooth: hci0: HCI LE Coded PHY feature bit is set, but its usage is not supported.
[   10.348103] Bluetooth: hci0: sending frame failed (-19)
[   10.351134] Bluetooth: hci0: Failed to read MSFT supported features (-19)
[   10.856449] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   10.858063] Bluetooth: BNEP filters: protocol multicast
[   10.858071] Bluetooth: BNEP socket layer initialized

 

As you can see, it tried ibt-20-0-3.sfi, the firmware version was also different to 20-1-3, but failed to load it.

Then I tried the same override for ibt-20-1-4.sfi and booted:

 

[    9.652104] Bluetooth: Core ver 2.22
[    9.652146] Bluetooth: HCI device and connection manager initialized
[    9.652151] Bluetooth: HCI socket layer initialized
[    9.652155] Bluetooth: L2CAP socket layer initialized
[    9.652164] Bluetooth: SCO socket layer initialized
[    9.777506] Bluetooth: hci0: Bootloader revision 0.3 build 0 week 24 2017
[    9.781773] Bluetooth: hci0: Device revision is 1
[    9.781778] Bluetooth: hci0: Secure boot is enabled
[    9.781781] Bluetooth: hci0: OTP lock is enabled
[    9.781782] Bluetooth: hci0: API lock is enabled
[    9.781784] Bluetooth: hci0: Debug lock is disabled
[    9.781785] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[    9.787984] Bluetooth: hci0: Found device firmware: intel/ibt-20-1-4.sfi
[    9.793840] Bluetooth: hci0: Boot Address: 0x24800
[    9.794968] Bluetooth: hci0: Firmware Version: 132-3.24
[   10.230339] Bluetooth: hci0: Failed to send firmware data (-19)
[   10.231480] Bluetooth: hci0: sending frame failed (-19)
[   10.231488] Bluetooth: hci0: FW download error recovery failed (-19)
[   10.233615] Bluetooth: hci0: sending frame failed (-19)
[   10.233624] Bluetooth: hci0: Reading supported features failed (-19)
[   10.233626] Bluetooth: hci0: Error reading debug features
[   10.233628] Bluetooth: hci0: HCI LE Coded PHY feature bit is set, but its usage is not supported.
[   10.233637] Bluetooth: hci0: sending frame failed (-19)
[   10.233642] Bluetooth: hci0: Failed to read MSFT supported features (-19)
[   10.726374] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   10.727821] Bluetooth: BNEP filters: protocol multicast
[   10.727840] Bluetooth: BNEP socket layer initialized

 


But if also failed. So all 3 sfi files are not loaded.  As I was reluctant to try Fedore Silverblue due to it's atomic nature, I also intalled Manjaro kde-24.0.1-240529-linux69.iso, which was runnin kernel 2.9 but it booted with same errors.

I will give the Fedora Silverblue a try today and send an update.


Cheers,
kapa

0 Kudos
kapa
New Contributor I
18,224 Views

Hi,

I installed Fedora Silverblue, this was a disaster it runs kernel 6.8.5 and does not ieven recognise the bluetooth module of AX200, even after loading btintel module.

I tried to rebase on rawhide version, it runs kernel 6.10.0, but also does not recognise the module. These atomic distros are a bit too complicated for me at the moment. It's pretty impossible to upgrade a kernele version in this containerized env.


However insering a bluetooth USB module works like a charm...

 

I would appreciate any help further...

Best,

kapa

0 Kudos
Caguicla_Intel
Moderator
18,093 Views

Hi kapa,

 

I'll forward your feedback to our team and get back to you once we heard from them.

 

Best regards,

 

Caguicla C.

Intel® Customer Support Technician


0 Kudos
kapa
New Contributor I
17,988 Views

Hi Caguicla,


thanks for forwarding the info to your team!

I did some fresh installations of following Linux distributions with default kernels, all of them give the same error as above:

- Fedora 40 Plasma, kernel 6.8.8, 6.8.9, (compiled: 6.9.3, 6.10.rc1)
- Fedora Silverblue (also rebased to Bazzite): kernel 6.8.5, 6.10.0
- Ubuntu 24.04: kernel 6.8
- Elementary OS 7.1: kernel 6.2
- Debian 12: kernel 6.1.0.9
- PopOS! 22.04: kernel 6.8

I am sitting on PopOS! at the moment. Did not try Gentoo yet, but don't believe it wll help.

Btw. sticking in a no name USB Bluetooth dongle with CSR8510A10 chip works immediately on all distros, that is what I use at the moment to overcome the situation. Just it occupies the single full size USB port

Let me know if you need more info or want me to do some installations, patches, etc.


Best,
kapa

0 Kudos
Caguicla_Intel
Moderator
13,831 Views

Hello Kapa,

 

Thank you for your patience.

 

After a thorough review of your case, we have determined that the issue you are experiencing requires specialized assistance from the Linux distribution software support team. This is due to the limitations of our current scope of support.

 

We recommend that you reach out to the Linux distribution support team for further investigation and resolution of this matter. They possess the necessary expertise and resources to provide you with the most effective solutions.

 

Thank you for your understanding and cooperation. Should you require any additional information or assistance from our end, please feel free to contact us.

 

Best regards,

 

Caguicla C.

Intel® Customer Support Technician


0 Kudos
kapa
New Contributor I
10,255 Views

Hi Caguicla,

thanks for your reply. However your answer is again from "finger pointing department" towards Linux distro support rather than attempting to solve the issue as hardware manufacturer.

I listed 6 distros above where the BT module of AX200 is not working. Do you want me to contact all of them?

It's a general problem across most of distros, and pretty common, if you Google for  "ax200 bluetooth linux", you will see.

So, by all due respect, I can't accept your answer as a solution. 


Best regards,

kapa

0 Kudos
Caguicla_Intel
Moderator
5,773 Views

Hi Kapa,

 

I checked this again with our engineering team. Please refer to the feedback below.

 

Check the output as below command to confirm again the this system identifies AX200 Bluetooth adapter.

#hciconfig -a

#lsusb

#lshw

'Complete' dmesg

# sudo dmesg > dmesg.log

 

Be reminded that this is self-integrating (and ASUS mentioned that the PC doesn't support Linux), there may be compatibility issues when using this Asus PC/AX200 with Linux OS. You may reach out to Linux community forums for possible workarounds

e.g. 

  • Use an older version of Kernel that may work
  • Try to disable USB 3.0 or xHCI mode (so EHCI mode will be used instead) in BIOS.
  • Keep the USB device always on, #echo 'on' | sudo tee /sys/bus/usb/devices/usbX/power/control (Replace usbX with the number of AX200 Bluetooth )

 

Try the following workarounds to disable USB autosuspend

 

Best regards,

 

Caguicla C.

Intel® Customer Support Technician


0 Kudos
kapa
New Contributor I
4,838 Views

Hi Caguicla,

great to hear back from you!

Please find the command outputs in the attached logs.tar.gz archive:

87713 Jun 18 10:41 dmesg.txt
0 Jun 18 10:40 hciconfig.txt
28987 Jun 18 10:40 lshw.txt
406 Jun 18 10:40 lsusb.txt

Note, that the output of the hciconfig is empty.

I understand there my be compatibility issues, but I need to know it for sure.
The AX200 adapter fully works in Windows (WiFi + Bluetooth) and there are numerous reports of
broken functionality of Bluetooth in Linix for the AX200.

If there is a regression, since you suggest to try an older kernel - do you happen to know which version is known to work with AX200?

I will try the USB tweaks and come back to you.


Best regards,
kapa

0 Kudos
kapa
New Contributor I
4,292 Views

I aplogize, I forgot to take out the USB bluetooth dongle, so there are new dmesg and lshw outputs.

Hciconfig and lsusb are same.


0 Kudos
kapa
New Contributor I
4,278 Views

Hi,

just a quick update:

- disabling USB 3.0 or to EHCI in BIOS is not possible (no such options in BIOS)

- changing power / autosuspend mod did not help too

As far as I understand, the kernel module btintel detects a supported device, loads a firmware to it and waits until it comes up with the firmware.

I see a disconnect of USB device 3-3 in dmesg, and later a timeout from the btintel module. So the device does not come up and is not detected anymore with lsusb. 

So, the firmware download from btintel module kinda wrecks the USB device until a cold start.

Disabling USB power / autosuspend does not help, as the device is not avaialable.

One remaining thing is tryin to get it running with an older kernel, but which one?

0 Kudos
Caguicla_Intel
Moderator
4,261 Views

Hi kapa,

 

I will pass on your response to our engineering team. Please await my update before we continue with this request.

 

Best regards,

 

Caguicla C.

Intel® Customer Support Technician


0 Kudos
Caguicla_Intel
Moderator
4,198 Views

Hi kapa,

 

Upon reviewing the provided logs and running hciconfig, it appears that no details regarding the Bluetooth (BT) adapter are present. Similarly, lsusb does not yield any information about the BT device. This suggests that the adapter may not be recognized by the system. To address this, I recommend verifying the adapter's compatibility and ensuring it has been integrated correctly. Please contact your system manufacturer for further assistance with these checks.

 

Regarding your inquiry about older kernel versions, it may be beneficial to seek advice from the Linux community forums. The members there often have a wealth of knowledge and experience and may be able to offer practical workarounds for your situation.

 

Best regards,

 

Caguicla C.

Intel® Customer Support Technician


0 Kudos
Reply