USB 블루투스 동글(Asus USB-BT400)을 통해 내 컴퓨터에 블루투스 헤드셋(Sennheiser MM 550-X)이 연결되어 있습니다. 우분투 14.10을 실행 중입니다. 헤드셋을 출력(헤드폰)과 입력 소스(마이크)로 구성하고 싶습니다.
우선, 헤드셋이 컴퓨터와 페어링됩니다.
Ubuntu 사운드 설정에서 "A2DP" 모드로 헤드셋을 구성하면 컴퓨터에서 헤드셋으로 사운드를 보낼 수 있습니다. 하지만 헤드셋으로 입력 소스를 구성하면 출력 모드가 HSP/HFP로 전환되고 더 이상 작동하지 않습니다(사운드 출력이나 마이크 모두 작동하지 않음).
인터넷 조사를 통해 HSP/HFP 모드에서만 마이크가 작동할 수 있다는 것을 알고 있습니다. 게다가 동글은 Broadcom BCM20702A0 칩셋을 사용하는데 이에 대한 몇 가지 버그 보고서를 발견했지만 이 칩셋에 여전히 문제가 있는지 여부는 확실하지 않습니다.
마이크를 작동시키는 방법은 무엇입니까?
감사해요 !
편집: lsusb의 출력 추가:
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 0d3d:0040 Tangtop Technology Co., Ltd
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0b05:17cb ASUSTek Computer, Inc.
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Edit2: Jeremy31 답변으로 업데이트합니다. 내 헤드셋은 00:16:94:0F:23:C6입니다.
dmesg|tail:
[35677.706802] usbcore: deregistering interface driver btusb
[35677.709252] Bluetooth: hci0 urb ffff8800d5ec6840 failed to resubmit (2)
[35690.999061] usbcore: registered new interface driver btusb
답변1
문제는 btusb 드라이버와 Asus 동글 USB-BT400에 있습니다. 이 동글에는 펌웨어가 필요합니다. 펌웨어를 얻으려면 여기에서 최신 Windows 드라이버를 다운로드하십시오(Bluetooth 섹션). http://support.asus.com/download.aspx?SLanguage=en&p=1&s=45&m=MAXIMUS+VI+FORMULA&os=30&hashedid=Dbn0i1Jz1yusKO7u
.zip 파일을 추출합니다. 펌웨어가 많기 때문에 올바른 펌웨어를 찾아야 합니다. bcbtums-win7x86-brcm.inf 파일(예:)을 편집하고 파일에서 USB 제품 ID를 검색하여 동글 섹션을 찾습니다(대소문자 구분 안 함). 이 섹션에서는 .hex 파일(제 경우에는 "BCM20702A1_001.002.014.1315.1347.hex")을 참조합니다.
여기에서 hex2hcd를 다운로드하세요:https://github.com/jessesung/hex2hcd 이를 컴파일하고 이전에 식별된 .hex 파일에서 .hcd 파일을 만듭니다. 이제 펌웨어가 생겼습니다.
btusb 드라이버가 이 동글에 대한 펌웨어를 로드하려고 시도하지 않는 것 같은데, 이는 아마도 버그(?)일 것입니다. 소스를 얻으려면 linux-source-3.16.0을 설치하십시오. btusb.c에서 다음과 같이 약간 수정합니다.
@@ -106,7 +106,7 @@ static const struct usb_device_id btusb_table[] = {
{ USB_DEVICE(0x0489, 0xe042) },
{ USB_DEVICE(0x04ca, 0x2003) },
{ USB_DEVICE(0x0b05, 0x17b5) },
- { USB_DEVICE(0x0b05, 0x17cb) },
+ { USB_DEVICE(0x0b05, 0x17cb), .driver_info = BTUSB_BCM_PATCHRAM },
{ USB_DEVICE(0x413c, 0x8197) },
/* Foxconn - Hon Hai */
모듈을 컴파일합니다(새 모듈을 로드할 때 "Exec 형식 오류"를 피하기 전에 커널을 컴파일해야 했습니다). 원래 모듈을 백업하고 새 btusb.ko로 덮어씁니다(제 경우에는 /lib/modules/3.16.0-33-generic/kernel/drivers/bluetooth/btusb.ko에 있었습니다).
.hcd 파일을 /lib/firmware/brcm/BCM20702A0-0b05-17cb.hcd(필요한 경우 이름 수정)에 저장합니다.
이제 btusb 드라이버를 다시 로드할 수 있습니다:
modprobe -r btusb; 모드프로브 btusb
dmesg에는 다음과 같은 줄이 표시되어야 합니다.
[ 52.121571] 블루투스: hci0: BCM: 펌웨어 hci_ver=06 hci_rev=1543 lmp_ver=06 lmp_subver=220e
이제 HSP/HFP 프로필이 작동 중입니다! 이는 헤드셋을 입력 및 출력에 사용할 수 있음을 의미합니다.
답변2
펌웨어를 얻으려면
wget https://www.dropbox.com/s/hjd2uvnkki5i0f8/fw-0b05_17cb.hcd
sudo cp fw-0b05_17cb.hcd /lib/firmware/
sudo cp fw-0b05_17cb.hcd /lib/firmware/brcm/BCM20702A0-0b05-17cb.hcd
sudo modprobe -r btusb
sudo modprobe btusb
pactl load-module module-bluetooth-discover
그런 다음 dmesg에 펌웨어가 로드되는 것으로 표시되는지 확인하세요.
dmesg | tail
그러면 헤드셋을 사용해 볼 수 있을 것입니다
새로운 편집: 한동안 펌웨어가 다음 위치에 업로드되었습니다.https://github.com/winterheart/broadcom-bt-firmware/tree/master/brcm
목록에서 펌웨어를 찾아 이름을 마우스 오른쪽 버튼으로 클릭하고 링크 주소/위치 복사를 선택한 다음 터미널에 cd /lib/firmware/brcm
입력하고 sudo wget
Ctrl + Shift + V를 사용하여 링크 주소를 붙여넣습니다.