这是一台 HP 15-BS576TX 笔记本电脑,配备 Realtek RTL8723DE 无线/蓝牙模块。老实说,尽管固件都可用,但我找不到启动蓝牙的方法。RTL8723DE 固件最近在内核 linux-firmware.git 树中可用,我也已将其复制到 /lib/firmware/rtl_bt 目录中。
错误是,它要求提供不可用的 rtl8723b_config.bin 文件。此外,根据内核日志,这台笔记本电脑的蓝牙部分被检测为 RTL8723B。固件维护人员的回复是:“并非所有设备都需要配置文件 - rtl8723be 不需要。”
lsusb-v-d 0bda:b009https://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
dmesg相关部分:
# 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
我不知道哪里出了问题。系统检测到蓝牙硬件为 RTL8723B,而无线模块肯定是 RTL8723DE,正如笔记本电脑背面所写。驱动程序维护者评论说 RTL8723B 和 RTL8723D 的蓝牙部分相似。那么,正确的做法是什么?有没有办法加载 rtl8723d 固件和配置文件而不是 rtl8723b 固件,这样可以解决问题吗?
答案1
请参见:https://github.com/lwfinger/rtlwifi_new/issues/158该通知是警告,而不是错误。如您所见,在日志中,驱动程序继续加载rtl8723b_fw.bin。我不认为缺少固件是个问题。我还怀疑重命名类似但不完全相同的固件是否是一个合适的解决方案。
答案2
RTL8723DE 的蓝牙通过内核 4.17 获得支持。我尝试了 4.17-rc2,修复利用了 RTL8723D 固件,有效。提交可能如下: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=907f84990924bf3a8d248c040dabeb5127ae6938
因此,请等待 4.17 内核成熟并发布,或者可以使用候选版本。当然,您需要安装固件包。