AX201 Bluetooth

Just bought a mini PC to try Zorin Pro, so far I like it but for some reason, my bluetooth doesn't work. I ran some linux commands to see the status, bluetooth shows on the list but when I go on to activate the bluetooth, the option is greyed out. This is a BT 5.2 and found out it is Intel Corp. AX201 Bluetooth chip. I tried updating/upgrading and end/restarting bluetooth service, nothing is working but somehow WiFi on the same is working just fine.

Also, I tested other Asus Bluetooth USB adapter from another computer, it works. I want my built in BT (AX201 Chip) to work, any help would be greatly appreciated.

Hi, welcome to Zorin OS!

Can you launch a terminal and run the command:

lsmod | grep btusb

This will help verify if the module btusb is actually loaded. It should output something like this (yours might be different):

btusb                  77824  0
btrtl                  32768  1 btusb
btintel                57344  1 btusb
btbcm                  24576  1 btusb
btmtk                  12288  1 btusb
bluetooth            1028096  44 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm

If you see no output at all, that means is not loaded. You can do so with:

sudo modprobe btusb

To verify if it's working or not, you can run the command bluetoothctl. It should automatically start scanning for devices so you'd see a ton of output right away.

Welcome to the Forum!

Do you have updated Your System? And did you take a Look in the ''Additional Drivers'' Tab in Software & Updates if there are any Drivers offered?

I thought additional drivers only related to Graphics cards?

" Linux AX201 Bluetooth Driver

Based on the provided search results, here’s a concise answer:

The Intel AX201 Bluetooth driver is part of the iwlwifi driver, which is included in the Linux kernel. However, the firmware for the AX201 Bluetooth chip is not included in the standard Linux-firmware.git tree. This means that the Bluetooth functionality may not work out of the box.

To resolve this issue, you may need to downgrade the linux-firmware package to a version that includes the required firmware for your AX201 Bluetooth chip. For example, version 20220119 has been reported to work.

Additionally, you can try using the iwlwifi driver with an older kernel version, such as 5.16-rc3, which has been reported to work with the AX201 Bluetooth chip. However, this may not be a sustainable solution as it may not receive security updates.

It’s also important to note that Intel has a habit of breaking AX20x series wifi/bluetooth chips with updates to iwlwifi, which may require frequent downgrades or workarounds to maintain functionality.

For more information, you can refer to the following resources:

  1. Intel Wi-Fi Linux community page: Provides information on supported devices and firmware versions.
  2. Bugzilla: Reports and tracks issues related to Intel Wi-Fi on Linux.
  3. Phoronix article: “Intel Firmware Binaries Land For AX200/AX201 Bluetooth Linux Support” (October 2019) - Provides an overview of the firmware availability and issues.
  4. Manjaro Linux Forum: “Linux-firmware and Intel AX20x wifi/bluetooth cards” (February 2022) - Discusses downgrading linux-firmware to resolve issues with AX201 Bluetooth chip.

Remember to always check the compatibility and support status of your hardware with your Linux distribution and kernel version before attempting any workarounds or downgrades."

[Source: Brave A.I. Search engine via Mojeek alternative search option]

I think it offers more that only Graphics Card Drivers. It can offer Driver for Network Cards and other Stuff, too. I know that the AX201 should theoretically be supported by the linux-firmware Package because I saw that in the Past in the Changelog when an Update came. But I thought it could be a good Idea to take a Look there. It doesn't take much Time or makes Circumstances.

Remember to always check the compatibility and support status of your hardware with your Linux distribution and kernel version before attempting any workarounds or downgrades.

Yep, thanks for your input. I am not going to bother downgrading the firmware just to see the BT chip work as it appears there is no support for AX201. I in fact initiated a return process. This mini PC was N100 based, I just order one with Amd 6950H chip. Hopefully, everything will work out of the box on that one. So far loving Zorin Pro and the support here.

1 Like

Yes I did both update and upgrade, I think that's the religious steps to do when it comes to using Linux system. Thanks!

It does list the bluetooth modules when I ran lsmod command but the option to activate bluetooth remains greyed out. Like someone suggested below, I would rather replace the device than downgrading firmware to make it work. And, I want to thank you for your time replying to this thread.

lsmod | grep btusb
btusb                  77824  0
btrtl                  32768  1 btusb
btintel                57344  1 btusb
btbcm                  24576  1 btusb
btmtk                  12288  1 btusb
bluetooth            1028096  39 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 0b05:190e ASUSTek Computer, Inc. ASUS USB-BT500
Bus 003 Device 003: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I was able to connect to bluetooth devices once I connected the other ASUS BT USB adapter.

bluetoothctl
Agent registered
[CHG] Controller 08:BF:B8:4C:8B:A6 Pairable: yes
[Keyboard K780]# devices
Device CE:C0:EE:8A:23:05 Keyboard K780
Device DE:43:E0:47:DF:28 MX Master 3 B
Device F4:6A:D7:98:81:4A Xbox Wireless Controller
Device D7:14:A8:26:2E:F2 MX Ergo
[Keyboard K780]# 

$ rfkill list
0: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
1: hci1: Bluetooth
	Soft blocked: no
	Hard blocked: no
2: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no

1 Like

I have the same model, and it's working right out of the box.

Are you able to use the launcher on the taskbar? You should be able to see come activity on the command line once you start the bluetoothctl command:

  1. Launch the terminal and run bluetoothctl.
  2. Enable bluetooth.
  3. Scan for devices with scan on.
  4. Attempt to connect to a new device with connect <target_device_MAC_address>.
  5. Wait until it connects or perform additional steps as needed by the device.

However, it seems that Gnome is somehow interfering with this as I cannot get it to work through the command line at all. But on the same machine running Debian 12 XFCE (I'm running Zorin OS on a virtual machine), it works without an issues.

To check the status of the bluetooth service:

sudo systemctl status bluetoothctl.service

I'm guessing there's some kind of error showing up there for you. Try to restart it as well, and try again.

sudo systemctl restart bluetoothctl.service

Try also the solution proposed at the end in this Stack Overflow thread:

rmmod btusb
modprobe btusb
systemctl restart bluetooth

It's basically restarting the kernel module and then the service.

nlam108@nlam108-MPL1W:~$ lsmod | grep btusb
btusb                  77824  0
btrtl                  32768  1 btusb
btintel                57344  1 btusb
btbcm                  24576  1 btusb
btmtk                  12288  1 btusb
bluetooth            1028096  16 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
nlam108@nlam108-MPL1W:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 1532:007c Razer USA, Ltd Razer DeathAdder V2 Pro
Bus 003 Device 005: ID 1532:024e Razer USA, Ltd Razer BlackWidow V3
Bus 003 Device 003: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
nlam108@nlam108-MPL1W:~$ bluetoothctl
Agent registered
[bluetooth]# scan on
No default controller available
[bluetooth]# exit
nlam108@nlam108-MPL1W:~$ sudo systemctl status bluetoothctl.service
[sudo] password for nlam108:               
Unit bluetoothctl.service could not be found.
nlam108@nlam108-MPL1W:~$ sudo systemctl restart  bluetoothctl.service
Failed to restart bluetoothctl.service: Unit bluetoothctl.service not found.
nlam108@nlam108-MPL1W:~$ sudo systemctl restart  bluetooth.service
nlam108@nlam108-MPL1W:~$ sudo systemctl status  bluetooth.service
â—Ź bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor pre>
     Active: active (running) since Wed 2024-12-04 22:54:18 PST; 9s ago
       Docs: man:bluetoothd(8)
   Main PID: 76864 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 18681)
     Memory: 656.0K
        CPU: 47ms
     CGroup: /system.slice/bluetooth.service
             └─76864 /usr/lib/bluetooth/bluetoothd

Dec 04 22:54:18 nlam108-MPL1W systemd[1]: Starting Bluetooth service...
Dec 04 22:54:18 nlam108-MPL1W bluetoothd[76864]: Bluetooth daemon 5.64
Dec 04 22:54:18 nlam108-MPL1W systemd[1]: Started Bluetooth service.
Dec 04 22:54:18 nlam108-MPL1W bluetoothd[76864]: Starting SDP server
Dec 04 22:54:18 nlam108-MPL1W bluetoothd[76864]: Bluetooth management interface 1>

nlam108@nlam108-MPL1W:~$ rmmod btusb
rmmod: ERROR: ../libkmod/libkmod-module.c:799 kmod_module_remove_module() could not remove 'btusb': Operation not permitted
rmmod: ERROR: could not remove module btusb: Operation not permitted
nlam108@nlam108-MPL1W:~$ sudo rmmod btusb
nlam108@nlam108-MPL1W:~$ sudo modprobe btusb
nlam108@nlam108-MPL1W:~$ systemctl restart bluetooth
nlam108@nlam108-MPL1W:~$ systemctl status bluetooth.service
â—Ź bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor pre>
     Active: active (running) since Wed 2024-12-04 22:56:25 PST; 18s ago
       Docs: man:bluetoothd(8)
   Main PID: 77024 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 18681)
     Memory: 648.0K
        CPU: 47ms
     CGroup: /system.slice/bluetooth.service
             └─77024 /usr/lib/bluetooth/bluetoothd

Dec 04 22:56:25 nlam108-MPL1W systemd[1]: Starting Bluetooth service...
Dec 04 22:56:25 nlam108-MPL1W bluetoothd[77024]: Bluetooth daemon 5.64
Dec 04 22:56:25 nlam108-MPL1W systemd[1]: Started Bluetooth service.
Dec 04 22:56:25 nlam108-MPL1W bluetoothd[77024]: Starting SDP server
Dec 04 22:56:25 nlam108-MPL1W bluetoothd[77024]: Bluetooth management interface 1>

nlam108@nlam108-MPL1W:~$ 

So, I removed my Asus BT USB adapter and tried to work it out as you suggested but it still didn't show me the option to enable the bluetooth on the settings page. It remained greyed out. But as soon as I inserted the Asus BT USB adapter, it became active and was able to connect to my devices.

Can you try running power on inside the bluetoothctl prompt? In my previous screenshot I didn't need to use run this because I used the button from the popup menu.

The message "No default controller available" could simply mean that there is a controller available and recognized, but for whatever reason is just not using it by default. You can run list as well to see all the available controllers — controller in this context being the bluetooth interface.

One last thing, leave the bluetoothctl command running and plug in the external adapter. That might give us some clues as to what runs behind the scenes to enable the built-in bluetooth device.

I bought also X201


But I have drivers in box on cd plate.
Here more information.

Never saw that on my machines, only gpu drivers. From what i understood those other drivers are written in the kernel.

When You go to /etc/bluetooth/main.conf there should stand in the last Row AutoEnable=
Stands behind the = true or false?

1 Like

Funny enough, the comment description says that it defaults to "false" but I have it enabled, without changing anything (at least knowingly).

# AutoEnable defines option to enable all controllers when they are found.
# This includes adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'false'.
AutoEnable=true
1 Like

Was on my System, too. I changed it to false. Maybe the Zorin Crew think that it is better to set to true for a better Experience(?).

Yeah, I think it makes more sense to have it enabled; they probably just forgot to update the comment. On Debian 12, it's correct:

# AutoEnable defines option to enable all controllers when they are found.
# This includes adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'true'.
AutoEnable=true

:man_shrugging:

1 Like

AX201 working Super!

Mine was AX201. At this point, I think a BIOS update would probably fix my issue but, I already returned the PC so, moderator can close this post.

1 Like