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…

4 Likes

THANK YOU!!

1 Like

Welcome :enos:

i have similar issue too. The bluetooth service seems to be running just fine but it doesn’t connect to the bluetooth device (earphone in my case)

first I ran the blutoothctl command
which returned the following prompt

Agent registered
[CHG] Controller 48:E7:DA:55:F3:30 Pairable: yes

then I ran the ** scan on ** command

Failed to start discovery: org.bluez.Error.NotReady

then I ran the following

sudo rfkill block bluetooth
sudo rfkill unblock bluetooth
sudo rfkill restart bluetooth

but to no avail. It seems like Bluetooth is work but not detecting the hardware.
Further more I cannot see the bluetooth option ins setting menu either

In order to help anyone with bluetooth is needed a lot of information to go through all the steps. Sometimes you have to remove everything and start from the beginning.

1 Like

sudo dmesg | grep firmware
could show some firmeware issue with the specific device.
But

org.bluez.Error.NotReady

indicates in most cases a not fully initialized device happens after freshly setup BT without a reboot ?

I used a Bluetooth dongle and disabled the included the connection of my motherboard and got the same exact results. I boot to the latest ISO live environment but I couldn’t not find any GUI to play around with Bluetooth so I tried the same using a different distro.

Zorin OS did have bluetooth settings on the live environment and I was able to test that, in fact, my bluetooth was working just fine. For the moment I will be switching distros since I don’t have the time or expertise to be diagnosing the Bluetooth and GPU issues I was having.

I really enjoy EndeavourOS and I hope to be able to come back in the future :slight_smile:

BT is not enabled per default … not on the liveI-SO and not on installed system.

But last posts was answering @Skynet also…

1 Like

Everyone has their reasons for why they choose to use the distro they do. No worries and good luck with Zorin.

I found my sweetspot in Endeavour after hopping atleast 30 distros. My latest was Arco which was great but I found it have too many packages most of which I had not clue so for my use case it was bloat.

Screenshot_20220314_170226

Bravo ! thanks for response. It came out well. I did get through and got it connected. thanks again

Thanks rick. Sharing that linked saved me. after reading it , I ran the install again and got the Bluetooth connected this time. I guess I was expecting some sort of a gui tool, but this was much better and cleaner and loved it !

Great community ! Let me know if I can be of help in anyway

Screenshot_20220314_172511
Screenshot_20220314_174309

pair and connect are needed also :wink:
and they are GUI tools also like blueberry for gtk or blueman and bluedevil for qt environments:

But it is a known workaround to initialize an BT audio device that was snot working using GUI with bluetoothctl as root or using sudo.
After going this cli cycle ---> scan on ---> pair --> trust --> connect
you should be able to use GUI app fitting your environment.

1 Like

I think i did pair and trust
i wanna try blueman and bluedevil next :slight_smile:

I presume the same steps apply for pairing another bluetooth device. hope there would be no conflict :slight_smile:

Screenshot_20220314_181209

@joekamprad @ricklinux
Hi Folks, I had a followup question. This may sound dumb but just stay with me. I got my Bluetooth connected after following the above instruction, however it seems to be dropping every time I reboot the system.

I had to the run the following commands (yes I read the manual) to get it up and running and connected every time.

bluetoothctl, power on, devices, connect, pair, trust

Screenshot_20220314_202044

Do I need to run these command every time ? Is this suppose to be a one time activity ? Right now it is showing my volume connections tab but when i reboot it goes away

Screenshot_20220314_203147

headset (OPPO enco M31)

Further it doesn’t show in my systems menu either ( which I presume could be because I am installing bluetooth via command line and not using the aforementioned gui tools aka blueman and bluedevil

idk…Please help.

is BT service enabled?
systemctl status bluetooth

Yes everything seems to be fine.
Screenshot_20220315_162456

i think if you do not want to use GUI app you will need to save profile manually?

Yes you are right. I think that was the case. I installed bluedevil and now it is it connecting. The profile was not getting saved, thus I had to run the process again every time after reboot

if one were to save the profile where would that be ? /etc/bluetooth.config ??

Screenshot_20220315_170204