Ubuntu で Bluetooth ヘッドセット マイクを使用するにはどうすればいいですか?

Ubuntu で Bluetooth ヘッドセット マイクを使用するにはどうすればいいですか?

私は、USB Bluetooth ドングル (Asus USB-BT400) を介してコンピューターに Bluetooth ヘッドセット (Sennheiser MM 550-X) を接続しています。Ubuntu 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

編集2: Jeremy31の回答を更新。私のヘッドセットは00:16:94:0F:23:C6です

dmesg|末尾:

[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; modprobebtusb の

dmesg には次のような行が表示されます:

[ 52.121571] Bluetooth: 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を使用してリンクアドレスを貼り付けます。

関連情報