Bluetooth refuses to work properly

Hi, since I installed EndeavourOS I have never been able to fully use my bluetooth devices (keyboard, galaxy buds+) I usually manage to pair and connect the keyboard, but every other day the connection is lost and I have to use a usb cable and restart the bluetooth service manually. When trying to connect the buds+ it is even worse, since the whole bluetooth service hangs up and I need to reboot the computer, restart the bluetooth service and pair all devices again. I am using GNOME as my DE, and the bluetooth settings menu usually shows devices that are not even available anymore as if they were connected/discoverable (Say, a tv).

Am I missing something? Why is bluetooth so flawed on this OS? I am running Ubuntu on my work machine an I have had 0 issues working with bluetooth there. Is there any guide on how to properly diagnose and fix my issues?

sudo bluetoothctl
Agent registered
[CHG] Controller C0:E4:34:01:51:6C Pairable: yes
[bluetooth]# list
Controller C0:E4:34:01:51:6C alberto-linux [default]
[bluetooth]# power on
Failed to set power on: org.bluez.Error.Busy
âžś  ~ lsusb
Bus 006 Device 002: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 005: ID 1b1c:0a46 Corsair CORSAIR VIRTUOSO SE Wireless Gaming Headset
Bus 005 Device 008: ID 1532:007e Razer USA, Ltd RC30-030502 Mouse Dock
Bus 005 Device 006: ID 1532:007b Razer USA, Ltd RC30-0305 Gaming Mouse Dongle [Viper Ultimate (Wireless)]
Bus 005 Device 003: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 005 Device 009: ID 043e:9a39 LG Electronics USA, Inc. USB Controls
Bus 005 Device 007: ID 08bb:2902 Texas Instruments PCM2902 Audio Codec
Bus 005 Device 004: ID 046d:0892 Logitech, Inc. C920 HD Pro Webcam
Bus 005 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 2109:0815 VIA Labs, Inc. USB3.0 Hub             
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0b05:185c ASUSTek Computer, Inc. Bluetooth Radio 
Bus 001 Device 003: ID 0b05:1872 ASUSTek Computer, Inc. AURA LED Controller
Bus 001 Device 004: ID 1ea7:0907 SHARKOON Technologies GmbH Keyboard
Bus 001 Device 002: ID 2109:2815 VIA Labs, Inc. USB2.0 Hub             
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
âžś  ~ sudo systemctl status bluetooth.service
â—Ź bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2021-12-18 14:07:22 CET; 2min 18s ago
       Docs: man:bluetoothd(8)
   Main PID: 28112 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 38347)
     Memory: 916.0K
        CPU: 12ms
     CGroup: /system.slice/bluetooth.service
             └─28112 /usr/lib/bluetooth/bluetoothd

dic 18 14:07:22 alberto-linux bluetoothd[28112]: Bluetooth management interface 1.21 initialized
dic 18 14:07:22 alberto-linux bluetoothd[28112]: Failed to set mode: Blocked through rfkill (0x12)
dic 18 14:07:22 alberto-linux bluetoothd[28112]: Endpoint registered: sender=:1.143 path=/MediaEndpoint/A2DPSink/sbc
dic 18 14:07:22 alberto-linux bluetoothd[28112]: Endpoint registered: sender=:1.143 path=/MediaEndpoint/A2DPSource/sbc
dic 18 14:07:22 alberto-linux bluetoothd[28112]: Endpoint registered: sender=:1.143 path=/MediaEndpoint/A2DPSink/sbc_xq_453
dic 18 14:07:22 alberto-linux bluetoothd[28112]: Endpoint registered: sender=:1.143 path=/MediaEndpoint/A2DPSource/sbc_xq_453
dic 18 14:07:22 alberto-linux bluetoothd[28112]: Endpoint registered: sender=:1.143 path=/MediaEndpoint/A2DPSink/sbc_xq_512
dic 18 14:07:22 alberto-linux bluetoothd[28112]: Endpoint registered: sender=:1.143 path=/MediaEndpoint/A2DPSource/sbc_xq_512
dic 18 14:07:22 alberto-linux bluetoothd[28112]: Endpoint registered: sender=:1.143 path=/MediaEndpoint/A2DPSink/sbc_xq_552
dic 18 14:07:22 alberto-linux bluetoothd[28112]: Endpoint registered: sender=:1.143 path=/MediaEndpoint/A2DPSource/sbc_xq_552
âžś  ~ 
âžś  ~ sudo /usr/lib/bluetooth/bluetoothd -n -d 
[sudo] password for alberto: 
bluetoothd[33937]: Bluetooth daemon 5.62
bluetoothd[33937]: src/main.c:parse_config() parsing /etc/bluetooth/main.conf
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “DiscoverableTimeout” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “AlwaysPairable” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “PairableTimeout” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “Privacy” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “JustWorksRepairing” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “TemporaryTimeout” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “Name” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “Class” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “DeviceID” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “ReverseServiceDiscovery” in group “General”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “Cache” in group “GATT”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “KeySize” in group “GATT”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “ExchangeMTU” in group “GATT”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “Channels” in group “GATT”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “SessionMode” in group “AVDTP”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “StreamMode” in group “AVDTP”
bluetoothd[33937]: src/main.c:parse_config() Key file does not have key “RSSISamplingPeriod” in group “AdvMon”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “PageScanType” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “PageScanInterval” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “PageScanWindow” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “InquiryScanType” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “InquiryScanInterval” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “InquiryScanWindow” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “LinkSupervisionTimeout” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “PageTimeout” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “MinSniffInterval” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “MaxSniffInterval” in group “BR”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “MinAdvertisementInterval” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “MaxAdvertisementInterval” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “MultiAdvertisementRotationInterval” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanIntervalAutoConnect” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanWindowAutoConnect” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanIntervalSuspend” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanWindowSuspend” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanIntervalDiscovery” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanWindowDiscovery” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanIntervalAdvMonitor” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanWindowAdvMonitor” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanIntervalConnect” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ScanWindowConnect” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “MinConnectionInterval” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “MaxConnectionInterval” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ConnectionLatency” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “ConnectionSupervisionTimeout” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “Autoconnecttimeout” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “AdvMonAllowlistScanDuration” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “AdvMonNoFilterScanDuration” in group “LE”
bluetoothd[33937]: src/main.c:parse_mode_config() Key file does not have key “EnableAdvMonInterleaveScan” in group “LE”
D-Bus setup failed: Name already in use
bluetoothd[33937]: src/main.c:main() Unable to get on D-Bus

rfkill unblock all

It could be also an issue with dualbooting, where it stores keypair in device and if you connect on p.e. windows or other installed Linux it has the wrong key stored what makes it unable to connect…

2 Likes