HRex39/rtl8852be_bt

Solution not working on 5.13 kernel

Closed this issue · 5 comments

Hello! Can you help me out? I tried to reproduce your solution from your commits using kernel 5.13 (ubuntu 20.04) but bluetooth still doesn`t work. Behavior is that bluetooth shows up on the system, but never finds any devices while scanning. I tried many different bluetooth devices which are working.

some info:

01:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
Subsystem: Device [1d3e:c826]
Kernel driver in use: rtl8852be

DeviceName: Realtek RTL8111E Ethernet LOM
Subsystem: Xiaomi Device [1d72:2019]
Kernel driver in use: amdgpu

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 27c6:581a Shenzhen Goodix Technology Co.,Ltd. FingerPrint
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0cb8:c559 Opticis Co., Ltd Bluetooth Radio
Bus 001 Device 003: ID 1bcf:2cdd Sunplus Innovation Technology Inc. XiaoMi USB 2.0 Webcam
Bus 001 Device 002: ID 046d:c083 Logitech, Inc. G403 Prodigy Gaming Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
hci0: Type: Primary Bus: USB
BD Address: 34:6F:24:D3:9C:81 ACL MTU: 1021:6 SCO MTU: 255:12
UP RUNNING PSCAN ISCAN
RX bytes:2799 acl:0 sco:0 events:341 errors:0
TX bytes:7344 acl:0 sco:0 commands:306 errors:0
Features: 0xff 0xff 0xff 0xfe 0xdb 0xfd 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'alexandre-RedmiBook-Pro-15S'
Class: 0x1c010c
Service Classes: Rendering, Capturing, Object Transfer
Device Class: Computer, Laptop
HCI Version: (0xb) Revision: 0xb
LMP Version: (0xb) Subversion: 0x8852
Manufacturer: Realtek Semiconductor Corporation (93)

[ 0.098535] Spectre V2 : Enabling Restricted Speculation for firmware calls
[ 0.261520] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 0.268407] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-3f] only partially covers this bridge
[ 1.838528] usb 1-4: Product: Bluetooth Radio
[ 2.479651] Bluetooth: Core ver 2.22
[ 2.479730] Bluetooth: HCI device and connection manager initialized
[ 2.479752] Bluetooth: HCI socket layer initialized
[ 2.479762] Bluetooth: L2CAP socket layer initialized
[ 2.479773] Bluetooth: SCO socket layer initialized
[ 3.125935] [drm] Loading DMUB firmware via PSP: version=0x0101000A
[ 3.126559] [drm] Found VCN firmware Version ENC: 1.7 DEC: 4 VEP: 0 Revision: 17
[ 3.126568] amdgpu 0000:03:00.0: amdgpu: Will use PSP to load VCN firmware
[ 4.754722] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 4.754731] Bluetooth: BNEP filters: protocol multicast
[ 4.754741] Bluetooth: BNEP socket layer initialized
[ 70.708154] Bluetooth: RFCOMM TTY layer initialized
[ 70.708160] Bluetooth: RFCOMM socket layer initialized
[ 70.708166] Bluetooth: RFCOMM ver 1.11
[ 299.025409] Bluetooth: hci0: Ignoring error of Inquiry Cancel command

Well, this driver is just for RTL8852BE while your device is RTL8111E, but I think the principles are the same.
please print the result via lsusb and sudo dmesg | grep -i blue

By the way, It is 10+ years old since RTL8111E released...

I think
the first step is to get btusb to recognize your device,
and the second step is to get btrtl to recognize your hci_ver, hci_rev, lmp_ver and lmp_subverand load the firmware information correctly at the same time.

Let me tell you that this is odd behavior. I have a windows dual boot on this machine (redmibook pro 15 ryzen edition 2021) and it shows up correctly as 8852be device. For some reason, ubuntu 20.04 isn`t able to even recognize this board.

Solution was to update to latest (ubuntu 22.04 with kernel 5.15) and use your repository. Now it works.

alexandre@alexandre-RedmiBook-Pro-15S:~$ sudo dmesg | grep -i blue
[ 1.800844] usb 1-4: Product: Bluetooth Radio
[ 2.402754] Bluetooth: Core ver 2.22
[ 2.402778] NET: Registered PF_BLUETOOTH protocol family
[ 2.402780] Bluetooth: HCI device and connection manager initialized
[ 2.402784] Bluetooth: HCI socket layer initialized
[ 2.402787] Bluetooth: L2CAP socket layer initialized
[ 2.402792] Bluetooth: SCO socket layer initialized
[ 2.455281] Bluetooth: hci0: RTL: examining hci_ver=0b hci_rev=000b lmp_ver=0b lmp_subver=8852
[ 2.459621] Bluetooth: hci0: RTL: rom_version status=0 version=1
[ 2.459632] Bluetooth: hci0: RTL: loading rtl_bt/rtl8852bu_fw.bin
[ 2.461131] Bluetooth: hci0: RTL: loading rtl_bt/rtl8852bu_config.bin
[ 2.461626] Bluetooth: hci0: RTL: cfg_sz 6, total sz 38955
[ 2.837269] Bluetooth: hci0: RTL: fw version 0xdfb791cb
[ 3.545562] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 3.545565] Bluetooth: BNEP filters: protocol multicast
[ 3.545570] Bluetooth: BNEP socket layer initialized
[ 4.450261] Bluetooth: RFCOMM TTY layer initialized
[ 4.450268] Bluetooth: RFCOMM socket layer initialized
[ 4.450274] Bluetooth: RFCOMM ver 1.11

You can also use the 5.13 kernel and then do some file changes, if you want to use bluetooth in Ubuntu 20.04 LTS.

But for WLAN drivers, rtl8852be should work properly in both ubuntu version?