Troubleshooting Bluetooth

dos2unix

Well-Known Member
Joined
May 3, 2019
Messages
3,511
Reaction score
3,256
Credits
31,430
Here are some things to try.

The first one here is obvious, but you never know. Not all computers support bluetooth. Does yours?
NOTE:** Bluetooth usually doesn't work from a VM. **
Code:
lsusb | grep -i blue
Code:
lspci | grep -i blue

One of those two commands should return some device of some kind. If not, you likely don't support bluetooth.

Code:
sudo systemctl status bluetooth

If it isn't running...

Code:
sudo systemctl enable bluetooth
sudo systemctl start bluetooth

If it's not installed, you can try to install bluez, it's more or less the standard tool for bluetooth in most distro's these days.

Code:
sudo apt-get install bluez bluez-tools
or
Code:
sudo dnf install bluez bluez-tools

If these things are already installed, sometimes a restart will clear things up.

Code:
sudo service bluetooth restart

A handy tool to have for audio trouleshooting is....
Code:
sudo apt-get install pavucontrol
or
Code:
sudo dnf install pavucontrol

You can check to see if the bluetooth kernel modules are loaded.

Code:
sudo modprobe btusb
Code:
lsmod | grep btusb

Sometimes removing them, and re-installing them helps.

Code:
sudo rmmod btusb
sudo modprobe btusb

You can check your bluetooth status with...
Code:
rfkill list bluetooth

If it's blocked, you can un-block it with...

Code:
sudo rfkill unblock bluetooth

Not all distro's support these but some other tools you can install and try are....

Code:
bluetoothctl

You can use hcitool to view and configure connections.
Code:
sudo hcitool dev
sudo hcitool scan

Sometimes restarting the bluetooth daemon helps.
Code:
sudo systemctl restart bluetooth

You can run this from the command line.
Code:
blueman-manager

That will give you some options to try as well.
 
Last edited:


Some distro's also have bluetooth firmware for some devices.

You can use dnf or apt to install most of these.
Code:
pulseaudio-module-bluetooth
NetworkManager-bluetooth
atheros-firmware.noarch
brcmfmac-firmware.noarch
mt7xxx-firmware.noarch
nxpwireless-firmware.noarch
pipewire-codec-aptx
realtek-firmware.noarch
tiwilink-firmware.noarch

bluedevil (for KDE)
gnome-bluetooth (for Gnome)

You won't need all of them, but you should be able to guess from...
Code:
lspci | grep -i blue
Which one you need.
 
Finally if none of this helps, you can check the system logs.

Code:
sudo dmesg | grep Bluetooth

Code:
sudo dmesg | grep hci

Code:
sudo dmesg | grep -Ei 'error|warn|fail|connect|unsupported'

...and see if any of these returns anything obvious.
 
I spent some time this morning trying a few different things.
Bluez
Version : 5.79
Able to connect to pretty much everything I have.
Samsung sound bar. LG television. Electronic drumset module. Samsung cell phone.

Bluez
Version :5.64
I was able to connect to 3 out of 5 reliably. It seems it doesn't like my television and my drumset for some reason.
I do have a USB option for my drumset, no big deal.

Code:
bluetoothctl

list
Controller 4C:82:A9:18:84:3A LianLi [default]

:82:A9:18:84:3A (public)
        Manufacturer: 0x0046 (70)
Version: 0x0b (11)
Name: LianLi
Alias: LianLi
Class: 0x007c0104 (8126724)
Powered: yes
PowerState: on
Discoverable: no
DiscoverableTimeout: 0x000000b4 (180)
Pairable: yes
UUID: Message Notification Se.. (00001133-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific           (03b80e5a-ede8-4b33-a751-6ce34ec4c700)
UUID: OBEX Object Push          (00001105-0000-1000-8000-00805f9b34fb)
UUID: Message Access Server     (00001132-0000-1000-8000-00805f9b34fb)
UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
UUID: IrMC Sync                 (00001104-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific           (00005005-0000-1000-8000-0002ee000001)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Phonebook Access Server   (0000112f-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
UUID: Handsfree Audio Gateway   (0000111f-0000-1000-8000-00805f9b34fb)
UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific           (185f3df4-3268-4e3f-9fca-d4d5059915bd)
UUID: OBEX File Transfer        (00001106-0000-1000-8000-00805f9b34fb)
UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d054F
Discovering: no
Roles: central
Roles: peripheral
Advertising Features:
ActiveInstances: 0x00 (0)
SupportedInstances: 0x14 (20)
SupportedIncludes: tx-power
SupportedIncludes: appearance
SupportedIncludes: local-name
SupportedSecondaryChannels: 1M
SupportedSecondaryChannels: 2M
SupportedSecondaryChannels: Coded
SupportedCapabilities.MinTxPower: 0xfffffff2 (-14)
SupportedCapabilities.MaxTxPower: 0x000d (13)
SupportedCapabilities.MaxAdvLen: 0xfb (251)
SupportedCapabilities.MaxScnRspLen: 0xfb (251)
SupportedFeatures: CanSetTxPower
SupportedFeatures: HardwareOffload

[bluetooth]# scan on
[bluetooth]# SetDiscoveryFilter success
[bluetooth]# Discovery started
[bluetooth]# [CHG] Controller 4C:82:A9:18:84:3A Discovering: yes

[bluetooth]# devices
( I am not posting the output here, some private info )

[bluetooth]# pairable on
[bluetooth]# Changing pairable on succeeded
[bluetooth]# quit

I will say this, even with my "low latency" devices, there is still latency.  If you're a gamer, you'll always hear things
about a quarter of a second later than wired.  If I'm practicing with a song on the internet the latency isn't a big deal.
But if you're a drummer in a band (I am) then a half second of latency is a huge deal.  I tried it and was off beat with
everyone for the first 20 seconds of the song.  Went back to wired.

The bottom line is...  not all versions of bluetooth drivers are equally compatible with everything.  In my case newer is better.
 
From http://www.bluez.org/

BlueZ 5.79​

  • Improved Pairing: Fixes issues with handling address types during pairing

  • A2DP Enhancements: Adds support for setting A2DP transport delay

  • HID Support: Introduces persistent userspace HID operation

  • BIS Synchronization: Adds support for handling synchronization to multiple Broadcast Isochronous Streams (BISes)

BlueZ 5.64​

  • Bug Fixes: Focused on bug fixes for HOG, GATT, A2DP, Media, AVDTP, AVRCP, and scanning failures

  • LE Audio Development: Added ISO packet support to the emulator as part of LE Audio development
Code:
root@LianLi:~# btmon
Bluetooth monitor ver 5.79
btmon[129622]: = Note: Linux version 6.13.5-200.fc41.x86_64 (x86_64)                                                                        0.077743
btmon[129622]: = Note: Bluetooth subsystem version 2.22                                                                                     0.077744
= New Index: 4C:82:A9:18:84:3A (Primary,USB,hci0)                                                                                    [hci0] 0.077745
= Open Index: 4C:82:A9:18:84:3A                                                                                                      [hci0] 0.077746
= Index Info: 4C:82:A9:18:84:3A (MediaTek, Inc.)                                                                                     [hci0] 0.077746
bluetoothd[1213]: @ MGMT Open: bluetoothd (privileged) version 1.23                                                                {0x0001} 0.077747
 
For those who may not be aware, there are different versions of Bluetooth

Bluetooth 2.0: Introduced Enhanced Data Rate (EDR), which increased data transfer speeds to 2.1 Mbps
It also improved power consumption and connection reliability.

Bluetooth 3.0: This version brought even higher speeds, up to 24 Mbps, by using the 802.11 protocol (commonly used in Wi-Fi) for data transfer
However, it still had limitations in terms of range and power efficiency.

Bluetooth 4.0: Known as Bluetooth Smart, this version introduced Bluetooth Low Energy (BLE), which significantly reduced power consumption while maintaining a decent range and speed
It enabled new applications like fitness trackers and smart home devices.

Bluetooth 5.0: This version doubled the speed (up to 2 Mbps for BLE) and increased the range up to 240 meters (800 feet) in open space
It also introduced features like improved data broadcasting and better coexistence with other wireless technologies.Bluetooth

6.0
: Yes, there is a Bluetooth 6.0! Released in September 2024, it includes substantial enhancements to existing features and introduces new capabilities like improved location services and better device tracking

Not all Linux drivers support all versions. I am still trying to hash this out.



 


Members online

No members online now.

Latest posts

Top