I installed Tumbleweed (KDE) today and my bluetooth headphones always fail after a (seemingly random) amount of time where audio is not playing. This can be as long as 10 min or as short as 2 seconds. Once this happens, I don’t hear any audio until I repower and reconnect the device.
The device is listed as connected as a bluetooth device, and shows up as an audio sink where audio is being sent (at least according to pavucontrol).
In journalctl I get these messages whenever it disconnects:
Mar 30 23:53:01 altair wireplumber[25700]: 0x555e9838ae08: error 24
Mar 30 23:53:01 altair wireplumber[25700]: (bluez_output.80_C3_BA_4E_51_CF.1-118) running -> error (Received error event)
Mar 30 23:53:01 altair wireplumber[25700]: Failure in Bluetooth audio transport /org/bluez/hci0/dev_80_C3_BA_4E_51_CF/sep4/fd14
Mar 30 23:53:01 altair pipewire[25691]: pw.node: (bluez_output.80_C3_BA_4E_51_CF.1-118) running -> error (Received error event)
This ends up having me constantly repower my headphones over and over and over again while watching things, as even brief silences can cut it. Audio is effectively unusable.
Pipewire is ver. 1.0.4-2.1, Bluez is 5.71-3.2, Plasma is 6.0.3-1.1.
I should clarify that the headphones worked perfectly fine when I was previously running Arch. They also work just fine with my laptop running Fedora. This seems to be an issue with the software, rather than the hardware itself.
Are the headphones connected to a USB BT device? USB autosuspend (for power management ) could be at play here.
Get a list of USB devices with
lsusb
You can disable autosuspend for a given device using a custom udev rule eg /etc/udev/rules.d/50-bluetooth.rules… ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0a12", ATTR{idProduct}=="0001", ATTR{power/autosuspend}="-1"
Substitute the vendor ID and product ID to suit the device in question.
Apparently in the hour of using the PC, the issue stopped happening. Not sure why; I didn’t dup or change any config files or KDE settings. If it pops back up again tonight I’ll try to grab some outputs.
In the meantime, while things are working now, here’s the output from inxi:
Bluetooth:
Device-1: Intel AX200 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-6.1:4 chip-ID: 8087:0029
class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 2 state: up address: <filter> bt-v: 5.2
lmp-v: 11 status: discoverable: no pairing: no class-ID: 6c0104
I have seen this issue also pop up randomly with a BT-headphone, sometimes after some idle period the headphone does not want to start playing music. I am quite sure it is not related to USB or BT power save functionality as if I power off the headset the system detects that the headset is gone (so it was present before) and switches the audio to another sink.
Not spent time to debug it but some suggestions on how to do that would be welcome.
Paste the output of that command in LibreOffice Cald and split on space so that the line numbers are in the first column
Calculate the difference in line numbers between each boot, this are the number of BT log messages for a particular boot/run
In theory a boot/run with problems should give more lines then normal but I saw all numbers between 77 and 87 expect for one 30 and one 126.
The 30 line boot/run was very short, so I did reboot the PC fast
The 126 line boot/run is the run for yesterday there it did manually disconnect the headset to go shopping while the computer kept running. When back I did reconnect the headset and it was working.
So not found the problem in the logs of the last 15 days. Will next time write down the time the problem happens. Maybe @gctypo has more luck catching a problem run?
What I noticed is that also the 34 “good” runs are not free from log warnings and errors, they are almost the same for each log, for one log:
Mar 27 20:30:57 bluetoothd: Bluetooth daemon 5.71
Mar 27 20:30:57 bluetoothd: Starting SDP server
Mar 27 20:30:57 bluetoothd: src/plugin.c:plugin_init() System does not support csip plugin
Mar 27 20:30:57 bluetoothd: profiles/audio/micp.c:micp_init() D-Bus experimental not enabled
Mar 27 20:30:57 bluetoothd: src/plugin.c:plugin_init() System does not support micp plugin
Mar 27 20:30:57 bluetoothd: src/plugin.c:plugin_init() System does not support vcp plugin
Mar 27 20:30:57 bluetoothd: src/plugin.c:plugin_init() System does not support mcp plugin
Mar 27 20:30:57 bluetoothd: src/plugin.c:plugin_init() System does not support bass plugin
Mar 27 20:30:57 bluetoothd: src/plugin.c:plugin_init() System does not support bap plugin
Mar 27 20:30:57 bluetoothd: src/plugin.c:plugin_init() System does not support admin plugin
Mar 27 20:30:57 bluetoothd: Bluetooth management interface 1.22 initialized
Mar 27 20:30:57 bluetoothd: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Failed (0x03)
Mar 27 20:30:57 bluetoothd: Battery Provider Manager created
Mar 27 20:30:57 dbus-daemon[1163]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.0' (uid=0 pid=1162 comm="/usr/libexec/bluetooth/bluetoothd")
Mar 27 20:30:57 bluetoothd: Failed to clear UUIDs: Failed (0x03)
Mar 27 20:30:57 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:30:57 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:30:57 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:30:57 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:30:57 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:30:57 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:31:03 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:31:03 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:31:03 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:31:03 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:31:03 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:31:03 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:31:03 bluetoothd: Failed to add UUID: Failed (0x03)
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSource/ldac
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSink/aptx_hd
<cut more similar messages>
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSource/faststream
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSource/faststream_duplex
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSink/opus_05
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSource/opus_05
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Mar 27 20:31:05 bluetoothd: Endpoint registered: sender=:1.56 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Mar 28 00:09:34 bluetoothd: Terminating
After the “Endpoint registered” messages the headset was registered and works fine but based on the messages before it (the Failed to add/delete UUID and the Failed to reset Adv Monitors: Failed (0x03) are printed in red) the init is not smooth.
I haven’t been able to reproduce the issue at all today, it hasn’t come back since it stopped yesterday night. I still don’t know what went wrong, and for all I know it could come back at any moment. I’m hesitant to call this “solved” so much as “fizzled out”.
On the bright side, my headphones work correctly now.
No solutions just observation. I’m convinced that, sometime in the last few months, a bug has been introduced upstream in general Linux bluetooth functioning. Bluetooth initial connectivity and/or staying connected seems to be repeatedly happening to both KDE and Gnome DE’s I’ve used while playing around in several major rolling release distros and formats . If I go back to an earlier version non-rolling release (OpenSUSE Leap 15.5 and 15.6 beta or Fedora 39 or Ubuntu 23.10 for example) everything works perfect. The only solution i am finding in some cases to work is to use blueman to facilitate the connection.
In my case I’m holding my breath that my Sony headphones aren’t going bad.
The outlier? OpenSUSE Aeon seems to work fine. I have no idea why.
It happened to me yesterday evening once more, it looked like the BT headphone was connected but no audio.
My work-around is to power off the headphone and power it on again and also this time that fixed the issue.
Apr 04 20:25:42 bluetoothd[1162]: Endpoint registered: sender=:1.55 path=/MediaEndpoint/A2DPSource/opus_05
Apr 04 20:25:42 bluetoothd[1162]: Endpoint registered: sender=:1.55 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Apr 04 20:25:42 bluetoothd[1162]: Endpoint registered: sender=:1.55 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Apr 04 20:34:48 bluetoothd[1162]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for 00:1E:7C:00:A0:68: Device or resource busy
Apr 04 20:40:28 bluetoothd[1162]: /org/bluez/hci0/dev_00_1E_7C_00_A0_68/sep1/fd0: fd(41) ready
Apr 04 22:42:36 bluetoothd[1162]: src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107)
Apr 04 22:42:54 bluetoothd[1162]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for 00:1E:7C:00:A0:68: Device or resource busy
Apr 04 22:42:56 bluetoothd[1162]: /org/bluez/hci0/dev_00_1E_7C_00_A0_68/sep1/fd1: fd(41) ready
Apr 05 00:03:30 bluetoothd[1162]: Terminating
Apr 05 00:03:30 bluetoothd[1162]: src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107)
Apr 05 00:03:30 systemd[1]: Stopping Bluetooth service...
Apr 05 00:03:30 bluetoothd[1162]: Endpoint unregistered: sender=:1.55 path=/MediaEndpoint/A2DPSource/ldac
Apr 05 00:03:30 bluetoothd[1162]: Endpoint unregistered: sender=:1.55 path=/MediaEndpoint/A2DPSink/aptx_hd
Apr 05 00:03:30 bluetoothd[1162]: Endpoint unregistered: sender=:1.55 path=/MediaEndpoint/A2DPSource/aptx_hd
The computer was powered on ~20:34 and powered of ~00:00, around 22:42 the problem happened and I powered cycled the headphone. I am surprised that leaves only three “unit bluetooth” lines in the log.
Looking in the full log I see:
Apr 04 22:40:00 wireplumber[2156]: 0x564d012fb580: (0 suppressed) out of buffers on port 0 2
Apr 04 22:40:02 wireplumber[2156]: 0x564d012fb580: (93 suppressed) out of buffers on port 0 2
Apr 04 22:40:04 wireplumber[2156]: 0x564d012fb580: (93 suppressed) out of buffers on port 0 2
Apr 04 22:40:06 wireplumber[2156]: 0x564d012fb580: (93 suppressed) out of buffers on port 0 2
Apr 04 22:42:29 wireplumber[2156]: 0x564d012fb580: (93 suppressed) out of buffers on port 0 2
<cut 70 times the same message>
Apr 04 22:42:31 wireplumber[2156]: 0x564d012fb580: (93 suppressed) out of buffers on port 0 2
Apr 04 22:42:33 wireplumber[2156]: 0x564d012fb580: (93 suppressed) out of buffers on port 0 2
Apr 04 22:42:35 wireplumber[2156]: 0x564d012fb580: (93 suppressed) out of buffers on port 0 2
Apr 04 22:42:36 wireplumber[2156]: 0x564d012a6e38: error 24
Apr 04 22:42:36 wireplumber[2156]: (bluez_output.00_1E_7C_00_A0_68.1-143) running -> error (Received error event)
Apr 04 22:42:36 wireplumber[2156]: Failure in Bluetooth audio transport /org/bluez/hci0/dev_00_1E_7C_00_A0_68/sep1/fd0
Apr 04 22:42:36 dbus-daemon[1163]: [system] Rejected send message, 0 matched rules; type="method_return", sender=":1.55" (uid=1000 pid=2156 comm="/usr/bin/wireplumber") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.1" (uid=0 pid=1162 comm="/usr/libexec/bluetooth/bluetoothd")
Apr 04 22:42:36 pipewire[2155]: pw.node: (bluez_output.01_1F_7C_41_D30_68.1-143) running -> error (Received error event)
Apr 04 22:42:36 bluetoothd[1162]: src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107)
Apr 04 22:42:54 wireplumber[2156]: RFCOMM receive command but modem not available: AT+CSRSF=1,1,1,1,1,7
Apr 04 22:42:54 bluetoothd[1162]: src/service.c:btd_service_connect() a2dp-sink profile connect failed for 00:1E:7C:00:A0:68: Device or resource busy
Apr 04 22:42:55 kernel: input: Philips SHB9000 (AVRCP) as /devices/virtual/input/input21
Apr 04 22:42:55 systemd-logind[1233]: Watching system buttons on /dev/input/event20 (Philips SHB9000 (AVRCP))
So it seems to start with a wireplumber problem, the headset related messages could be because I power off the headset.
For what it’s worth, this is still happening randomly. Watching journalctl -f doesn’t yield any messages when the connection fails, which sometimes happens even in the middle of audio playing now. I’m still baffled how this happens on Tumbleweed but didn’t on Arch on the same hardware.
The only thing that sometimes works (temporarily) is forgetting and repairing the headphones from the start. Sometimes I need to do this twice in a row.
I have yet to find a more persistent long-term solution.