Este é um laptop HP 15-BS576TX que vem com módulo Realtek RTL8723DE Wireless/Bluetooth. Sinceramente, não consigo encontrar uma maneira de ativar o Bluetooth, apesar de todos os firmware estarem disponíveis. O firmware RTL8723DE está disponível recentemente na árvore linux-firmware.git do kernel e eu também o copiei para o diretório /lib/firmware/rtl_bt.
O erro é que ele está solicitando o arquivo rtl8723b_config.bin que não está disponível. Além disso, a parte bluetooth deste laptop é detectada como RTL8723B de acordo com o log do kernel. A resposta do mantenedor do firmware foi: "Nem todos os dispositivos precisam do arquivo de configuração - o rtl8723be não."
# 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
Eu tenho firmware rtl8723D no diretório e ainda assim, o kernel está detectando o dispositivo como RTL8723B e não consigo acessá-lo.
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
Quando eu tentei,
hciconfig hci0 up
Não é possível iniciar o dispositivo hci0: argumento inválido (22)
tail -f /var/log/kern.log mostra isso:
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
E é assim que o /lib/firmware/rtl_bt se parece. Possui firmware mais recente para RTL8723D também copiado para o diretório:
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
O que há de errado, não consigo descobrir. O sistema detecta o hardware Bluetooth como RTL8723B, enquanto o módulo sem fio é definitivamente RTL8723DE conforme escrito na parte traseira do laptop. O mantenedor do driver comentou que a parte Bluetooth do RTL8723B e RTL8723D são semelhantes. Então, qual é a coisa certa a tentar? Existe uma maneira de carregar o firmware rtl8723d e o arquivo de configuração em vez do firmware rtl8723b, isso resolverá o problema.
Responder1
A solução precisa de algum trabalho manual. Em primeiro lugar, você deve baixar o firmware RTL8723D mais recente do repositório git linux-firmware. O firmware é enviado por Larry Fingers do rtlwifi-new git: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=6d5131107f2ba67a13f469ac770a55f101ba654d
clone o diretório linux-firmware em qualquer diretório de sua preferência (~/Downloads) usando a ferramenta git em um terminal. Presumo que você esteja baixando no diretório ~/Downloads:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
O firmware está localizado em: ~/Downloads/linux-firmware/rtlwifi/rtl8723defw.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_config.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_fw.bin
O primeiro é o firmware WiFi e 2,3 é o firmware Bluetooth.
Este firmware precisa ser copiado respectivamente para os diretórios abaixo: /lib/firmware/rtlwifi/rtl8723defw.bin /lib/firmware/rtl_bt/rtl8723d_fw.bin /lib/firmware/rtl_bt/rtl8723d_config.bin
Você pode abrir um terminal e usar isto (sudo: forneça sua senha):
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/
- Agora, você deve instalar o kernel Linux recente (>= 4.17), cabeçalhos de kernel em seu sistema Linux. No caso do Ubuntu, você pode baixar emhttp://kernel.ubuntu.com/~kernel-ppa/mainline/. Baixe o kernel genérico com AMD64 (arquitetura relevante), cabeçalhos. Você pode baixar para um diretório e instalar com o comando "dpkg -i *.deb". Ao reiniciar, o bluetooth estará funcionando.
Responder2
O suporte para este dispositivo bluetooth rtl8723de acabou de ser adicionado ao kernel 4.17rc.
O código pode ser facilmente portado para os kernels 4.4 - 4.15. Existe um PPA com pacotes DKMS para bionic e xenial com o módulo btrtl atualizado.
Pode ser instalado por
sudo add-apt-repository ppa:hanipouspilot/bluetooth
sudo apt update
sudo apt install btrtl-rtl8723de-dkms
REINÍCIO
O Bluetooth funcionará normalmente a partir de então