Dies ist ein HP 15-BS576TX-Laptop, der mit einem Realtek RTL8723DE Wireless/Bluetooth-Modul ausgestattet ist. Ich kann ehrlich gesagt keine Möglichkeit finden, Bluetooth zu aktivieren, obwohl die Firmware vollständig verfügbar ist. Die RTL8723DE-Firmware ist seit kurzem im Kernel-Baum linux-firmware.git verfügbar und ich habe sie auch in das Verzeichnis /lib/firmware/rtl_bt kopiert.
Der Fehler besteht darin, dass nach der Datei rtl8723b_config.bin gefragt wird, die nicht verfügbar ist. Außerdem wird der Bluetooth-Teil dieses Laptops laut Kernel-Protokoll als RTL8723B erkannt. Die Antwort des Firmware-Betreuers lautete: „Nicht alle Geräte benötigen die Konfigurationsdatei – rtl8723be nicht.“
# 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
Ich habe die Firmware rtl8723D im Verzeichnis, aber der Kernel erkennt das Gerät trotzdem als RTL8723B, und ich kann es nicht aufrufen.
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
Als ich es versuchte,
hciconfig hci0 hoch
Gerät hci0 kann nicht initialisiert werden: Ungültiges Argument (22)
tail -f /var/log/kern.log zeigt Folgendes:
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
Und so sieht /lib/firmware/rtl_bt aus. Die neueste Firmware für RTL8723D wurde ebenfalls in das Verzeichnis kopiert:
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
Was falsch ist, kann ich nicht herausfinden. Das System erkennt die Bluetooth-Hardware als RTL8723B, während das drahtlose Modul definitiv RTL8723DE ist, wie auf der Rückseite des Laptops angegeben. Der Treiberbetreuer hat angemerkt, dass der Bluetooth-Teil von RTL8723B und RTL8723D ähnlich ist. Was ist also das Richtige, das ich versuchen sollte? Gibt es eine Möglichkeit, die Firmware und Konfigurationsdatei von RTL8723D anstelle der Firmware von RTL8723B zu laden? Wird das das Problem beheben?
Antwort1
Die Lösung erfordert etwas Handarbeit. Zunächst müssen Sie die neueste RTL8723D-Firmware aus dem Git-Repository „Linux-Firmware“ herunterladen. Die Firmware wird von Larry Fingers von rtlwifi-new git bereitgestellt: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=6d5131107f2ba67a13f469ac770a55f101ba654d
Klonen Sie das Verzeichnis linux-firmware in ein beliebiges Verzeichnis (~/Downloads) mit dem Git-Tool in einem Terminal. Ich gehe davon aus, dass Sie in das Verzeichnis ~/Downloads herunterladen:
git-Klon git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Die Firmware befindet sich unter: ~/Downloads/linux-firmware/rtlwifi/rtl8723defw.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_config.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_fw.bin
1. ist WiFi-Firmware und 2,3 sind Bluetooth-Firmware.
Diese Firmware muss jeweils in die folgenden Verzeichnisse kopiert werden: /lib/firmware/rtlwifi/rtl8723defw.bin /lib/firmware/rtl_bt/rtl8723d_fw.bin /lib/firmware/rtl_bt/rtl8723d_config.bin
Sie können ein Terminal öffnen und Folgendes verwenden (sudo: geben Sie Ihr Passwort ein):
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/
- Jetzt müssen Sie den aktuellen Linux-Kernel (>= 4.17) und die Kernel-Header auf Ihrem Linux-System installieren. Im Falle von Ubuntu können Sie von herunterladenhttp://kernel.ubuntu.com/~kernel-ppa/mainline/. Laden Sie den generischen Kernel mit amd64 (relevante Architektur) und Headern herunter. Sie können ihn in ein Verzeichnis herunterladen und mit dem Befehl „dpkg -i *.deb“ installieren. Nach dem Neustart funktioniert Bluetooth.
Antwort2
Die Unterstützung für dieses Bluetooth-Gerät rtl8723de wurde gerade zum 4.17rc-Kernel hinzugefügt.
Der Code kann problemlos auf die Kernel 4.4 - 4.15 zurückportiert werden. Es gibt ein PPA mit DKMS-Paketen für Bionic und Xenial mit dem aktualisierten Btrtl-Modul.
Die Installation erfolgt durch
sudo add-apt-repository ppa:hanipouspilot/bluetooth
sudo apt update
sudo apt install btrtl-rtl8723de-dkms
NEUSTART
Ab dann funktioniert Bluetooth wieder normal