Это ноутбук HP 15-BS576TX, который поставляется с модулем Realtek RTL8723DE Wireless/Bluetooth. Честно говоря, я не могу найти способ включить Bluetooth, несмотря на то, что все прошивки доступны. Прошивка RTL8723DE недавно появилась в дереве kernel linux-firmware.git, и я также скопировал ее в каталог /lib/firmware/rtl_bt.
Ошибка в том, что он запрашивает файл rtl8723b_config.bin, который недоступен. Кроме того, часть bluetooth этого ноутбука определяется как RTL8723B согласно журналу ядра. Ответ от сопровождающего прошивки был: "Не всем устройствам нужен файл конфигурации - rtl8723be не нужен".
# 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
У меня в каталоге есть прошивка rtl8723D, но ядро по-прежнему определяет устройство как RTL8723B, и я не могу его запустить.
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
Когда я попробовал,
hciconfig hci0 вверх
Невозможно инициализировать устройство hci0: недопустимый аргумент (22)
tail -f /var/log/kern.log показывает следующее:
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
А вот так выглядит /lib/firmware/rtl_bt. В нем также скопирована последняя прошивка для RTL8723D в каталог:
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
Что не так, я не могу понять. Система определяет оборудование Bluetooth как RTL8723B, в то время как беспроводной модуль определенно RTL8723DE, как написано на задней панели ноутбука. Разработчик драйвера прокомментировал, что часть Bluetooth RTL8723B и RTL8723D похожа. Итак, что правильно попробовать? Есть ли способ загрузить прошивку и файл конфигурации rtl8723d вместо прошивки rtl8723b, исправит ли это проблему.
решение1
Решение требует некоторой ручной работы. Во-первых, вам нужно загрузить последнюю прошивку RTL8723D из репозитория git linux-firmware. Прошивку выкладывает Larry Fingers из rtlwifi-new git: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=6d5131107f2ba67a13f469ac770a55f101ba654d
клонируйте каталог linux-firmware в любой каталог по вашему выбору (~/Downloads) с помощью инструмента git в терминале. Я предполагаю, что вы скачиваете в каталог ~/Downloads:
git клон git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Прошивки находятся в: ~/Downloads/linux-firmware/rtlwifi/rtl8723defw.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_config.bin ~/Downloads/linux-firmware/rtl_bt/rtl8723d_fw.bin
1-я — это прошивка WiFi, а 2,3 — это прошивка Bluetooth.
Эти прошивки необходимо скопировать в следующие каталоги: /lib/firmware/rtlwifi/rtl8723defw.bin /lib/firmware/rtl_bt/rtl8723d_fw.bin /lib/firmware/rtl_bt/rtl8723d_config.bin
Вы можете открыть терминал и использовать это (sudo: введите свой пароль):
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/
- Теперь вам нужно установить последнее ядро Linux (>= 4.17), заголовки ядра в вашу систему Linux. В случае Ubuntu вы можете скачать сhttp://kernel.ubuntu.com/~kernel-ppa/mainline/. Загрузите универсальное ядро с amd64 (соответствующая архитектура), заголовки. Вы можете загрузить в каталог и установить с помощью команды "dpkg -i *.deb". После перезапуска bluetooth заработает.
решение2
Поддержка этого устройства Bluetooth rtl8723de была только что добавлена в ядро 4.17rc.
Код можно легко перенести на ядра 4.4 - 4.15. Есть PPA с пакетами DKMS для bionic и xenial с обновленным модулем btrtl.
Его можно установить
sudo add-apt-repository ppa:hanipouspilot/bluetooth
sudo apt update
sudo apt install btrtl-rtl8723de-dkms
ПЕРЕЗАГРУЗИТЬ
С этого момента Bluetooth будет работать нормально.