Bluetooth adapter detected but unable to initialize firmware

summary.

Bluetooth module firmware seems to have an error.

expected behavior.

When toggling Bluetooth “on” in the Settings app, the Settings pane should update to allow for operations such as pairing new devices or marking my system as discoverable.

actual behavior.

When attempting to toggle Bluetooth “on” via Gnome’s Settings, nothing happens and the Settings app appears to do nothing displaying: “Bluetooth turned off. Turn on to connect devices and receive file transfers.”

steps to reproduce.

  1. Open Settings app
  2. Click Bluetooth in sidebar
  3. Click toggle from (O ) to ( O)
  4. Observe that Bluetooth settings pane does not update as if a working Bluetooth module has been activated.

supplemental information.

lsusb does not display bluetooth module.

sudo lsusb
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root 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 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 0e8d:e616 MediaTek Inc. Wireless_Device
Bus 001 Device 007: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix Fingerprint USB Device
Bus 001 Device 002: ID 32ac:0003 Framework DisplayPort Expansion Card
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dmesg logs container errors related to Bluetooth module initialization

sudo dmesg | grep -i bluetooth
[   95.105271] Bluetooth: Core ver 2.22
[   95.105347] NET: Registered PF_BLUETOOTH protocol family
[   95.105351] Bluetooth: HCI device and connection manager initialized
[   95.105359] Bluetooth: HCI socket layer initialized
[   95.105364] Bluetooth: L2CAP socket layer initialized
[   95.105375] Bluetooth: SCO socket layer initialized
[   95.425947] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   95.425954] Bluetooth: BNEP filters: protocol multicast
[   95.425964] Bluetooth: BNEP socket layer initialized
[  105.768409] Bluetooth: hci0: Execution of wmt command timed out
[  105.768424] Bluetooth: hci0: Failed to send wmt patch dwnld (-110)
[  105.768457] Bluetooth: hci0: Failed to set up firmware (-110)
[  105.768460] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
[ 1291.051993] Bluetooth: hci0: Failed to get device id (-110)
[ 1291.052009] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.

bluetooth is not blocked by rfkill

sudo rfkill list | grep -iA 2 bluetooth
2: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

firmware is up-to-date.

sudo fwupdmgr get-updates
Devices with no available firmware updates: 
 • WD BLACK SN850X 1000GB
Devices with the latest available firmware version:
 • System Firmware
 • Fingerprint Sensor
 • UEFI dbx
No updates available

Is your bluetooth service on/enabled?

systemctl status bluetooth.service

Yessir.

systemctl status bluetooth.service 
● bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-07-31 13:31:43 EDT; 21h ago
       Docs: man:bluetoothd(8)
   Main PID: 13302 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 37515)
     Memory: 660.0K
        CPU: 60ms
     CGroup: /system.slice/bluetooth.service
             └─13302 /usr/lib/bluetooth/bluetoothd

Jul 31 13:31:43 heatwork systemd[1]: Starting Bluetooth service...
Jul 31 13:31:43 heatwork bluetoothd[13302]: Bluetooth daemon 5.64
Jul 31 13:31:43 heatwork systemd[1]: Started Bluetooth service.
Jul 31 13:31:43 heatwork bluetoothd[13302]: Starting SDP server
Jul 31 13:31:43 heatwork bluetoothd[13302]: Bluetooth management interface 1.22 initialized

I even previously reset the system unit as part of my debugging.