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
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
問題は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プロファイルが機能します!ヘッドセットの意味は、入出力で使用できます。
ファームウェアを入手するには
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
その後、ヘッドセットを試すことができるはずです