Realtek Bluetooth USB 0bda:b853 fails to initialize on RTL8852BE system: hci0 stays DOWN, BD_ADDR is 00:00:00:00:00:00, Opcode 0xfcf0 failed: -16

imeltgp

New Member
Joined
Mar 27, 2026
Messages
2
Reaction score
0
Credits
33
Environment:
  • Distribution: Fedora 43
  • Kernels tested:
- 6.19.9-200.fc43.x86_64
- 6.17.1-300.fc43.x86_64
  • bluez: 5.86-4.fc43.x86_64
  • linux-firmware: 20260309-1.fc43.noarch

Hardware:
  • Wi-Fi PCI device works correctly with rtw89_8852be
  • Bluetooth USB device:
- Bus 001 Device 003: ID 0bda:b853 Realtek Semiconductor Corp. Bluetooth Radio

Symptoms:
  • bluetoothctl list returns nothing
  • hciconfig -a shows:
- hci0 present
- BD Address: 00:00:00:00:00:00
- state: DOWN
- rfkill list bluetooth shows no soft block and no hard block

Relevant dmesg output:
Bluetooth: hci0: RTL: examining hci_ver=0b hci_rev=000b lmp_ver=0b lmp_subver=8852
Bluetooth: hci0: RTL: rom_version status=0 version=3
Bluetooth: hci0: RTL: btrtl_initialize: key id 0
Bluetooth: hci0: RTL: loading rtl_bt/rtl8852bu_fw.bin
Bluetooth: hci0: RTL: loading rtl_bt/rtl8852bu_config.bin
Bluetooth: hci0: Opcode 0xfcf0 failed: -16
Bluetooth: hci0: AOSP extensions version v0.96
Bluetooth: hci0: AOSP quality report is not supported

What I tested:
1. Reboot / full shutdown / power drain
2. Tested two different Fedora kernels (6.17.1 and 6.19.9)
3. Verified that bluetooth is not rfkill-blocked
4. Tried disabling btusb autosuspend
5. Unbound/rebound the USB port
6. Downgraded linux-firmware and rebooted
7. Built and loaded an out-of-tree patched btusb.ko from /lib/modules/<kernel>/updates/
- the patched module was definitely loaded
- runtime behavior remained unchanged
- it still selected rtl8852bu_fw.bin / rtl8852bu_config.bin
- it still failed with Opcode 0xfcf0 failed: -16

Additional observation:
The device is USB ID 0bda:b853.
I investigated whether this device might simply be missing an exact btusb ID entry / quirk.
However, even after loading a patched out-of-tree btusb module, runtime behavior did not change at all.

Expected behavior:
The Bluetooth controller should initialize successfully, appear in bluetoothctl list, and expose a valid BD_ADDR instead of 00:00:00:00:00:00.

Actual behavior:
The controller remains DOWN and unusable.

Hypothesis:
This may require additional support in btusb/btrtl beyond generic Realtek handling for this specific 0bda:b853 device, possibly an initialization quirk or different firmware-selection path.
 
Last edited:


I am reporting a Bluetooth initialization failure on a system with Realtek RTL8852BE Wi-Fi and a Realtek Bluetooth USB device.

Just to make it clear, we're not an official Linux anything. We're just a forum with a great domain name.

We may still be able to help you, but I figured I'd make sure you're on the same page.
 
What's the output of lsusb?

What's the output of:
Bash:
sudo systemctl status bluetooth
output of lsusb:

Bash:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 001 Device 004: ID 0bda:b853 Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 005: ID 30fa:0400  USB OPTICAL MOUSE
Bus 001 Device 006: ID 258a:014a BY Tech USB Keyboard
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 04f2:b875 Chicony Electronics Co., Ltd Integrated Camera
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 002: ID 05e3:0f01 Genesys Logic, Inc. Billboard Device
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

sudo systemctl status bluetooth shows that bluetooth.service is active(running) :

Code:
● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Sat 2026-03-28 12:25:47 CST; 3h 17min ago
 Invocation: 64ecc09f755041d1985bd3d3f5c35c3d
       Docs: man:bluetoothd(8)
   Main PID: 1119 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 37509)
     Memory: 2.1M (peak: 4.8M)
        CPU: 37ms
     CGroup: /system.slice/bluetooth.service
             └─1119 /usr/libexec/bluetooth/bluetoothd
 


Follow Linux.org

Members online

No members online now.

Top