hciconfig hci0 up

hciconfig hci0 up

這是一台 HP 15-BS576TX 筆記型電腦,配有 Realtek RTL8723DE 無線/藍牙模組。老實說,儘管韌體都可用,但我確實找不到打開藍牙的方法。 RTL8723DE 韌體最近在核心 linux-firmware.git 樹中可用,我也將其複製到 /lib/firmware/rtl_bt 目錄。

錯誤是,它要求 rtl8723b_config.bin 檔案不可用。此外,根據核心日誌,此筆記型電腦的藍牙部分被偵測為 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 up

無法初始化設備 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

該解決方案需要一些手工工作。首先,您必須從 linux-firmware git 儲存庫下載最新的 RTL8723D 韌體。韌體由 rtlwifi-new git 的 Larry Fingers 推送: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=6d5131107f2ba67a13f469ac770a55f101ba654d

  1. 在終端機中使用 git 工具將 linux-firmware 目錄複製到您喜歡的任何目錄(~/Downloads)中。我假設您正在下載到 ~/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_fwbin.

第 1 個是 WiFi 韌體,2,3 是藍牙韌體。

這些韌體需要分別複製到以下目錄: /lib/firmware/rtlwifi/rtl8723defw.bin /lib/firmware/rtl_bt/rtl8723d_fw.bin /lib/firmware/rtl_bt/rtl8723d_config.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/
  1. 現在,您必須將最新的 Linux 核心 (>= 4.17)、核心頭檔安裝到您的 Linux 系統中。對於 Ubuntu,您可以從以下位置下載http://kernel.ubuntu.com/~kernel-ppa/mainline/。下載帶有 amd64(相關架構)、標頭的通用核心。您可以下載到目錄並使用“dpkg -i *.deb”命令進行安裝。重新啟動後,藍牙將正常運作。

答案2

4.17rc 核心中剛剛新增了對藍牙裝置 rtl8723de 的支援。

該程式碼可以輕鬆向後移植到核心 4.4 - 4.15。有一個帶有 DKMS 軟體包的 PPA,適用於 bionic 和 xenial 以及更新的 btrtl 模組。

可以透過以下方式安裝

sudo add-apt-repository ppa:hanipouspilot/bluetooth sudo apt update sudo apt install btrtl-rtl8723de-dkms

重啟

從此藍牙就可以正常運作了

相關內容