How do I diagnose a Bluetooth problem on Fedora Linux?

My Bluetooth Service is crashing! It is suddenly disconnecting and when I jump into the settings, there it says “No Bluetooth Adaptors are found” and then I tried to troubleshoot it by running commands like,

sudo systemctl restart bluetooth

But none does the work and then even rebooted the machine but the problem still existed.
Then finally I went onto dual boot into my windows and run the troubleshooter and need to jump back again to F35 and luckily it worked but this problem never existed in F34 and I’m considering it’s mostly because of the kernel. And I think jumping into windows to solve the problem of Linux is not the best use case of Linux.

Also, anyone please suggest to me some easy straight away troubleshooter for Linux like existed in Windows. Thanks!

1 Like

bluetoothctl should be the tool to use now since it deprecates all the previous tools (which are now in the bluez-deprecated package).

3 Likes

Thanks. But could you elaborate it further? I did tried to troubleshoot with bluetoothctl but I can’t figure out it properply.

1 Like

Some things to check…

Gather information about the hardware

For example:

$ sudo dnf install inxi
$ inxi --bluetooth
Bluetooth: Device-1: Intel AX200 Bluetooth type: USB driver: btusb 
           Report: rfkill ID: hci0 state: up address: see --recommends 
$ lsusb | grep -i bluetooth
Bus 001 Device 012: ID 8087:0029 Intel Corp. AX200 Bluetooth

Check wireless radios

$ nmcli radio all
WIFI-HW  WIFI     WWAN-HW  WWAN    
enabled  enabled  enabled  enabled 
$ rfkill list all
0: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no

Hard blocked means “blocked by hardware,” for example by a hardware switch or BIOS setting.

Soft blocked means “blocked by software”.

If the above output indicates that Bluetooth is soft blocked, you can try unblocking it with the following command:

sudo rfkill unblock bluetooth

or

sudo rkfill unblock all

Check kernel messages

The following commands search the journal for kernel messages containing ‘blue’. The search term ‘blue’ does not contain any uppercase letters, therefore the search will be case-insensitive.

journalctl -k -b-0 -g blue # Show kernel messages containing 'blue' from the current boot
journalctl -k -b-1 -g blue # Show kernel messages containing 'blue' from the previous boot
journalctl -k -b-2 -g blue # Show kernel messages containing 'blue' from two boots ago
etc.

Equivalent with long options:

journalctl --dmesg --boot=-0 --grep blue

Or, instead of filtering the journal entries, it’s often better to utilize your pager’s search features. Remove the -g, --grep option from the above journalctl command and, when viewing the results in your pager, press / and the search term followed by ENTER to search through the results. Pressing ‘n’ or ‘N’ will move to the next or previous match, respectively. This approach has the advantage that it shows surrounding context. I recommend adding the i option to the SYSTEMD_LESS environment variable so that the search is case-insensitive unless your search term contains uppercase letters. To do this, put export SYSTEMD_LESS=FRSXMKi in your ~/.bash_profile, or equivalent wherever you like to set environment variables. Log out and back in to make the environment variable take effect.

See if there is a difference in the kernel messages between when bluetooth worked and when it didn’t.

bluetoothctl

$ bluetoothctl
Agent registered
[Logitech K810]# help

Excerpt from the help listing:

list           List available controllers
show [ctrl]    Controller information
power <on/off> Set controller power
devices        List available devices
paired-devices List paired devices
info [dev]     Device information
connect <dev>  Connect device

The show command will show detailed information about your bluetooth controller, including whether it is powered on.

6 Likes

Thank you!

This is when my Bluetooth is not working.

Help me to figure this out!

And this is when it’s working

Can you copy that terminal text into a post, in a code block, please? (Use the </> icon in the post editor toolbar.) That’s easier for search, further copy and paste, and for people like me with aging eyes to read. Thanks!

1 Like

ok sure

This is when Bluetooth is working.

hemanth@fedora ~> journalctl -k -b-0 -g blue
-- Journal begins at Sat 2021-11-06 20:48:59 IST, ends at Fri 2021-11-12 18:35:40 IST. --
Nov 12 18:35:01 fedora kernel: Bluetooth: Core ver 2.22
Nov 12 18:35:01 fedora kernel: NET: Registered PF_BLUETOOTH protocol family
Nov 12 18:35:01 fedora kernel: Bluetooth: HCI device and connection manager initialized
Nov 12 18:35:01 fedora kernel: Bluetooth: HCI socket layer initialized
Nov 12 18:35:01 fedora kernel: Bluetooth: L2CAP socket layer initialized
Nov 12 18:35:01 fedora kernel: Bluetooth: SCO socket layer initialized
Nov 12 18:35:01 fedora kernel: Bluetooth: hci0: Firmware revision 0.3 build 5 week 39 2021
Nov 12 18:35:01 fedora kernel: Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
Nov 12 18:35:01 fedora kernel: Bluetooth: hci0: Boot Address: 0x24800
Nov 12 18:35:01 fedora kernel: Bluetooth: hci0: Firmware Version: 5-39.21
Nov 12 18:35:01 fedora kernel: Bluetooth: hci0: Firmware already loaded
Nov 12 18:35:02 fedora kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Nov 12 18:35:02 fedora kernel: Bluetooth: BNEP filters: protocol multicast
Nov 12 18:35:02 fedora kernel: Bluetooth: BNEP socket layer initialized
Nov 12 18:35:18 fedora kernel: Bluetooth: RFCOMM TTY layer initialized
Nov 12 18:35:18 fedora kernel: Bluetooth: RFCOMM socket layer initialized
Nov 12 18:35:18 fedora kernel: Bluetooth: RFCOMM ver 1.11

hemanth@fedora ~> journalctl -k -b-1 -g blue
-- Journal begins at Sat 2021-11-06 20:48:59 IST, ends at Fri 2021-11-12 18:35:52 IST. --
Nov 11 15:37:11 fedora kernel: Bluetooth: Core ver 2.22
Nov 11 15:37:11 fedora kernel: NET: Registered PF_BLUETOOTH protocol family
Nov 11 15:37:11 fedora kernel: Bluetooth: HCI device and connection manager initialized
Nov 11 15:37:11 fedora kernel: Bluetooth: HCI socket layer initialized
Nov 11 15:37:11 fedora kernel: Bluetooth: L2CAP socket layer initialized
Nov 11 15:37:11 fedora kernel: Bluetooth: SCO socket layer initialized
Nov 11 15:37:11 fedora kernel: Bluetooth: hci0: Firmware revision 0.3 build 5 week 39 2021
Nov 11 15:37:11 fedora kernel: Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
Nov 11 15:37:11 fedora kernel: Bluetooth: hci0: Boot Address: 0x24800
Nov 11 15:37:11 fedora kernel: Bluetooth: hci0: Firmware Version: 5-39.21
Nov 11 15:37:11 fedora kernel: Bluetooth: hci0: Firmware already loaded
Nov 11 15:37:12 fedora kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Nov 11 15:37:12 fedora kernel: Bluetooth: BNEP filters: protocol multicast
Nov 11 15:37:12 fedora kernel: Bluetooth: BNEP socket layer initialized
Nov 11 15:37:26 fedora kernel: Bluetooth: RFCOMM TTY layer initialized
Nov 11 15:37:26 fedora kernel: Bluetooth: RFCOMM socket layer initialized
Nov 11 15:37:26 fedora kernel: Bluetooth: RFCOMM ver 1.11

hemanth@fedora ~> journalctl -k -b-2 -g blue
-- Journal begins at Sat 2021-11-06 20:48:59 IST, ends at Fri 2021-11-12 18:35:57 IST. --
Nov 10 23:32:57 fedora kernel: Bluetooth: Core ver 2.22
Nov 10 23:32:57 fedora kernel: NET: Registered PF_BLUETOOTH protocol family
Nov 10 23:32:57 fedora kernel: Bluetooth: HCI device and connection manager initialized
Nov 10 23:32:57 fedora kernel: Bluetooth: HCI socket layer initialized
Nov 10 23:32:57 fedora kernel: Bluetooth: L2CAP socket layer initialized
Nov 10 23:32:57 fedora kernel: Bluetooth: SCO socket layer initialized
Nov 10 23:32:57 fedora kernel: Bluetooth: hci0: Firmware revision 0.3 build 5 week 39 2021
Nov 10 23:32:57 fedora kernel: Bluetooth: hci0: Found device firmware: intel/ibt-20-1-3.sfi
Nov 10 23:32:57 fedora kernel: Bluetooth: hci0: Boot Address: 0x24800
Nov 10 23:32:57 fedora kernel: Bluetooth: hci0: Firmware Version: 5-39.21
Nov 10 23:32:57 fedora kernel: Bluetooth: hci0: Firmware already loaded
Nov 10 23:32:58 fedora kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Nov 10 23:32:58 fedora kernel: Bluetooth: BNEP filters: protocol multicast
Nov 10 23:32:58 fedora kernel: Bluetooth: BNEP socket layer initialized
Nov 11 11:30:34 fedora kernel: Bluetooth: RFCOMM TTY layer initialized
Nov 11 11:30:34 fedora kernel: Bluetooth: RFCOMM socket layer initialized
Nov 11 11:30:34 fedora kernel: Bluetooth: RFCOMM ver 1.11
hemanth@fedora ~> bluetoothctl
Agent registered
[bluetooth]# show
Controller 48:51:C5:47:DF:D2 (public)
        Name: fedora
        Alias: fedora
        Class: 0x006c010c
        Powered: yes
        Discoverable: no
        DiscoverableTimeout: 0x000000b4
        Pairable: yes
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: Handsfree Audio Gateway   (0000111f-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
        UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
        UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
        UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v1D6Bp0246d053E
        Discovering: no
        Roles: central
        Roles: peripheral
Advertising Features:
        ActiveInstances: 0x00 (0)
        SupportedInstances: 0x08 (8)
        SupportedIncludes: tx-power
        SupportedIncludes: appearance
        SupportedIncludes: local-name
        SupportedSecondaryChannels: 1M
        SupportedSecondaryChannels: 2M
        SupportedSecondaryChannels: Coded
[CHG] Device 98:09:CF:C1:4B:95 Connected: yes
[CHG] Device 98:09:CF:C1:4B:95 Connected: no
[CHG] Device 98:09:CF:C1:4B:95 Connected: yes
[CHG] Device 98:09:CF:C1:4B:95 Connected: no
[CHG] Device 98:09:CF:C1:4B:95 Connected: yes
1 Like
This is when Bluetooth doesn't work.
--

hemanth@fedora -> journalctl -k-b-0 -g blue
Journal begins at Sat 2021-11-06 20:48:59 IST, ends at Fri 2021-11-12 18:25:01 IST. --
Nov 11 15:37:11 fedora kernel: Bluetooth: Core ver 2.22
Nov 11 15:37:11 fedora kernel: NET: Registered PF_BLUETOOTH protocol family
Nov 11 15:37:11 fedora kernel: Bluetooth: HCI device and connection manager initialized
Nov 11 15:37:11 fedora kernel: Bluetooth: HCI socket layer initialized
Nov 11 15:37:11 fedora kernel: Bluetooth: L2CAP socket layer initialized
Nov 11 15:37:11 fedora kernel: Bluetooth: SCO socket layer initialized
Nov 11 15:37:11 fedora kernel: Bluetooth: hci0: Firmware revision 0.3 build 5 week 39 2021
Nov 11 15:37:11 fedora kernel: Bluetooth: hcio: Found device firmware: intel/ibt-20-1-3. sfi
Nov 11 15:37:11 fedora kernel: Bluetooth: hcio: Boot Address: 0x24800
Nov 11 15:37:11 fedora kernel: Bluetooth: hci0: Firmware Version: 5-39.21
Nov 11 15:37:11 fedora kernel: Bluetooth: hci0: Firmware already loaded
Nov 11 15:37:12 fedora kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Nov 11 15:37:12 fedora kernel: Bluetooth: BNEP filters: protocol multicast
Nov 11 15:37:12 fedora kernel: Bluetooth: BNEP socket layer initialized
Nov 11 15:37:26 fedora kernel: Bluetooth: RFCOMM TTY layer initialized
Nov 11 15:37:26 fedora kernel: Bluetooth: RFCOMM socket layer initialized
Nov 11 15:37:26 fedora kernel: Bluetooth: RFCOMM ver 1.11
hemanth@fedora -> journalctl -k-b-1 -9 blue
-- Journal begins at Sat 2021-11-06 20:48:59 IST, ends at Fri 2021-11-12 18:25:04 IST. --
Nov 10 23:32:57 fedora kernel: Bluetooth: Core ver 2.22
Nov 10 23:32:57 fedora kernel: NET: Registered PF_BLUETOOTH protocol family
Nov 10 23:32:57 fedora kernel: Bluetooth: HCI device and connection manager initialized
Nov 10 23:32:57 fedora kernel: Bluetooth: HCI socket layer initialized
Nov 10 23:32:57 fedora kernel: Bluetooth: L2CAP socket layer initialized
Nov 10 23:32:57 fedora kernel: Bluetooth: SCO socket layer initialized
Nov 10 23:32:57 fedora kernel: Bluetooth: hci0: Firmware revision 0.3 build 5 week 39 2021
Nov 10 23:32:57 fedora kernel: Bluetooth: hcio: Found device firmware: intel/ibt-20-1-3. sfi
Nov 10 23:32:57 fedora kernel: Bluetooth: hcio: Boot Address: 0x24800
Nov 10 23:32:57 fedora kernel: Bluetooth: hci0: Firmware Version: 5-39.21
Nov 10 23:32:57 fedora kernel: Bluetooth: hci0: Firmware already loaded
Nov 10 23:32:58 fedora kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Nov 10 23:32:58 fedora kernel: Bluetooth: BNEP filters: protocol multicast
Nov 10 23:32:58 fedora kernel: Bluetooth: BNEP socket layer initialized
Nov 11 11:30:34 fedora kernel: Bluetooth: RFCOMM TTY layer initialized
Nov 11 11:30:34 fedora kernel: Bluetooth: RFCOMM socket layer initialized
Nov 11 11:30:34 fedora kernel: Bluetooth: RFCOMM ver 1.11

hemanth@fedora -> journalctl -k-b-2 -3 blue
-- Journal begins at Sat 2021-11-06 20:48:59 IST, ends at Fri 2021-11-12 18:27:14 IST. --
Nov 10 22:27:59 fedora kernel: Bluetooth: Core ver 2.22
Nov 10 22:27:59 fedora kernel: NET: Registered PF_BLUETOOTH protocol family
Nov 10 22:27:59 fedora kernel: Bluetooth: HCI device and connection manager initialized
Nov 10 22:27:59 fedora kernel: Bluetooth: HCI socket layer initialized
Nov 10 22:27:59 fedora kernel: Bluetooth: L2CAP socket layer initialized
Nov 10 22:27:59 fedora kernel: Bluetooth: SCO socket layer initialized
Nov 10 22:27:59 fedora kernel: Bluetooth: hcio: Firmware revision 0.3 build 5 week 39 2021
Nov 10 22:27:59 fedora kernel: Bluetooth: hcio: Found device firmware: intel/ibt-20-1-3. sfi
Nov 10 22:27:59 fedora kernel: Bluetooth: hci0: Boot Address: 0x24800
Nov 10 22:27:59 fedora kernel: Bluetooth: hci0: Firmware Version: 5-39.21
Nov 10 22:27:59 fedora kernel: Bluetooth: hci0: Firmware already loaded
Nov 10 22:28:00 fedora kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Nov 10 22:28:00 fedora kernel: Bluetooth: BNEP filters: protocol multicast
Nov 10 22:28:00 fedora kernel: Bluetooth: BNEP socket layer initialized
Nov 10 22:28:16 fedora kernel: Bluetooth: RFCOMM TTY layer initialized
Nov 10 22:28:16 fedora kernel: Bluetooth: RECOMM socket layer initialized
Nov 10 22:28:16 fedora kernel: Bluetooth: RFCOMM ver 1.11
hemanth@fedora -> bluetoothctl
Agent registered
[bluetooth] # list
[bluetooth]# show
No default controller available
[bluetooth] # power on
No default controller available
[bluetooth] # power off
No default controller available
[bluetooth] # devices
No default controller available
[bluetooth] # paired- devices
No default controller available
[bluetooth]#
1 Like

The bluetoothctl show output shows that sometimes your bluetooth controller doesn’t exist.
Unfortunately, the kernel messages don’t show any difference that would explain this.
When it doesn’t work, check if bluetooth is blocked:

rfkill list all

If it says Soft blocked: yes try sudo rfkill unblock bluetooth.
Sorry, I don’t know what else to try.

2 Likes

I did try sudo rfkill unblock bluetooth
but nothing changes. Only a restart helped me to get back my Bluetooth work back.