Description of problem: USB Bluetooth dongle rtl8761a do not work and dmesg shows fail to load firmware bluetooth hci0: Direct firmware load for rtl_bt/rtl8761a_config.bin failed with error -2 However, this rtl8761a_config.bin is actually not found on linux-firmware Version-Release number of selected component (if applicable): linux-firmware-20200316-106.fc31.noarch kernel-5.5.15-200.fc31.x86_64 How reproducible: Always Steps to Reproduce: 1. Plug in the bluetooth dongle 2. dmesg | tail 3. Actual results: $ dmesg | tail [39408.994299] usb 3-3.1.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [39408.994301] usb 3-3.1.1.1: Product: Bluetooth Radio [39408.994303] usb 3-3.1.1.1: Manufacturer: Realtek [39408.994306] usb 3-3.1.1.1: SerialNumber: XXXXXXXXXXXX [39409.003335] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761 [39409.004329] Bluetooth: hci0: RTL: rom_version status=0 version=1 [39409.004334] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761a_fw.bin [39409.004783] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761a_config.bin [39409.004823] bluetooth hci0: Direct firmware load for rtl_bt/rtl8761a_config.bin failed with error -2 [39409.004833] Bluetooth: hci0: RTL: cfg_sz -2, total sz 20204 $ blueman-manager blueman-manager version 2.1.2 starting blueman-manager 10.33.40 ERROR Manager:118 on_dbus_name_appeared: Default adapter not found, trying first available. blueman-manager 10.33.40 ERROR Manager:122 on_dbus_name_appeared: No adapter(s) found, exiting Expected results: Bluetooth should work Additional info: $ lsusb -vvv -d 0bda:8771 Bus 003 Device 009: ID 0bda:8771 Realtek Semiconductor Corp. Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 224 Wireless bDeviceSubClass 1 Radio Frequency bDeviceProtocol 1 Bluetooth bMaxPacketSize0 64 idVendor 0x0bda Realtek Semiconductor Corp. idProduct 0x8771 bcdDevice 2.00 iManufacturer 1 iProduct 2 iSerial 3 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x00b1 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 224 Wireless bInterfaceSubClass 1 Radio Frequency bInterfaceProtocol 1 Bluetooth iInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 224 Wireless bInterfaceSubClass 1 Radio Frequency bInterfaceProtocol 1 Bluetooth iInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0000 1x 0 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0000 1x 0 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 224 Wireless bInterfaceSubClass 1 Radio Frequency bInterfaceProtocol 1 Bluetooth iInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0009 1x 9 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0009 1x 9 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 2 bNumEndpoints 2 bInterfaceClass 224 Wireless bInterfaceSubClass 1 Radio Frequency bInterfaceProtocol 1 Bluetooth iInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0011 1x 17 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0011 1x 17 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 3 bNumEndpoints 2 bInterfaceClass 224 Wireless bInterfaceSubClass 1 Radio Frequency bInterfaceProtocol 1 Bluetooth iInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0019 1x 25 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0019 1x 25 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 4 bNumEndpoints 2 bInterfaceClass 224 Wireless bInterfaceSubClass 1 Radio Frequency bInterfaceProtocol 1 Bluetooth iInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0021 1x 33 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0021 1x 33 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 5 bNumEndpoints 2 bInterfaceClass 224 Wireless bInterfaceSubClass 1 Radio Frequency bInterfaceProtocol 1 Bluetooth iInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0031 1x 49 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0031 1x 49 bytes bInterval 1 $ sudo dnf provides */rtl8761a* [sudo] password for zsun: Last metadata expiration check: 2:59:18 ago on Fri 10 Apr 2020 07:32:42 AM HKT. linux-firmware-20190923-102.fc31.noarch : Firmware files used by the Linux kernel Repo : fedora Matched from: Filename : /usr/lib/firmware/rtl_bt/rtl8761a_fw.bin linux-firmware-20200316-106.fc31.noarch : Firmware files used by the Linux kernel Repo : @System Matched from: Filename : /usr/lib/firmware/rtl_bt/rtl8761a_fw.bin linux-firmware-20200316-106.fc31.noarch : Firmware files used by the Linux kernel Repo : updates Matched from: Filename : /usr/lib/firmware/rtl_bt/rtl8761a_fw.bin I even tried to copy rtl8761a_fw.bin as rtl8761a_config.bin, but with that the userspace application still detects no device $ sudo bluetoothctl devices No default controller available
This needs to be fixed by the hardware vendor in the upstream linux-firmware repository following the upstream process, once that is done Fedora will get it in the next upstream monthly release.
Thanks. In the mean time, with the help from my friend, I've managed to get it working by hacking into the btrtl kernel module. I'll work with my friend to see if this can go upstream or not.
Oh to be clear, missing *_config.bin is *not* the actual issue. The actual issue is that this not actually rtl8761a. The Linux kernel detect this as rtl8761a but it is actually different.
So it's a kernel fix required.
I've sent out the patch. https://patchwork.kernel.org/patch/11483367/ As the firmware comes from the Windows driver CD, I don't know if I can share the firmware or not, so I've send email to linux-firmware. If they say I can share it, I'll also share the patch here for reference. In the mean time, I'm changing the bug summary to denote what's really going on and in case it helps the other users. HTH.
Hello sorry for the stupid question, but was the real firmware put in the firmware package?
(In reply to Antonio Petrelli from comment #6) > Hello > sorry for the stupid question, but was the real firmware put in the firmware > package? No, the firmware do not have a clear license so I cannot share it publicly, and that also means I cannot send it to the linux-firmware. We tried to contact Realtek but no feedback till now. For future reference, the kernel part is merged in 5.8.0 already.
Thanks Zamir, but I just managed to make it work by downloading a package online that contained the rtl8761b firmware, with kernel 5.8.0. I don't know if I am permitted to share it here, though (only the procedure, not the actual files).
(In reply to Antonio Petrelli from comment #8) > Thanks Zamir, but I just managed to make it work by downloading a package > online that contained the rtl8761b firmware, with kernel 5.8.0. I don't know > if I am permitted to share it here, though (only the procedure, not the > actual files). Please don't we can't take it form here to include upstream. Ideally it would be realtek submitting it upstream to linux-firmware for inclusion.