0

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."

lsusb -v -d 0bda:b009 https://pastebin.ca/3998303

:~# rfkill list all
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
4: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no

The dmesg relevant parts:

# 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.

2 Answers2

0

Please see: https://github.com/lwfinger/rtlwifi_new/issues/158 The notification is a warning, not an error. As you can see, in the log, the driver goes on to load rtl8723b_fw.bin. I don't believe missing firmware is an issue. I also doubt that renaming similar but not identical firmware is an appropriate fix.

chili555
  • 60,188
  • Do you suggest moving rtl8723b_fw.bin to somewhere else and, rename rtl8723d_fw.bin to rtl8723b_fw.bin? – Confguy2016 Mar 08 '18 at 16:04
  • No. As I said, I also doubt that renaming similar but not identical firmware is an appropriate fix. If you are having trouble with your bluetooth, it is unlikely a firmware issue. However, if you want to experiment, it is easy to try and easy to undo. Shall I edit my answer to give the method (although I doubt it will change anything)? – chili555 Mar 08 '18 at 16:47
  • Yes, please explain the method. The bluetooth is working fine in Windows 10, that means it is not a hardware issue. I tried renaming rtl8723d firmware files to rtl8723b and rtl8723b_config and tried. But, it also failed to bring up the device. Here is the kern.log :
    [ 319.303029] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_config.bin [ 319.303165] Bluetooth: hci0: rtl: loading rtl_bt/rtl8723b_fw.bin [ 319.305177] Bluetooth: hci0: rom_version status=0 version=2 [ 319.305187] Bluetooth: hci0: unknown project id 9
    – Confguy2016 Mar 08 '18 at 22:57
  • If you renamed it and it loaded but didn't work, you've proved my point. – chili555 Mar 09 '18 at 00:27
  • I cannot bring up bluetooth hci0 and the message says "didn't find patch for chip id 2" . Does this means, an updated firmware file is needed to resolve this? BTW, any hope if we extract Windows driver for BT to get firmware. I saw that there is a file "rtl8723d_mp_chip_bt40_fw_asic_rom_patch_new.dll" and cannot figure out much, even though cab files are extracted. – Confguy2016 Mar 09 '18 at 01:09
0

Bluetooth for RTL8723DE is supported through kernel 4.17. I tried 4.17-rc2 and the fix makes use of the RTL8723D firmware, works. The commit may be this: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=907f84990924bf3a8d248c040dabeb5127ae6938

So, wait for 4.17 kernel to be matured and release or can use the release candidates. Of course, you need the firmware packages installed.