blueman-project / blueman

Blueman is a GTK+ Bluetooth Manager
GNU General Public License v3.0
1.27k stars 192 forks source link

Not Searching devices and also Not Discoverable by other devices #1984

Closed WaheedAbbas closed 1 year ago

WaheedAbbas commented 1 year ago

blueman: 2.3.4 BlueZ: 5.64-0ubuntu1 Distribution: LinuxMint 21.1 Desktop environment: XFCE Kernel: 5.15.0-56-generic

cschramm commented 1 year ago

The firmware should already be in place from the linux-firmware package and I'd clearly expect the btrtl driver to jump in. Did you try modprobeing it explicitly?

cschramm commented 1 year ago

Patch Kernal with { USB_DEVICE(0x2b89, 0x8761), .driver_info = BTUSB_REALTEK }

Ah yeah. If that's the correct ID, that entry seems necessary as it just recently got added to Linux 6.2-rc1.

WaheedAbbas commented 1 year ago

I am not sure how to execute the modprobe command. I ran modprobe rtl8761b, it showed "Module rtl8761b not found in directory /lib/modules/5.15.0-56-generic". But if I patch Kernel, Blueman no longer detects the controller and shows "no default controller available". Running the list command doesn't show any controller either. lsusb shows "2b89:8761 Realtek Bluetooth Radio", so I believe PID and VID are correct.

infirit commented 1 year ago

It may be failing to load the firmware, see https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1968604

cschramm commented 1 year ago

The module is btrtl, but the way forward is patching in the device and checking what happens with dmesg. The bug mentioned by @infirit sounds like Ubuntu or Linux in general gets something wrong with UART vs. USB firmware for that chip, so that linking to the rtl8761b files (that should be the UART firmware) from the rtl8761bu files (that should be the USB firmware) seems to help in some cases. :shrug:

WaheedAbbas commented 1 year ago

Thank you. That worked. What I did was: 1) Patch Kernel with { USB_DEVICE(0x2b89, 0x8761), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH },. It stopped recognizing the adapter as before but I didn't panic. 2) I installed drivers for RTL8761b 3) Ran cd /usr/lib/firmware/rtl_bt and sudo ln -s rtl8761b_fw.bin rtl8761bu_fw.bin 4) Reboot: Super Important

cschramm commented 1 year ago

Just for the record: You should not need external drivers and that repository looks out of date. The linux-firmware package ships both rtl8761b and rtl8761bu (and it looks like there are situations where you need to provide its b as bu for things to work).