5

First of all, I'm using Ubuntu 24.10 in a live USB environment.

I'm not a complete novice in linux, but i'm not well-versed either.

My issue is that I cannot make the bluetooth work in Linux, the on/off toggle moves but BT stays off, but it works pretty much out of the box in Windows 11 (I'm using 2 different boot drives). The Wifi/BT chip is a MediaTek MT7925, integrated on the motherboard (Gigabyte X870 Eagle WIFI7).

The wifi works correctly out of the box, although I do not care much as I use a wired ethernet connection, but I am trying to connect an XBox Elite controller through bluetooth, and the first step for it is having a working bluetooth connection.

There seems to be an error in dmesg about BT:

$ sudo dmesg | grep Bluetooth
[   13.033377] Bluetooth: Core ver 2.22
[   13.033393] Bluetooth: HCI device and connection manager initialized
[   13.033395] Bluetooth: HCI socket layer initialized
[   13.033396] Bluetooth: L2CAP socket layer initialized
[   13.033399] Bluetooth: SCO socket layer initialized
[   13.100488] Bluetooth: hci0: Opcode 0x0c03 failed: -16
[   13.179806] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   13.179809] Bluetooth: BNEP filters: protocol multicast
[   13.179811] Bluetooth: BNEP socket layer initialized

I tried using bluetoothctl to power it on, but it says that it couldn't find a default adapter:

$ bluetoothctl
Agent registered
[bluetooth]# power on
No default controller available
[bluetooth]# exit

As far as my google-fu could find, this chip is not that recent, and my kernel should have drivers for it. lsusb doesn't show any MediaTek equipment, and hcitool dev returns nothing either:

$ hcitool dev
Devices:

Here's hciconfig -a

$ hciconfig -a
hci0:   Type: Primary  Bus: USB
    BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
    DOWN 
    RX bytes:6 acl:0 sco:0 events:1 errors:0
    TX bytes:0 acl:0 sco:0 commands:1 errors:1
    Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    Packet type: DM1 DH1 HV1 
    Link policy: 
    Link mode: PERIPHERAL ACCEPT 

I'm not knowledgeable enough to know what else to do from here unfortunately, any help would be very welcome!

BlindSp0t
  • 151
  • 2
    Firstly, Pop OS is not supported on this site. This site is about Ubuntu and its official flavors. About your problem: Try Ubuntu 24.10 from a live USB. It may have better support. Usually new versions have better support for recent hardware. If it works for you, just install it – Archisman Panigrahi Nov 16 '24 at 19:54
  • Only Ubuntu and official flavors of Ubuntu (https://ubuntu.com/download/flavours) are on-topic here, refer to https://askubuntu.com/help/on-topic where you'll find other SE sites where you question will be welcome if you don't want to use a Pop forum. (One advantage of Ubuntu is it's many support options, you opted for Pop OS so take advantage of its support options, or SE Unix & Linux found in the on-topic link) – guiverc Nov 16 '24 at 21:12
  • Indeed, I missed the panel on the right when writing the question. – BlindSp0t Nov 17 '24 at 09:35
  • Just to mention - I found this question because I am having the exact same issue on Ubuntu 24.04. – michjnich Nov 20 '24 at 08:19

2 Answers2

3

update 18. June 2025 I connected my mouse via BT! Kernel:

Linux headquarter 6.14.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Sun Apr  6 15:05:05 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

This is progress - but I cannot connect my headset: one of these Sony thinks - WT-something; modern but nothing to special. WIFI I don't know yet bc I moved and internet is not set up.

update 13. April 2025 I got a little bit more time for testing:

greping the kernel ring buffer doesn't result in an error anymore:

root@headquarter:~# sudo dmesg | grep Bluetooth
[  622.368812] Bluetooth: Core ver 2.22
[  622.368849] Bluetooth: HCI device and connection manager initialized
[  622.368852] Bluetooth: HCI socket layer initialized
[  622.368854] Bluetooth: L2CAP socket layer initialized
[  622.368856] Bluetooth: SCO socket layer initialized
[ 1299.446811] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1299.446817] Bluetooth: BNEP filters: protocol multicast
[ 1299.446822] Bluetooth: BNEP socket layer initialized

Unfortunately, BT is still not working. But U25.04 is not out (yet).

update end

I have the same issue, but I assume fix is on it's way. I checked:

lsusb -v | grep Media -B12 Bus 001 Device 003: ID 0489:e124 Foxconn / Hon Hai Wireless_Device Device Descriptor:  
...
idVendor           0x0489 Foxconn / Hon Hai
idProduct          0xe124 Wireless_Device
bcdDevice            1.00
iManufacturer           5 MediaTek Inc.

This gives you the device ID (0x0489, 0xe124).

Ubuntu 22.10 kernel is currently 6.11.0 (uname -a), it's Bluetooth code defining supported MT7925 devices can be looked at: https://github.com/torvalds/linux/blob/v6.11/drivers/bluetooth/btusb.c#L689 (mind the v6.11 in the url)

Saddly, you will see that our device ID is missing. So let look at the code of the kernel in the pipeline: https://github.com/torvalds/linux/blob/master/drivers/bluetooth/btusb.c#L659

That looks much better! - So we just have to wait a couple of more weeks, until ubuntu updates the kernel.

Can't wait? well, 6.12 is already in mainline, you can install it from there, here are two links:

https://kernel.ubuntu.com/mainline/

https://ubuntushell.com/install-mainline-kernel-on-ubuntu/

I couldn't wait either, installed 6.11 but without success. Everything looks the same, no error in journal whatsoever.

Just updated to 25.04 with kernl 6.14.0-13-generic. BT ist still not working. FW was also updated to F4 (13. March).

1

I have MEDIATEK mt7925e device, and using Linux Mint 22.1 Xia base: Ubuntu 24.04 noble. Wifi was working properly for me, but Bluetooth did not. Using the guide in this thread I found out that my Bluetooth device ID (chip-ID: 0489:e111) was added only recently. And so I upgraded to kernel 6.14.4-061404-generic. After this my device and drivers loaded without errors, however Bluetooth still was not working - "No default controller available" was still showing in bluetoothctl.

This is what fixed it:

sudo modprobe -r btusb
sleep 1
sudo modprobe btusb

I do this every time on system restart and Bluetooth turns on, strangely enough I have to do it two times as if I'm starting a car :D

Stan
  • 111
  • I faced the same problem. Your solution helped, thanks. But running these commands every time after a system restart or even after wake up is a bit of a hassle. As far as I understand, the OS itself has all the necessary drivers, but for some reason it can't initialize properly at startup. Can someone explain how to configure the system so it does this correctly from the start? – K . Sep 17 '25 at 21:25