web-dev-qa-db-ja.com

UbuntuでBluetoothヘッドセットマイクを使用するには?

USB Bluetoothドングル(Asus USB-BT400)を介してコンピューターに接続されたBluetoothヘッドセット(Sennheiser MM 550-X)があります。 Ubuntu 14.10を実行しています。ヘッドセットを出力(ヘッドフォン)と入力ソース(マイク)の両方として構成したいと思います。

まず、ヘッドセットとコンピューターをペアリングします。 enter image description here

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
4
user368507

問題は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= Dbn0i1Jz1yusKO7

.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 format error」を回避するために、カーネルをコンパイルする必要がありました)。元のモジュールをバックアップし、新しい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; modprobe btusb

dmesgは次のような行を表示するはずです。

[52.121571] Bluetooth:hci0:BCM:ファームウェアhci_ver = 06 hci_rev = 1543 lmp_ver = 06 lmp_subver = 220e

これで、HSP/HFPプロファイルが機能します!ヘッドセットの意味は、入出力で使用できます。

1
user368507

ファームウェアを入手するには

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

その後、ヘッドセットを試すことができるはずです

1
Jeremy31