So since I had some time today, I figured I’d dig into why this was happening on my system. So on my system I was getting the following error when it attempted to load the bluetooth device:
Bluetooth: hci0: Opcode 0x c03 failed: -110
It looks like in my case all that was needed was to add support of my device into the btusb kernel module. Here’s what I had to do:
- I downloaded the kernel source for 6.5.0-rc1 since that was what I was testing with anyway. Before compiling the kernel, I looked up my bluetooth device using
lsusb
. It came back with this (note that, at least for my device,Foxconn / Hon Hai Wireless Device
is a subsystem of the MediaTek MT7922):
Bus 001 Device 003: ID 0489:e102 Foxconn / Hon Hai Wireless_Device
- Checking
drivers/bluetooth/btusb.c
in the kernel source, I noticed that the Product ID (in my case e102) was missing from the file, so I made the following additions to the file:
+++ b/drivers/bluetooth/btusb.c
@@ -628,6 +628,9 @@ static const struct usb_device_id blacklist_table[] = {
{ USB_DEVICE(0x0489, 0xe0f2), .driver_info = BTUSB_MEDIATEK |
BTUSB_WIDEBAND_SPEECH |
BTUSB_VALID_LE_STATES },
+ { USB_DEVICE(0x0489, 0xe102), .driver_info = BTUSB_MEDIATEK |
+ BTUSB_WIDEBAND_SPEECH |
+ BTUSB_VALID_LE_STATES },
/* Additional Realtek 8723AE Bluetooth devices */
{ USB_DEVICE(0x0930, 0x021d), .driver_info = BTUSB_REALTEK },
If you notice, there are entries in this file that require both the Vendor and Product ID. It looks like there are plenty of entries for the Vendor (0x0489), but I didn’t see my Product ID represented (0xe102 which corresponds to e102 in my device).
- I compiled the kernel with this change in mind and installed the kernel with its modules to the system.
- Rebooted into the new kernel, and now bluetooth works.
I suppose I can make a report against this, but not sure how to proceed. Different laptops/machines may have different Product IDs, so maybe there needs to be a list compiled of all the missing ones for this device.
In any case I hope that helps someone. And before someone asks, yes I tested bluetooth functionality with a 8bitdo controller and it worked just fine.