Bluetooth is broken since latest update

This is still an issue.

Here is the output of inxi -b for the first machine with the issue:

System:
  Host: machine1 Kernel: 6.2.12-1-MANJARO arch: x86_64 bits: 64
    Desktop: KDE Plasma v: 5.27.4 Distro: Manjaro Linux
Machine:
  Type: Desktop System: Gigabyte product: X570 AORUS ULTRA v: -CF
    serial: <superuser required>
  Mobo: Gigabyte model: X570 AORUS ULTRA serial: <superuser required>
    UEFI: American Megatrends LLC. v: F36d date: 07/20/2022
CPU:
  Info: 8-core AMD Ryzen 7 3700X [MT MCP] speed (MHz): avg: 661
    min/max: 550/4426
Graphics:
  Device-1: AMD Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT]
    driver: amdgpu v: kernel
  Display: wayland server: X.org v: 1.21.1.8 with: Xwayland v: 23.1.1
    compositor: kwin_wayland driver: X: loaded: amdgpu
    unloaded: modesetting,radeon dri: radeonsi gpu: amdgpu resolution:
    1: 3440x1440 2: 1920x1080
  API: OpenGL v: 4.6 Mesa 23.0.2 renderer: AMD Radeon RX 6700 XT (navi22
    LLVM 15.0.7 DRM 3.49 6.2.12-1-MANJARO)
Network:
  Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi
  Device-2: Intel I211 Gigabit Network driver: igb
Drives:
  Local Storage: total: 11.61 TiB used: 9.75 TiB (84.0%)
Info:
  Processes: 447 Uptime: 7m Memory: 62.72 GiB used: 7.83 GiB (12.5%)
  Shell: Zsh inxi: 3.3.26

I use the internal Bluetooth on the motherboard, which comes with the AX200 WiFi chip. I have the provided antenna attached. It was working and then just stopped.

Here are the details for the second machine with the issue:


System:
  Host: machine2 Kernel: 6.2.12-1-MANJARO arch: x86_64 bits: 64 Console: pty pts/1
    Distro: Manjaro Linux
Machine:
  Type: Mini-pc System: ASUSTeK product: MINIPC PN50 v: 0624 serial: <superuser required>
  Mobo: ASUSTeK model: PN50 serial: <superuser required> UEFI: ASUSTeK v: 0624 date: 07/06/2022
CPU:
  Info: 6-core AMD Ryzen 5 4500U with Radeon Graphics [MCP] speed (MHz): avg: 1561
    min/max: 1400/2375
Graphics:
  Device-1: AMD Renoir driver: amdgpu v: kernel
  Display: server: X.org v: 1.21.1.8 with: Xwayland v: 23.1.1 driver: X: loaded: amdgpu
    unloaded: modesetting dri: radeonsi gpu: amdgpu tty: 169x44 resolution: 1920x1080
  API: OpenGL Message: GL data unavailable in console. Try -G --display
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169
  Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi
Drives:
  Local Storage: total: 465.76 GiB used: 29.34 GiB (6.3%)
Info:
  Processes: 240 Uptime: 2h 16m Memory: 30.78 GiB used: 3.76 GiB (12.2%) Init: systemd Shell: Bash
  inxi: 3.3.26

It also uses the AX200, so it seems there is a common issue there.

Please help. How do I move this forward?

Please help, what can I do to resolve this issue?

Maybe try using bluetoothctl on the terminal? Further information here: Bluetooth - ArchWiki

That command isn’t installed by default.

It seems to be provided by the bluez-utils package. Is that what you’re talking about? Is it safe to just install it?

KDE should be using bluez by default.
bluez-utilz should be safe to install.

I looked at that article and it seemed mostly to be about getting Bluetooth installed and working, but it was already working. It was working fine on these two machines (five now, three machines my friends are running Manjaro on with the Intel AX200 Bluetooth are having issues, too) but then it stopped working after the most recent set of updates.

I am trying to figure out why it stopped working. I have access to two machines with AX200 Bluetooth issues and both stopped when the same patches were applied, so it’s not hardware.

If I run bluetoothctl list it doesn’t show any devices. Was there an update to the Intel Bluetooth driver in the latest kernel? Or maybe the microcode from Intel?

What can I do next? Where do I report this sort of issue if not here?

there’s a repository in aur, called “linux-firmware-iwlwifi-git” that supports latest firmware updates for the intel chipset. give it a try.

That doesn’t look very safe:

pamac install linux-firmware-iwlwifi-git                                                                                                    
Warning: linux-firmware-iwlwifi-git is only available from AUR
Preparing...
Checking linux-firmware-iwlwifi-git dependencies...
Resolving dependencies...
Checking inter-conflicts...

To build (1):
  linux-firmware-iwlwifi-git  20191128.4bebf45-2                                                AUR
To remove (2):
  amd-ucode                   20230310.588dd07-1  (Conflicts With: linux-firmware-iwlwifi-git)  core
  linux-firmware              20230310.588dd07-1  (Conflicts With: linux-firmware-iwlwifi-git)  core

EDIT: And it’s three years out of date. And even if it’s not out of date, it’s a subset of files included in linux-firmware anyway.

it’s from kernel.org. if you don’t trust this source then you can’t trust your linux-kernel in general

pamac build linux-firmware-iwlwifi-git

I downloaded the latest microcode from here:

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

And compared it to what I have and I appear to have the firmware Intel says I am supposed to be using with the kernel I have, but that doesn’t mean that Intel hasn’t made a mistake here.

How do I establish where the issue is so I can report the problem to the appropriate party? It’s been over a week now that we’ve not had Bluetooth.

True, but the version gets updated after downloading the git repo.

PKGBUILD - aur.git - AUR Package Repositories

I fear that I am no help here. I don’t use bluetooth at all, although some devices can use it. Furthermore, I dislike it.

However… I cannot see any command which is called list here with bluetoothctl. Please educate yourself about this basic tool. Normally when the GUI doesn’t work, you can try to use the terminal and usually, you get more hints there.

A short look at the iwlwifi-LICENSE of the source you gave shows that the packages are from the year 2021 !!!
the actual firmware is from 2023 !!

it’s wasted time
i’m out

Before you accuse me of being an idiot…

Here is the help output for bluetoothctl, and it clearly shows a list option (in between transport and show:

bluetoothctl help                                                                                  
Menu main:
Available commands:
-------------------
advertise                                         Advertise Options Submenu
monitor                                           Advertisement Monitor Options Submenu
scan                                              Scan Options Submenu
gatt                                              Generic Attribute Submenu
admin                                             Admin Policy Submenu
player                                            Media Player Submenu
endpoint                                          Media Endpoint Submenu
transport                                         Media Transport Submenu
list                                              List available controllers
show [ctrl]                                       Controller information
select <ctrl>                                     Select default controller
devices [Paired/Bonded/Trusted/Connected]         List available devices, with an optional property as the filter
system-alias <name>                               Set controller alias
reset-alias                                       Reset controller alias
power <on/off>                                    Set controller power
pairable <on/off>                                 Set controller pairable mode
discoverable <on/off>                             Set controller discoverable mode
discoverable-timeout [value]                      Set discoverable timeout
agent <on/off/capability>                         Enable/disable agent with given capability
default-agent                                     Set agent as the default one
advertise <on/off/type>                           Enable/disable advertising with given type
set-alias <alias>                                 Set device alias
scan <on/off/bredr/le>                            Scan for devices
info [dev]                                        Device information
pair [dev]                                        Pair with device
cancel-pairing [dev]                              Cancel pairing with device
trust [dev]                                       Trust device
untrust [dev]                                     Untrust device
block [dev]                                       Block device
unblock [dev]                                     Unblock device
remove <dev>                                      Remove device
connect <dev>                                     Connect device
disconnect [dev]                                  Disconnect device
menu <name>                                       Select submenu
version                                           Display version
quit                                              Quit program
exit                                              Quit program
help                                              Display help about this program
export                                            Print environment variables

And even if linux-firmware-iwlwifi-git is not out of date, it forcefully uninstalls other, critical firmware packages for other hardware, at least from a common sense reading of what it says on the screen. And the firmware from that mini-package appears to be provided by linux-firmware anyway, rendering linux-firmware-iwlwifi-git pointless, at least as far as I can tell.

That AUR package is not made by kernel.org, but instead is made by an end user (elichai2) packaging a tiny sub-set of the kernel microcode git repo, and to install it I need to remove both amd-ucode and linux-firmware, essential packages for my system as far as I can tell.

And none of this answer my root question: how do I find out what’s wrong so I can report it in the right place to get this fixed? I have done what I was told:

I installed bluetoothctl and ran a command to list the hardware (which returned no results on any of the machines with this issue). What’s next?

I have provided the hardware details for the machines. I have listed the kernel versions. I have confirmed that the issue is consistent with this hardware and this kernel across multiple machines. I have included journalctl outputs.

No, not intended. Sorry if my wording makes you think that way.

I would check the kernel message if there are any issues.

sudo dmesg | grep -i bluetooth

Which don’t include the Bluetooth device? I checked it now on my laptop. It looks like this:

Bluetooth:
  Device-1: Realtek RTL8723B Bluetooth type: USB driver: btusb
  Report: bt-adapter ID: hci0 rfk-id: 17 state: down
    bt-service: enabled,running rfk-block: hardware: no software: yes
    address: 10:08:B1:21:D0:E0

OK, sudo dmesg | grep -i bluetooth has yielded a result:

[   13.651786] Bluetooth: Core ver 2.22
[   13.651806] NET: Registered PF_BLUETOOTH protocol family
[   13.651807] Bluetooth: HCI device and connection manager initialized
[   13.651812] Bluetooth: HCI socket layer initialized
[   13.651814] Bluetooth: L2CAP socket layer initialized
[   13.651819] Bluetooth: SCO socket layer initialized
[   13.993541] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   13.993545] Bluetooth: BNEP filters: protocol multicast
[   13.993550] Bluetooth: BNEP socket layer initialized
[   15.980086] Bluetooth: hci0: command 0xfc05 tx timeout
[   15.980093] Bluetooth: hci0: Reading Intel version command failed (-110)

And that error leads me to another post on this very forum from a user with broken Bluetooth begging for help:

I am with you: I would avoid Bluetooth if I had another option, but I need a wireless headset that also works with my phone, and Bluetooth is the only game in town that covers that niche. I only just started using it myself to allow me to talk and move around my office, and had been pleasantly surprised how well it worked… right up until it didn’t. I wish there was a “Bluetooth Pro” that worked over WiFi so at least there was an alternative to Bluetooth.

Intel Bluetooth and WiFi keep breaking on Manjaro, it seems. I have now found a litany of posts going back years that would seem to explain the terrible experience some of my friends and family have been having with Bluetooth and Intel AX200 Wireless on Manjaro (as I said, I am fairly new to Bluetooth and Manjaro, so this is the first time I have been impacted). When I search for the explicit error Reading Intel version command failed (-110) in the last month the only distros that seem to be impacted are Manjaro and Ubuntu.

I am not sure if the flakiness originates within Manjaro or upstream in Arch. While it also seems to impact Ubuntu, RedHat/Fedora don’t seem to have the same flakiness. Perhaps I need to have a deeper look at nobara.

So that leads me directly to this old bug: https://bugzilla.kernel.org/show_bug.cgi?id=215167

$ errno 110
ETIMEDOUT 110 Connection timed out

Basically, it means that the device is not fully initialized when the driver connects to it and the driver doesn’t wait long enough.

Maybe reloading the driver:

sudo systemctl stop bluetooth.service
sudo modprobe -rv btusb && sleep 10 && sudo modprobe -v btusb
sudo systemctl start bluetooth.service

Let a second terminal open and monitor dmesg:

sudo dmesg --follow-new
2 Likes

Riiiiiiiiiiiiiiiiiiight.

That code chuck didn’t fix it (it just produced the same -100 error), but this did:

sudo systemctl stop bluetooth.service
sudo modprobe -rv btusb

Wait ten seconds.

sudo modprobe -v btusb
sudo systemctl start bluetooth.service

And while this did “solve”-ish the issue, I can definitively prove this is not a hardware issue: the PN50 my mother runs Manjaro on has this issue with this kernel (6.2.12-1) as well. I installed linux61 and linux61-headers and then did the GRUB interrupt and manually booted to 6.1 and lo and behold Bluetooth was back. I would run the same test on my machine but it would break an AMD P-State experiment I am running.

This seems to be a code regression that creeps back into Manjaro (possibly via Arch upstream as I have found some historical issues with Arch and Bluetooth about this) and Ubuntu (possibly from their upstream). The current kernel for nobara is a little more recent than the Manjaro one so that’s not a direct comparison, but while this issue seems to crop up every three to six months on Manjaro and Ubuntu I just don’t see anything about it in the Fedora, Redhat or SUSE communities since 2019/2020.

I wonder if there is some kernel patch that Ubuntu and Manjaro both apply that perhaps Fedora, RHEL and SUSE don’t that causes this every now and again? And, how the hell do I report this, and who the hell do I report it to?

But, for now at least, I have a workaround. A hack, but it works. I guess I can make a service script to fix this on boot. I will have a tinker with what the absolute minimum delay I can get away with is.

Thankyou for your patience and assistance!

1 Like

My guess is that Ubuntu and Manjaro don’t have a patch for this, while Fedora, RHEL and SUSE patched it, or use an older kernel. You can file an issue here: Issues · Packages / Core / linux62 · GitLab So maybe they add a patch, but commonly the devs try to avoid custom patches. I am also unsure what kind of patch would be needed here. Since the kernel is as clean as possible, you would file an issue upstream to the kernel devs.

1 Like

I’m the guy from the post you linked, I can confirm that it seems to have something to do with the kernel bug, after switching back to 5.10 it works. Weirdly after now switching back to 6.2 it still works fine. I will keep you updated if it breaks again but for now this seems to be a workaround that works.

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.