View Issue Details

IDProjectCategoryView StatusLast Update
0008216Kali LinuxGeneral Bugpublic2023-03-15 16:03
Reportern8lbv Assigned To 
Status newResolutionopen 
Summary0008216: Wrong Driver (or nonworking driver) loads for Realtek USB Bluetooth adaptor

When Plugging a "popular" and commonly available Realtek USB5 adaptor, system loads incorrect driver.

When plugging idVendor=0bda, idProduct=8771
firmware rtl_bt/rtl8761bu_fw.bin and associated config is loaded
This results in a non-working driver.
From what I have read it should be loading rtl_bt/rtl8761b_fw.bin instead.
If I rename the rtl_bt/rtl8761b_fw.bin and config files to the "bu" version it loads a working driver.

[81435.017653] usb 2-5: new full-speed USB device number 14 using ohci-pci
[81435.257246] usb 2-5: New USB device found, idVendor=0bda, idProduct=8771, bcdDevice= 2.00
[81435.257264] usb 2-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[81435.257272] usb 2-5: Product: Bluetooth Radio
[81435.257278] usb 2-5: Manufacturer: Realtek
[81435.257283] usb 2-5: SerialNumber: 00E04C239987
[81435.267263] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
[81435.270241] Bluetooth: hci0: RTL: rom_version status=0 version=1
[81435.270253] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_fw.bin
[81435.270391] bluetooth hci0: firmware: direct-loading firmware rtl_bt/rtl8761bu_fw.bin
[81435.270459] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_config.bin
[81435.270509] bluetooth hci0: firmware: direct-loading firmware rtl_bt/rtl8761bu_config.bin
[81435.270567] Bluetooth: hci0: RTL: cfg_sz 25, total sz 29949
[81435.656295] Bluetooth: hci0: RTL: fw version 0x0ca98a6b
[81435.795713] Bluetooth: MGMT ver 1.22

Steps To Reproduce

Plug in said device to any up to date Kali system and get a driver loaded that is not working properly.

Additional Information

By not working properly I mean NO ble functions appear to work.
hcitool -i hci- lescan
times out.

If I rename the files so it load the "b" named driver it works.
There are some post out there leading to me trying to rename the files to load a different driver.

Also I am new enough to Linux an do not really understand how the detect device and load driver process works.

I get it that when you insert the device that idVendor=0bda, idProduct=8771 somehow tells the system what it is
But I don't understand where the lookup table to match idVendor=0bda, idProduct=8771 and what drive to load.
It's simple things like this that I have problem googling for an answer on and find anything useful.
If you have any pointers where I should be looking to how this works I'd be very appreciative.
Meanwhile this does appear to be bug that has been around for awhile and possibly not reported or worked on.




2023-03-13 04:04

manager   ~0017646

Thanks for the detailed bug report. I did a bit of research on my side, apparently it's been broken for a long time,

Earlier report I can see is from 2021-09-02:
Then in the Ubuntu bug tracker, 2022-04-11:

Looking at the linux-firmware Git repo, the pair of firmware rtl8761b and rtl8761bu were added in 2021-05-29, and then updated on 2021-11-25, as can be seen with:

cd linux-firmware
gitk -- 'rtl_bt/rtl8761b*'



2023-03-15 02:45

manager   ~0017670

I sent a message to the linux-bluetooth maliing list:



2023-03-15 12:17

reporter   ~0017672

This probably not the right place to ask.
And this question is outside of the report.
But can you tell me how does Linux/Kernel "know" which driver/filename to load?
Where is the lookup table (when you plug in a device) idVendor=0bda, idProduct=8771 in this case-
How does Linux get the information on what filename/driver to load?
I am going in circles with google searches trying to get an answer to this.



2023-03-15 16:03

manager   ~0017673

How does Linux get the information on what filename/driver to load?

It's really something in the kernel. This commit As you can see there, there's a mapping between firmware files, and the information that the kernel has about the device.

I'm no kernel specialist so I can't explain more in detail, sorry :)

Issue History

Date Modified Username Field Change
2023-03-13 01:56 n8lbv New Issue
2023-03-13 04:04 arnaudr Note Added: 0017646
2023-03-15 02:45 arnaudr Note Added: 0017670
2023-03-15 12:17 n8lbv Note Added: 0017672
2023-03-15 16:03 arnaudr Note Added: 0017673