Ubuntu에서 블루투스 헤드셋 마이크를 사용하는 방법은 무엇입니까?

Ubuntu에서 블루투스 헤드셋 마이크를 사용하는 방법은 무엇입니까?

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 wgetCtrl + Shift + V를 사용하여 링크 주소를 붙여넣습니다.

관련 정보