Bluetooth failure on reboot - Kernel 6.11.0-17 - Mediatek 7921

Ubuntu Version: Ubuntu 24.04.2 (fully upgraded)

Desktop Environment: Gnome 46 (Wayland)

Problem Description: Using kernel 6.11.0-17, bluetooth works on first boot. If I reboot, GUI settings shows Bluetooth Turned Off and the on/off slider is completely inactive

Relevant System Information: GMKtec NucBox K2, AMD Ryzen™ 7 7735HS with Radeon™ Graphics × 16, Wifi and bluetooth combined Mediatek mt7921

mark@gmktec:~$ inxi -EazNn
Network:
  Device-1: Realtek RTL8125 2.5GbE driver: r8169 v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 port: f000 bus-ID: 02:00.0 chip-ID: 10ec:8125
    class-ID: 0200
  IF: enp2s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-2: MEDIATEK MT7921K Wi-Fi 6E 80MHz driver: mt7921e v: kernel pcie:
    gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 03:00.0 chip-ID: 14c3:0608
    class-ID: 0280
  IF: wlp3s0 state: up mac: <filter>
  IF-ID-1: virbr0 state: down mac: <filter>
  Info: services: NetworkManager, sshd, systemd-timesyncd, wpa_supplicant
Bluetooth:
  Device-1: MediaTek Wireless_Device driver: btusb v: 0.8 type: USB rev: 2.1
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-3:3 chip-ID: 0e8d:0608
    class-ID: e001 serial: <filter>
  Report: hciconfig ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.2
    lmp-v: 11 sub-v: 2402 hci-v: 11 rev: 1911 class-ID: 7c0104
  Info: acl-mtu: 1021:6 sco-mtu: 240:8 link-policy: rswitch sniff
    link-mode: peripheral accept service-classes: rendering, capturing, object
    transfer, audio, telephony
mark@gmktec:~$

Screenshots or Error Messages:

mark@gmktec:~$ sudo systemctl status bluetooth
[sudo] password for mark:
● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset>
     Active: active (running) since Mon 2025-02-17 08:46:51 GMT; 1min 19s ago
       Docs: man:bluetoothd(8)
   Main PID: 1189 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 34365)
     Memory: 2.8M (peak: 3.3M)
        CPU: 47ms
     CGroup: /system.slice/bluetooth.service
             └─1189 /usr/libexec/bluetooth/bluetoothd

Feb 17 08:46:51 gmktec bluetoothd[1189]: Starting SDP server
Feb 17 08:46:51 gmktec bluetoothd[1189]: src/plugin.c:plugin_init() System does>
Feb 17 08:46:51 gmktec bluetoothd[1189]: profiles/audio/micp.c:micp_init() D-Bu>
Feb 17 08:46:51 gmktec bluetoothd[1189]: src/plugin.c:plugin_init() System does>
Feb 17 08:46:51 gmktec bluetoothd[1189]: src/plugin.c:plugin_init() System does>
Feb 17 08:46:51 gmktec bluetoothd[1189]: src/plugin.c:plugin_init() System does>
Feb 17 08:46:51 gmktec bluetoothd[1189]: src/plugin.c:plugin_init() System does>
Feb 17 08:46:51 gmktec bluetoothd[1189]: src/plugin.c:plugin_init() System does>
Feb 17 08:46:51 gmktec bluetoothd[1189]: Bluetooth management interface 1.23 in>
Feb 17 08:46:51 gmktec systemd[1]: Started bluetooth.service - Bluetooth servic>
mark@gmktec:~$ 

What I’ve Tried: I tried to remove and install the module btusb without luck.

In order to resuscitate the bluetooth device:-

  • Close applications and power off
  • Remove the power cable
  • Press and hold the power button for more than 30 seconds
  • Re-attach power cable
  • Boot the PC

Good news: Kernel 6.8.0-52 and earlier - bluetooth performs flawlessly

mark@gmktec:~$ sudo systemctl status bluetooth
[sudo] password for mark: 
● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset>
     Active: active (running) since Mon 2025-02-17 09:03:55 GMT; 11min ago
       Docs: man:bluetoothd(8)
   Main PID: 1301 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 34482)
     Memory: 3.2M (peak: 3.9M)
        CPU: 65ms
     CGroup: /system.slice/bluetooth.service
             └─1301 /usr/libexec/bluetooth/bluetoothd

Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
Feb 17 09:04:09 gmktec bluetoothd[1301]: Endpoint registered: sender=:1.104 pat>
mark@gmktec:~$ 

Currently, I only boot into kernel 6.8.0-52 without problem

Try sending those logs to a file so they don’t get truncated to the right.

Thank you for your advice, here we are:-

First boot with working bluetooth - kernel 6.11.0-17

● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-02-18 16:11:11 GMT; 42s ago
       Docs: man:bluetoothd(8)
   Main PID: 1513 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 34365)
     Memory: 3.2M (peak: 3.8M)
        CPU: 62ms
     CGroup: /system.slice/bluetooth.service
             └─1513 /usr/libexec/bluetooth/bluetoothd

Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSource/aptx_ll_1
Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSource/aptx_ll_0
Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSource/faststream
Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSource/faststream_duplex
Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSink/opus_05
Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSource/opus_05
Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Feb 18 16:11:22 gmktec bluetoothd[1513]: Endpoint registered: sender=:1.95 path=/MediaEndpoint/A2DPSource/opus_05_duplex

Reboot with non-working bluetooth - kernel 6.11.0-17

● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-02-18 16:13:08 GMT; 37s ago
       Docs: man:bluetoothd(8)
   Main PID: 1377 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 34365)
     Memory: 2.8M (peak: 3.7M)
        CPU: 41ms
     CGroup: /system.slice/bluetooth.service
             └─1377 /usr/libexec/bluetooth/bluetoothd

Feb 18 16:13:08 gmktec systemd[1]: Started bluetooth.service - Bluetooth service.
Feb 18 16:13:08 gmktec bluetoothd[1377]: Starting SDP server
Feb 18 16:13:08 gmktec bluetoothd[1377]: src/plugin.c:plugin_init() System does not support csip plugin
Feb 18 16:13:08 gmktec bluetoothd[1377]: profiles/audio/micp.c:micp_init() D-Bus experimental not enabled
Feb 18 16:13:08 gmktec bluetoothd[1377]: src/plugin.c:plugin_init() System does not support micp plugin
Feb 18 16:13:08 gmktec bluetoothd[1377]: src/plugin.c:plugin_init() System does not support vcp plugin
Feb 18 16:13:08 gmktec bluetoothd[1377]: src/plugin.c:plugin_init() System does not support mcp plugin
Feb 18 16:13:08 gmktec bluetoothd[1377]: src/plugin.c:plugin_init() System does not support bass plugin
Feb 18 16:13:08 gmktec bluetoothd[1377]: src/plugin.c:plugin_init() System does not support bap plugin
Feb 18 16:13:08 gmktec bluetoothd[1377]: Bluetooth management interface 1.23 initialized

And there is one specific device you’re trying to connect? Which one?

I’m trying to connect bluetooth headphones.

The details I’ve posted above do not refer to any particular device.

can you see anything in:

sudo dmesg |grep -i bluetooth

I ran into this on jammy it looks to me like a repeat on noble.
I got tired of messing around with trying to fix it, instaed I simply ran these commands:;
I have 2 BT devices ie:

 hciconfig
hci1:	Type: Primary  Bus: USB
	BD Address: 5C:F3:70:A9:5B:DE  ACL MTU: 1021:8  SCO MTU: 64:1
	DOWN 
	RX bytes:897 acl:0 sco:0 events:37 errors:0
	TX bytes:388 acl:0 sco:0 commands:37 errors:0

hci0:	Type: Primary  Bus: USB
	BD Address: E0:0A:F6:81:81:92  ACL MTU: 1021:6  SCO MTU: 255:12
	DOWN 
	RX bytes:2619 acl:0 sco:0 events:310 errors:0
	TX bytes:66029 acl:0 sco:0 commands:310 errors:0


First try is:

sudo hciconfig -a hci0 up
Can't init device hci0: Operation not possible due to RF-kill (132)

Next

rfkill unblock bluetooth;
┌───────────────────>
│~ 
└─> sudo hciconfig -a hci0 up
┌───────────────────>

I hope that is all you need.
bt

Yep I forgot the kernel version LOL

 uname -r
6.11.0-1009-lowlatency

1 Like

I think that my problem is more likely related to the kernel rather than the Ubuntu OS version.
Ubuntu 24.04 using kernel 6.8.0-52 is flawless inc all bluetooth devices
Kernel 6.11.0-17 yields inactive bluetooth after a reboot

Anyway, the following are the terminal outputs from a failed bluetooth with kernel 6.11.0-17

mark@gmktec:~$ sudo dmesg |grep -i bluetooth
[sudo] password for mark: 
[    1.551971] Bluetooth: Core ver 2.22
[    1.552006] NET: Registered PF_BLUETOOTH protocol family
[    1.552008] Bluetooth: HCI device and connection manager initialized
[    1.552015] Bluetooth: HCI socket layer initialized
[    1.552018] Bluetooth: L2CAP socket layer initialized
[    1.552024] Bluetooth: SCO socket layer initialized
[    4.830475] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    4.830478] Bluetooth: BNEP filters: protocol multicast
[    4.830481] Bluetooth: BNEP socket layer initialized
[    6.726349] Bluetooth: hci0: Failed to write uhw reg(-110)
[    6.728796] Bluetooth: hci0: HW/SW Version: 0x008a008a, Build Time: 20240219111427
[   26.694283] Bluetooth: hci0: Execution of wmt command timed out
[   26.694300] Bluetooth: hci0: Failed to send wmt patch dwnld (-110)
[   26.694384] Bluetooth: hci0: Failed to set up firmware (-110)
[   26.694392] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
mark@gmktec:~$

mark@gmktec:~$ 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:0 acl:0 sco:0 events:0 errors:0
	TX bytes:0 acl:0 sco:0 commands:1 errors:0

mark@gmktec:~$ 

mark@gmktec:~$ sudo hciconfig -a hci0 up
Can't init device hci0: Input/output error (5)
mark@gmktec:~$

mark@gmktec:~$ rfkill
ID TYPE      DEVICE      SOFT      HARD
 0 bluetooth hci0   unblocked unblocked
 1 wlan      phy0   unblocked unblocked
mark@gmktec:~$

Looks like conflicting terminal output:-

HCI device and connection manager initialized
Can't init device hci0: Input/output error (5)
1 Like

That is the same behavior I had seen on 22.04 and it drove me Nuts…LOL
I’m going over 2 to 3 years worth of Notes i keep, If I find anything I will report back.

Please don’t spend hours on this, it’s not really critical because I can use an earlier kernel.
I suspect that it’s the Mediatek Bluetooth device mt7921 and a small kernel regression?
A new kernel may well provide the fix.

1 Like

This problem has already been fixed (there must be another thread in the system for this topic) in the next kernel release 25.04
(I have the same problem but it is easily worked around by repairing the headphones)

Cheers
Pete

Oh oops I forgot about that. Maybe it’s this one:

Fix for 24.04 coming soon.

1 Like

This is nothing to do with pairing the headphones again because, upon reboot, bluetooth is completely inactive.
It concerns making the bluetooth adapter active again in order to receive any pairing instruction.

Allow me to re-emphasise:-
So far, it is only kernel 6.11.0-17 which provides the problem.

Now, whether it is the kernel or the mediatek adapter, I don’t know.
The mt7921 mediatek adapter also controls the wifi, which operates perfectly with all kernels provided by Ubuntu 24.04 LTS

1 Like