Comment 0 for bug 1968604

Revision history for this message
Olga (xlnk) wrote :

I have usb bluetooth 5.0 dongle which uses Realtek RTL8761B chip.
0bda:8771 Realtek Semiconductor Corp. Bluetooth Radio

USB adapter very often stops working, can't connect or find other bluetooth devices. The adapter can't work even after reboots.

The following entries appear in the log:
апр 11 13:47:14 desktop kernel: Bluetooth: hci0: command 0x2005 tx timeout
апр 11 13:47:16 desktop kernel: Bluetooth: hci0: command 0x2041 tx timeout
апр 11 13:47:18 desktop kernel: Bluetooth: hci0: command 0x2042 tx timeout

Firmware loaded correctly, but something is not working.
апр 11 13:46:54 desktop kernel: Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b lmp_ver=0a lmp_subver=8761
апр 11 13:46:54 desktop kernel: Bluetooth: hci0: RTL: rom_version status=0 version=1
апр 11 13:46:54 desktop kernel: Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_fw.bin
апр 11 13:46:54 desktop kernel: Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_config.bin
апр 11 13:46:54 desktop kernel: Bluetooth: hci0: RTL: cfg_sz 6, total sz 27814

1) I use:
Description: Ubuntu Jammy Jellyfish (development branch)
Release: 22.04
2) linux-firmware: 20220329.git681281e4-0ubuntu1
3) What you expected to happen? I expect a well working bluetooth adapter.
4) What happened instead? My bluetooth adapter may work, may not. The adapter may stop finding and connecting to other devices.

I've found the same bug https://www.spinics.net/lists/linux-bluetooth/msg93753.html
I've downloaded Windows's archive http://download.windowsupdate.com/d/msdownload/update/driver/drvs/2021/05/ca0e770c-6a5d-4de0-b37a-f4b91cccd8c3_7778831d2b9d721cf94d5a8d8c0676ff1b96c874.cab
I've unpacked file rtl8761b_mp_chip_bt40_fw_asic_rom_patch_new.dll and replaced /usr/lib/firmware/rtl_bt/rtl8761bu_fw.bin and deleted rtl8761bu_config.bin
After I changed firmware my usb dongle work fine.

Could you change firmware rtl8761bu_fw.bin rtl8761bu_config.bin to other correct version?
Could you move Realtek's rtl_bt firmware or RTL8761B's firmware into separate packages. I will remove the RTL8761B firmware package and put them manually.

bluetoothctl --version
bluetoothctl: 5.64

hci0: Type: Primary Bus: USB
        BD Address: 00:E0:4C:FC:E2:03 ACL MTU: 1021:6 SCO MTU: 255:12
        UP RUNNING
        RX bytes:5751 acl:49 sco:0 events:489 errors:0
        TX bytes:219114 acl:398 sco:0 commands:83 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: PERIPHERAL ACCEPT
        Name: 'desktop'
        Class: 0x7c0104
        Service Classes: Rendering, Capturing, Object Transfer, Audio, Telephony
        Device Class: Computer, Desktop workstation
        HCI Version: 5.1 (0xa) Revision: 0x97b
        LMP Version: 5.1 (0xa) Subversion: 0xec43
        Manufacturer: Realtek Semiconductor Corporation (93)

rfkill list
0: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no

Realtek's worker updated these bad firmware.
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=45dc5f0b8e2f2d43312d22511cb26658b9ee2c80