펌웨어 찾기:

펌웨어 찾기:

나는 새로운 Broadcom Bluetooth 장치가 있는 Lenovo Yoga 3를 가지고 있습니다.

시작 시 Bluetooth가 감지되고 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)

답변1

버전 3.19부터 Linux 커널은 이 장치를 지원하지만 장치의 펌웨어를 커널에 수동으로 제공해야 합니다.

펌웨어 찾기:

Lenovo(또는 컴퓨터 제조업체의 웹사이트)에서 다운로드할 수 있는 장치의 Windows 드라이버에서 펌웨어를 찾을 수 있습니다. 대부분의 드라이버는 직접 압축을 풀 수 있지만 이 특정 컴퓨터의 경우 드라이버는 파일 .exe이므로 사용해야 합니다 wine.

wine 4ab802rf.exe

"설치" 지침을 따르십시오. 마법사는 .exe파일을 추출하고 마지막 단계에서 설치를 요청합니다. "지금 Broadcom Bluetooth 드라이버 설치"를 선택 취소하십시오.

여기에 이미지 설명을 입력하세요.

드라이버 파일이 다음 위치로 추출되었습니다.~/.wine/driver_c/drivers/Broadcom Bluetooth Driver/

올바른 파일 식별

제 경우에는 압축을 푼 패키지에 20~30개의 펌웨어 파일이 들어 있었습니다. 귀하의 장치에 해당하는 것이 드라이버 파일 중 하나에 표시됩니다 inf. 의 출력에서 ​​장치 ID를 찾으십시오 . lsusb불분명한 경우 . usb-devices이 경우에는 파일을 e07agrep하여 inf해당 장치에 대해 설명하는 파일을 찾습니다.

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.inf또는 Win64/bcbtums-win8x64-brcm.inf. 파일을 보고 근처에 언급된 16진수 파일을 찾으세요 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'

이 파일의 이름은 매우 중요합니다. 이 예에서는 4개 문자로 구성된 두 세트가 0489-e07a장치의 공급업체 ID 및 제품 ID와 일치해야 합니다.

펌웨어 로드

펌웨어를 로드하는 가장 쉬운 방법은 컴퓨터 전원을 껐다가 다시 켜는 것입니다. 컴퓨터를 종료해야 합니다. 간단히 다시 시작하는 것만으로는 이 펌웨어를 다시 로드할 수 없습니다.

답변2

drs'에 따른 바로가기를 사용하여 파일을 얻을 수 있었고 긍정적인 결과를 얻었습니다. 내 블루투스 장치가 주변에 보이는 장치를 감지할 수 없었지만 지금은 감지됩니다.

제가 사용하는 지름길은 내 컴퓨터에 광학 드라이브가 없고 Windows가 사전 설치되어 있기 때문에 드라이버로 가득 찬 파티션이 함께 제공된다는 것입니다. 블루투스 드라이버가 잔뜩 있는 디렉토리를 찾았는데 drs가 제안한 INF 파일을 보니 E07A 장치가 드라이버 파일에 연결되어 있는 것을 발견했습니다.BCM20702A1_001.002.014.1483.1651.hex

그 후 나는 de hex2hcd프로그램을 컴파일하고 파일을 HCD로 변환했습니다. dmesg "패치 찾을 수 없음" 메시지에 따르면 BCM20702A1 이름 부분을 BCM2070A0으로 바꾸는 대신 유지해야 합니다.

장치를 페어링할 수는 없었지만 스캔할 수 있게 된 것은 확실히 한 단계 발전한 것입니다.

HCD 파일이 필요한 경우 메시지를 남겨주시면 최대한 빨리 보내드리겠습니다. 나는 또한 그것을 리눅스 블루투스 메일링 리스트에 보냈습니다.

편집하다.분명히 Windows HEX 드라이버 파일 이름의 1651은 빌드 번호를 나타냅니다. dmesg를 통해 커널에서 빌드 번호가 1651임을 알 수 있습니다.

관련 정보