Hardware

如何讓藍牙在聯想 Yoga 3 上正常工作?

  • February 12, 2017

我有一台聯想 Yoga 3,它顯然有一個新的 Broadcom 藍牙設備。

在啟動時檢測到藍牙,當我嘗試在 gnome 中配對某個東西時,我可以看到一個設備列表,但沒有一個配對。

我怎樣才能讓這個設備工作?

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 048d:8386 Integrated Technology Express, Inc.
Bus 001 Device 003: ID 5986:0535 Acer, Inc
Bus 001 Device 002: ID 0489:e07a Foxconn / Hon Hai
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
usb-devices
T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0489 ProdID=e07a Rev=01.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM20702A0
S:  SerialNumber=38B1DBE337E4
C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

從 3.19 版本開始,Linux 核心支持此設備,但您需要手動將設備的韌體提供給核心。

查找韌體:

您可以在設備的 Windows 驅動程序中找到韌體,您可以從 Lenovo(或您的電腦製造商的網站)下載該驅動程序。許多驅動程序可以直接解壓縮,但對於這台特定的電腦,驅動程序是一個.exe文件,必須使用wine.

wine 4ab802rf.exe

按照“安裝”說明進行操作。嚮導將提取.exe文件,並在最後一步要求安裝它。取消選中“立即安裝 Broadcom 藍牙驅動程序”:

在此處輸入圖像描述

驅動文件已經解壓到~/.wine/driver_c/drivers/Broadcom Bluetooth Driver/

辨識正確的文件

在我的例子中,解壓包中有 20 - 30 個韌體文件。哪一個與您的設備相對應在驅動程序inf文件之一中顯示。從 的輸出中查找您的設備 ID,lsusb或者如果不清楚,usb-devices。在這種情況下,它是e07a. 然後 grepinf文件以找出哪一個在談論該設備:

grep -c E07A -r --include \*.inf
Win32/LD/bcbtumsLD-win7x86.inf:0
Win32/bcmhidnossr.inf:0
Win32/btwl2cap.inf:0
Win32/btwavdt.inf:0
Win32/btwrchid.inf:0
Win32/bcbtums-win8x86-brcm.inf:17
Win32/btwaudio.inf:0
Win64/LD/bcbtumsLD-win7x64.inf:0
Win64/bcmhidnossr.inf:0
Win64/btwl2cap.inf:0
Win64/btwavdt.inf:0
Win64/btwrchid.inf:0
Win64/bcbtums-win8x64-brcm.inf:17
Win64/btwaudio.inf:0
Autorun.inf:0

因此,在此驅動程序中,您可以查看Win32/bcbtums-win8x86-brcm.infWin64/bcbtums-win8x64-brcm.inf。查看文件並找到附近提到的十六進製文件E07A

;;;;;;;;;;;;;RAMUSBE07A;;;;;;;;;;;;;;;;;

[RAMUSBE07A.CopyList]
bcbtums.sys
btwampfl.sys
BCM20702A1_001.002.014.1443.1496.hex

因此韌體位於同一目錄中並命名為BCM20702A1_001.002.014.1443.1496.hex.

轉換和放置韌體

下載並編譯該hex2hcd工具

git clone https://github.com/jessesung/hex2hcd.git
cd hex2hcd
make

將韌體轉換為hcd

hex2hcd BCM20702A1_001.002.014.1443.1496.hex firmware.hcd

重命名韌體並將其移動到系統的韌體子目錄:

su -c 'mv firmware.hcd /lib/firmware/brcm/BCM20702A0-0489-e07a.hcd'

這個文件的名字很關鍵。在這種情況下,兩組四個字元0489-e07a應與您設備的供應商 ID 和產品 ID 匹配。

載入韌體

載入韌體最簡單的方法是關閉電腦並重新打開。注意電腦要關機;簡單的重啟可能不足以重新載入此韌體。

引用自:https://unix.stackexchange.com/questions/189790