Bluetooth devices visible, but connection fails or is low quality

Bluetooth operated well for several weeks after initially installing Garuda. I was primarily using it with a headset, and I was getting good audio quality (at least as good as one can hope from Bluetooth).

Later, any time I'd try to connect my headset, Garuda would indicate for about 10 seconds that it had connected (though the headset would not indicate this) before disconnecting again, with Bluetooth Device Wizard reporting "The setup of [my device] has failed." On rare occasions, I've managed to get a successful connection, but the audio quality is low, and no higher quality codec is available (previously I was using A2DP, not available anymore).

Note that this problem started months ago, perhaps in August. I am not dual booting.

System:    Kernel: 5.15.5-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=2f4858ad-71bd-4356-b1ac-0e372de86443
rw [email protected] quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
systemd.unified_cgroup_hierarchy=1 resume=UUID=60288167-31c3-4822-a67d-4bf8e661fc50 loglevel=3
Desktop: KDE Plasma 5.23.4 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 vt: 1 dm: SDDM
Distro: Garuda Linux base: Arch Linux
Machine:   Type: Desktop System: HP product: HP Pavilion Desktop TP01-1xxx v: N/A
serial: <superuser required> Chassis: type: 3 serial: <superuser required>
Mobo: HP model: 87D6 v: SMVB serial: <superuser required> UEFI: AMI v: F.12 date: 12/17/2020
CPU:       Info: 6-Core model: AMD Ryzen 5 4600G with Radeon Graphics bits: 64 type: MT MCP arch: Zen 2
family: 17 (23) model-id: 60 (96) stepping: 1 microcode: 8600106 cache: L1: 384 KiB L2: 3 MiB
L3: 8 MiB
flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 88631
Speed: 3245 MHz min/max: 1400/3700 MHz boost: enabled Core speeds (MHz): 1: 3245 2: 2926
3: 3075 4: 2905 5: 3944 6: 3991 7: 2864 8: 3179 9: 3440 10: 2907 11: 3587 12: 3079
Vulnerabilities: Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
Type: spectre_v2
mitigation: Full AMD retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics:  Device-1: AMD Renoir vendor: Hewlett-Packard driver: amdgpu v: kernel bus-ID: 0c:00.0
chip-ID: 1002:1636 class-ID: 0300
Display: x11 server: X.Org compositor: kwin_x11 driver: loaded: amdgpu,ati
unloaded: modesetting alternate: fbdev,vesa display-ID: :0 screens: 1
Screen-1: 0 s-res: 1600x900 s-dpi: 96 s-size: 423x238mm (16.7x9.4") s-diag: 485mm (19.1")
Monitor-1: HDMI-A-0 res: 1600x900 dpi: 99 size: 410x280mm (16.1x11.0") diag: 496mm (19.5")
OpenGL: renderer: AMD RENOIR (DRM 3.42.0 5.15.5-zen1-1-zen LLVM 13.0.0) v: 4.6 Mesa 21.2.5
direct render: Yes
Audio:     Device-1: AMD vendor: Hewlett-Packard driver: snd_hda_intel v: kernel bus-ID: 0c:00.1
chip-ID: 1002:1637 class-ID: 0403
Device-2: AMD Family 17h HD Audio vendor: Hewlett-Packard driver: snd_hda_intel v: kernel
bus-ID: 0c:00.6 chip-ID: 1022:15e3 class-ID: 0403
Sound Server-1: ALSA v: k5.15.5-zen1-1-zen running: yes
Sound Server-2: JACK v: 1.9.19 running: no
Sound Server-3: PulseAudio v: 15.0 running: no
Sound Server-4: PipeWire v: 0.3.40 running: yes
Network:   Device-1: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter vendor: Hewlett-Packard
driver: rtw_8821ce v: N/A modules: rtw88_8821ce port: e000 bus-ID: 09:00.0 chip-ID: 10ec:c821
class-ID: 0280
IF: wlp9s0 state: down mac: <filter>
Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Hewlett-Packard
driver: r8169 v: kernel port: d000 bus-ID: 0a:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp10s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Bluetooth: Device-1: Realtek Realtek Bluetooth 4.2 Adapter type: USB driver: btusb v: 0.8 bus-ID: 1-12:3
chip-ID: 0bda:b00a class-ID: e001 serial: <filter>
Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>
Drives:    Local Storage: total: 480.71 GiB used: 362.52 GiB (75.4%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: BC511 HFM512GDJTNI-82A0A
size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD
serial: <filter> rev: HPS0 temp: 33.9 C scheme: GPT
ID-2: /dev/sda maj-min: 8:0 type: USB model: Rocketfish Rocketfish size: 3.77 GiB block-size:
physical: 512 B logical: 512 B type: N/A serial: <filter> rev: 4096 scheme: MBR
SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
Partition: ID-1: / raw-size: 464.43 GiB size: 464.43 GiB (100.00%) used: 362.52 GiB (78.1%) fs: btrfs
dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 260 MiB size: 256 MiB (98.46%) used: 562 KiB (0.2%) fs: vfat
dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 464.43 GiB size: 464.43 GiB (100.00%) used: 362.52 GiB (78.1%) fs: btrfs
dev: /dev/nvme0n1p2 maj-min: 259:2
ID-4: /var/log raw-size: 464.43 GiB size: 464.43 GiB (100.00%) used: 362.52 GiB (78.1%)
fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 464.43 GiB size: 464.43 GiB (100.00%) used: 362.52 GiB (78.1%)
fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:      Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: partition size: 12.25 GiB used: 0 KiB (0.0%) priority: -2
dev: /dev/nvme0n1p3 maj-min: 259:3
ID-2: swap-2 type: zram size: 11.13 GiB used: 0 KiB (0.0%) priority: 100 dev: /dev/zram0
Sensors:   System Temperatures: cpu: 30.0 C mobo: N/A gpu: amdgpu temp: 25.0 C
Fan Speeds (RPM): N/A
Info:      Processes: 357 Uptime: 6m wakeups: 0 Memory: 11.13 GiB used: 2.47 GiB (22.2%) Init: systemd
v: 249 tool: systemctl Compilers: gcc: 11.1.0 clang: 13.0.0 Packages: pacman: 1485 lib: 439
Shell: fish v: 3.3.1 default: Bash v: 5.1.12 running-in: konsole inxi: 3.3.09

For further info, I ran systemctl status bluetooth and got this readout---note that I tried to connect the headset at 7:46

● bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2021-11-30 07:00:25 CST; 43min ago
Docs: man:bluetoothd(8)
Main PID: 750 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 13544)
Memory: 3.4M
CPU: 27ms
CGroup: /system.slice/bluetooth.service
└─750 /usr/lib/bluetooth/bluetoothd

Nov 30 07:01:58 pavilion bluetoothd[750]: Endpoint registered: sender=:1.48 path=/MediaEndpoint/A2DPSource/sbc
Nov 30 07:01:58 pavilion bluetoothd[750]: Endpoint registered: sender=:1.48 path=/MediaEndpoint/A2DPSink/sbc_xq
Nov 30 07:01:58 pavilion bluetoothd[750]: Endpoint registered: sender=:1.48 path=/MediaEndpoint/A2DPSource/sbc_xq
Nov 30 07:01:58 pavilion bluetoothd[750]: Endpoint registered: sender=:1.48 path=/MediaEndpoint/A2DPSource/faststream
Nov 30 07:01:58 pavilion bluetoothd[750]: Endpoint registered: sender=:1.48 path=/MediaEndpoint/A2DPSource/faststream_duplex
Nov 30 07:01:58 pavilion bluetoothd[750]: Endpoint registered: sender=:1.48 path=/MediaEndpoint/A2DPSource/aptx_ll_1
Nov 30 07:01:58 pavilion bluetoothd[750]: Endpoint registered: sender=:1.48 path=/MediaEndpoint/A2DPSource/aptx_ll_0
Nov 30 07:01:58 pavilion bluetoothd[750]: Endpoint registered: sender=:1.48 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
Nov 30 07:01:58 pavilion bluetoothd[750]: Endpoint registered: sender=:1.48 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
Nov 30 07:02:05 pavilion bluetoothd[750]: src/profile.c:record_cb() Unable to get Hands-Free Voice gateway SDP record: Host is down
Nov 30 07:46:51 pavilion bluetoothd[750]: src/profile.c:ext_connect() Hands-Free Voice gateway failed connect to E8:AB:FA:3F:FA:40: Connection timed out (110)
Nov 30 07:46:56 pavilion bluetoothd[750]: profiles/audio/avdtp.c:avdtp_connect_cb() connect to E8:AB:FA:3F:FA:40: Host is down (112)

Here's the output of dmesg | grep Bluetooth

[    5.974342] usb 1-12: Product: Bluetooth Radio
[    6.724861] Bluetooth: Core ver 2.22
[    6.724878] Bluetooth: HCI device and connection manager initialized
[    6.724881] Bluetooth: HCI socket layer initialized
[    6.724882] Bluetooth: L2CAP socket layer initialized
[    6.724885] Bluetooth: SCO socket layer initialized
[    6.780197] Bluetooth: hci0: RTL: examining hci_ver=08 hci_rev=000c lmp_ver=08 lmp_subver=8821
[    6.783203] Bluetooth: hci0: RTL: rom_version status=0 version=1
[    6.783208] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821c_fw.bin
[    6.783744] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821c_config.bin
[    6.783777] Bluetooth: hci0: RTL: cfg_sz 10, total sz 31990
[    6.937226] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    6.937235] Bluetooth: BNEP filters: protocol multicast
[    6.937244] Bluetooth: BNEP socket layer initialized
[    7.870436] Bluetooth: hci0: RTL: fw version 0x829a7644
[  100.218828] Bluetooth: RFCOMM TTY layer initialized
[  100.218850] Bluetooth: RFCOMM socket layer initialized
[  100.218855] Bluetooth: RFCOMM ver 1.11

Things I've Tried

Connecting other BT devices---no luck.

Resetting headset's connections as well as deleting the headset from my remembered connections

Connecting with bluethoothctl. See below: on first attempt, it claimed to have connected for about 10 seconds, then disconnected again.

Agent registered
[bluetooth]# info E8:AB:FA:3F:FA:40
Device E8:AB:FA:3F:FA:40 (public)
Name: TaoTronics SoundSurge 90
Alias: TaoTronics SoundSurge 90
Class: 0x00240404
Icon: audio-headset
Paired: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
[bluetooth]# connect E8:AB:FA:3F:FA:40
Attempting to connect to E8:AB:FA:3F:FA:40
[CHG] Device E8:AB:FA:3F:FA:40 Connected: yes
Failed to connect: org.bluez.Error.Failed br-connection-canceled
[CHG] Device E8:AB:FA:3F:FA:40 Connected: no
[bluetooth]# connect E8:AB:FA:3F:FA:40
Attempting to connect to E8:AB:FA:3F:FA:40
Failed to connect: org.bluez.Error.Failed br-connection-page-timeout

rfkill list to check for hard block

0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no

Booting with linux, linux-lts, linux-mainline, and linux-hardened kernels. No change.

Turning off the Wi-Fi router that's located close to the tower to make sure its signal wasn't causing interference.

Switching to pulseaudio instead of pipewire, and making sure pulseaudio-bluetooth was installed

Downgrading bluez to 5.61-1

I know a fresh install of Garuda may solve my problem, but I've wanted to avoid all that work. Of course, at this point, I've probably done at least that much work trying to fix it. :man_facepalming: Nevertheless, any guidance you can offer I will appreciate.

1 Like

Did you Google?

1 Like

I hadn't seen that forum post yet, but I checked and the package they say solved their problem, bluez-hid2hci, was already installed.

I'm no expert on bluetooth and relevant issues, but maybe you could try checking this thread (although it was for a different WiFi+USB adapter).

1 Like

There is a package available that will switch to the high-quality drivers. It's in the AUR, but I do not recall its name.

1 Like

Installing bluez-git didn't solve it, but I think this did: enabling Wi-Fi. For whatever reason, it seems soft blocking Wi-Fi was also preventing Bluetooth from connecting (see my rfkill list readout in OP).

I also have more and better quality drivers (codecs? I'm not well-versed in BT terms), though that may be a result of the bluez-git install.

1 Like

Have you also tried the part

delete /var/lib/bluetooth and, most importantly drain the power 

Don't ask me why it was useful in that case, anyway...

Yes, I deleted that directory and unplugged my PC as well (a tower, not a laptop).

So this solved the issue?

In a perfect world I could use Bluetooth without first enabling Wi-Fi, but yes, I consider the problem solved. Thanks.

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