Bluetooth not working for Realtek RTL8723DE - hci0: didn't find patch for chip id 2 , firmware error for rtl_bt/rtl8723b_config.bin failed error -2

21,870

Solution 1

The solution needs some handiwork. Firstly, you have to download the latest RTL8723D firmware from linux-firmware git repository. The firmware are pushed by Larry Fingers of rtlwifi-new git: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=6d5131107f2ba67a13f469ac770a55f101ba654d

  1. clone linux-firmware directory in any directory of your preference (~/Downloads) using git tool in a terminal. I assume you are downloading to ~/Downloads directory:

    git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

The firmware are located in: ~/Downloads/linux-firmware/rtlwifi/rtl8723defw.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_config.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_fw.bin

1st is WiFi firmware and 2,3 are Bluetooth firmware.

These firmware needs to be copied respectively to the below directories: /lib/firmware/rtlwifi/rtl8723defw.bin /lib/firmware/rtl_bt/rtl8723d_fw.bin /lib/firmware/rtl_bt/rtl8723d_config.bin

You can open a terminal and use this (sudo: give your password):

sudo cp ~/Downloads/linux-firmware/rtlwifi/rtl8723defw.bin /lib/firmware/rtlwifi/

sudo cp ~/Downloads/linux-firmware/rtl_bt/rtl8723d_fw.bin /lib/firmware/rtl_bt/

sudo cp ~/Downloads/linux-firmware/rtl_bt/rtl8723d_config.bin /lib/firmware/rtl_bt/
  1. Now, you have to install the recent Linux kernel (>= 4.17), kernel headers to your Linux system. In the case of Ubuntu, you can download from http://kernel.ubuntu.com/~kernel-ppa/mainline/ . Download the generic kernel with amd64 (relevant architecture), headers. You can download to a directory and install with "dpkg -i *.deb" command. Upon restarting, bluetooth will be working.

Solution 2

Support for this bluetooth device rtl8723de had been just added to the 4.17rc kernel.

The code can be easily backported to kernels 4.4 - 4.15. There's a PPA with DKMS packages for bionic and xenial with the updated btrtl module.

It can be installed by

sudo add-apt-repository ppa:hanipouspilot/bluetooth sudo apt update sudo apt install btrtl-rtl8723de-dkms

REBOOT

Bluetooth will work normally from then

Share:
21,870
Confguy2016
Author by

Confguy2016

Linux Enthusiast..using from 2000's.

Updated on September 18, 2022

Comments

  • Confguy2016
    Confguy2016 over 1 year

    This is a HP 15-BS576TX laptop which comes with Realtek RTL8723DE Wireless/Bluetooth module. I honestly cannot find a way to bring up the Bluetooth despite, the firmware are all available. The RTL8723DE firmware is recently available in kernel linux-firmware.git tree and I have copied it to the /lib/firmware/rtl_bt directory too.

    The error is, it is asking for rtl8723b_config.bin file which is not available. Also, the bluetooth part of this laptop is detected as RTL8723B as per the kernel log. The reply from the firmware maintainer was: "Not all devices need the config file - rtl8723be does not."

    # dmesg  |grep -i bluetooth
    [   11.325095] Bluetooth: Core ver 2.22
    [   11.325111] Bluetooth: HCI device and connection manager initialized
    [   11.325113] Bluetooth: HCI socket layer initialized
    [   11.325115] Bluetooth: L2CAP socket layer initialized
    [   11.325118] Bluetooth: SCO socket layer initialized
    [   11.414774] Bluetooth: hci0: rtl: examining hci_ver=08 hci_rev=000d lmp_ver=08 lmp_subver=8723
    [   11.414775] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_config.bin
    [   11.466838] bluetooth hci0: Direct firmware load for rtl_bt/rtl8723b_config.bin failed with error -2
    [   11.466840] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_fw.bin
    [   11.478765] Bluetooth: hci0: rom_version status=0 version=2
    [   11.478767] Bluetooth: hci0: didn't find patch for chip id 2
    [   21.410553] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [   21.410555] Bluetooth: BNEP filters: protocol multicast
    [   21.410557] Bluetooth: BNEP socket layer initialized
    

    I have rtl8723D firmware in the directory and still, the kernel is detecting the device as RTL8723B and I cannot bring it up.

    hci0:   Type: Primary  Bus: USB
        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
        DOWN 
        RX bytes:63 acl:0 sco:0 events:6 errors:0
        TX bytes:18 acl:0 sco:0 commands:6 errors:0
        Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Packet type: DM1 DH1 HV1 
        Link policy: 
        Link mode: SLAVE ACCEPT
    

    When I tried,

    hciconfig hci0 up

    Can't init device hci0: Invalid argument (22)

    tail -f /var/log/kern.log shows this:

    Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.853960] Bluetooth: hci0: rtl: examining hci_ver=08 hci_rev=000d lmp_ver=08 lmp_subver=8723
    Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.853970] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_config.bin
    Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.854019] bluetooth hci0: Direct firmware load for rtl_bt/rtl8723b_config.bin failed with error -2
    Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.854024] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_fw.bin
    Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.855913] Bluetooth: hci0: rom_version status=0 version=2
    Mar  8 01:51:21 HP-LAPTOP-15-BS00X kernel: [ 3116.855920] Bluetooth: hci0: didn't find patch for chip id 2
    

    And this is how the /lib/firmware/rtl_bt looks like. It has latest firmware for RTL8723D also copied into the directory:

    rtl8192ee_fw.bin
    rtl8192eu_fw.bin
    rtl8723a_fw.bin
    rtl8723b_fw.bin
    rtl8723d_config.bin
    rtl8723d_fw.bin
    rtl8761a_fw.bin
    rtl8812ae_fw.bin
    rtl8821a_fw.bin
    rtl8821c_config.bin
    rtl8821c_fw.bin
    rtl8822b_config.bin
    rtl8822b_fw.bin
    

    What is wrong, I cannot figure out. System detects the Bluetooth hardware as RTL8723B, while the wireless module is definitely RTL8723DE as written in the back of the laptop. The driver maintainer commented that the Bluetooth part of RTL8723B and RTL8723D are similar. So, What is the right thing to try? Is there a way to load the rtl8723d firmware and config file instead of rtl8723b firmware, will it fix the problem.

    • Hanlon
      Hanlon almost 6 years
    • Confguy2016
      Confguy2016 almost 6 years
      @Vuk Thanks. But, the bluetooth for RTL8723D is supported only in 4.17rc2 kernel and newer. I will answer this question, so that others will find it helpful.