Bluetooth not working

Hello! My laptop’s Bluetooth isn’t working on Linux. It works fine on Windows 10.

Here’s what I’ve tried:

  • Reinstalling bluez
  • Reinstalling the kernel drivers btintel and btusb
  • Restarting/reinstalling bluetooth.service

What should I try next?

Here are my specs:

> neofetch --off
OS: Fedora release 38 (Thirty Eight) x86_64 
Host: 20QV00CPUS ThinkPad X1 Extreme 2nd 
Kernel: 6.7.9-100.fc38.x86_64
> sudo lsusb -v | grep Bluetooth | grep DeviceProtocol
bDeviceProtocol         1 Bluetooth
> hciconfig            
hci0:	Type: Primary  Bus: USB
	BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
	DOWN 
	RX bytes:55 acl:0 sco:0 events:4 errors:0
	TX bytes:15 acl:0 sco:0 commands:4 errors:0
> sudo bluetoothctl
Waiting to connect to bluetoothd...[bluetooth]# Agent registered
[bluetooth]# list
[bluetooth]# scan on
No default controller available
[bluetooth]# 
1 Like

Hello @treeway7 ,
When I call bluetoothctl from the command line without anything, it shows the controller(s) that are there and puts me into a REPL where there are all of the available commands and options. Starting from there …

[jakfrost ~]$ bluetoothctl
Waiting to connect to bluetoothd...[bluetooth]# Agent registered
[bluetooth]# hci0 new_settings: bondable ssp br/edr le secure-conn
[bluetooth]# [CHG] Controller B0:A4:60:33:14:B2 Pairable: yes
[bluetooth]#

Note, I am not using sudo for the command, does that change behaviour for monitoring/viewing info? Also, I use the Gnome DE and have the option to turn on/off Bluetooth there, it defaulted to off for me some time ago, which is fine because I don’t very often use it. Is yours “turned on” in your DE?

1 Like

sudo does not change the output of bluetoothctl:

> bluetoothctl
Waiting to connect to bluetoothd...[bluetooth]# Agent registered
[bluetooth]# list
[bluetooth]# exit

> sudo bluetoothctl
Waiting to connect to bluetoothd...[bluetooth]# Agent registered
[bluetooth]# list
[bluetooth]#

I’m running XFCE. It says Bluetooth is enabled, but the menu doesn’t show any devices.

image

I also tried using the Blueman utility, but it crashes when it’s opened:

> blueman-manager
blueman-manager 13.10.41 ERROR    Manager:147 on_dbus_name_appeared: Default adapter not found, trying first available.
blueman-manager 13.10.41 ERROR    Manager:151 on_dbus_name_appeared: No adapter(s) found, exiting

So the Bluetooth adapter isn’t being found for some reason, even though one exists on my system. I’m trying to connect my wireless controller, which works fine on Windows via Bluetooth.

1 Like

What does rfkill says? It should look like this:

ID TYPE      DEVICE      SOFT      HARD
 1 wlan      phy0   unblocked unblocked
 3 bluetooth hci0   unblocked unblocked

Here are some various commands to give you an overview of my Bluetooth hardware.

I’m running a Lenovo ThinkPad X1 Extreme 2nd Edition.

> rfkill
ID TYPE      DEVICE                   SOFT      HARD
 0 bluetooth tpacpi_bluetooth_sw unblocked unblocked
 1 bluetooth hci0                unblocked unblocked
 2 wlan      phy0                unblocked unblocked
> cat /proc/acpi/ibm/bluetooth
status:		enabled
commands:	enable, disable
> lsusb
...
Bus 001 Device 006: ID 8087:0029 Intel Corp. AX200 Bluetooth
...
> lsmod | grep blue
bluetooth            1060864  15 btrtl,btmtk,btintel,btbcm,bnep,btusb
rfkill                 40960  9 iwlmvm,bluetooth,thinkpad_acpi,cfg80211

Also, the Bluetooth section in lshw does not show UNCLAIMED:

> sudo lshw
...
*-usb:4
     description: Bluetooth wireless interface
     product: AX200 Bluetooth
     vendor: Intel Corp.
     physical id: e
     bus info: usb@1:e
     version: 0.01
     capabilities: bluetooth usb-2.01
     configuration: driver=btusb maxpower=100mA speed=12Mbit/s
...
1 Like

I found the culprit in dmesg:

[  903.047661] Bluetooth: hci0: Bootloader revision 0.3 build 0 week 24 2017
[  903.048656] Bluetooth: hci0: Device revision is 1
[  903.048672] Bluetooth: hci0: Secure boot is enabled
[  903.048679] Bluetooth: hci0: OTP lock is enabled
[  903.048684] Bluetooth: hci0: API lock is enabled
[  903.048689] Bluetooth: hci0: Debug lock is disabled
[  903.048695] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
---> [  903.049064] Bluetooth: hci0: Failed to load Intel firmware file intel/ibt-20-1-3.sfi (-2)
[  903.049666] Bluetooth: hci0: Reading supported features failed (-56)
[  903.049679] Bluetooth: hci0: Error reading debug features
[  903.049686] Bluetooth: hci0: HCI LE Coded PHY feature bit is set, but its usage is not supported.
[  903.050658] Bluetooth: hci0: Failed to read MSFT supported features (-56)

Looks like it’s missing a firmware file, but I’m not sure what to do from here.

lspci output:

> lspci -nnk | grep -A3 -i network
52:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)
	Subsystem: Intel Corporation Device [8086:0080]
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi
1 Like

Possibly fwupdmgr?

locate ibt-20-1-3.sfi:

/usr/lib/firmware/intel/ibt-20-1-3.sfi.xz

sudo dnf repoquery --whatprovides /usr/lib/firmware/intel/ibt-20-1-3.sfi.xz:

linux-firmware-0:20240312-1.fc39.noarch

Install linux-firmware package with:

sudo dnf install linux-firmware
3 Likes

Works like a charm! Thanks for the help all!

1 Like

Thank you, worked for me as well! :slight_smile:

1 Like