View Issue Details

IDProjectCategoryView StatusLast Update
0008216Kali LinuxGeneral Bugpublic2023-12-07 10:34
Reportern8lbv Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionopen 
Product Version2022.4 
Summary0008216: Wrong Driver (or nonworking driver) loads for Realtek USB Bluetooth adaptor
Description

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.

Activities

arnaudr

arnaudr

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: https://bugzilla.kernel.org/show_bug.cgi?id=214287
Then in the Ubuntu bug tracker, 2022-04-11: https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1968604

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:

<pre>
cd linux-firmware
gitk -- 'rtl_bt/rtl8761b*'
</pre>

arnaudr

arnaudr

2023-03-15 02:45

manager   ~0017670

I sent a message to the linux-bluetooth maliing list: https://www.spinics.net/lists/linux-bluetooth/msg103399.html

n8lbv

n8lbv

2023-03-15 12:17

reporter   ~0017672

Thanks!!
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.

arnaudr

arnaudr

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 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fd2e294. 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 :)

g0tmi1k

g0tmi1k

2023-12-07 10:34

administrator   ~0018688

This report has been filed against an old version of Kali. We will be closing this ticket due to inactivity.

Please could you see if you are able to replicate this issue with the latest version of Kali Linux (https://www.kali.org/get-kali/)?

If you are still facing the same problem, feel free to re-open the ticket. If you choose to do this, could you provide more information to the issue you are facing, and also give information about your setup?
For more information, please read: https://www.kali.org/docs/community/submitting-issues-kali-bug-tracker/

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
2023-12-07 10:34 g0tmi1k Note Added: 0018688
2023-12-07 10:34 g0tmi1k Status new => closed