如何在Ubuntu中使用蓝牙耳机麦克风?

我有一个蓝牙耳机(Sennheiser MM 550-X)通过USB蓝牙适配器(华硕USB-BT400)连接到我的电脑。 我正在运行Ubuntu 14.10。 我想将耳机配置为输出(耳机)和输入源(麦克风)。

首先,耳机与电脑配对: 在此处输入图像描述

在Ubuntu声音设置中,如果我在“A2DP”模式下配置耳机,我可以将声音从计算机发送到耳机。 但是将输入源配置为我的耳机会将输出模式切换到HSP / HFP,并且不再有任何function(声音输出或麦克风)

根据我在互联网上的研究,我明白只有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的|尾:

 [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 

获取固件

 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 

然后你应该可以尝试你的耳机

问题在于btusb驱动程序和asus dongle USB-BT400。 这个加密狗需要一个固件。 要获取固件,请在此处下载最新的Windows驱动程序(蓝牙部分): http : //support.asus.com/download.aspx?SLanguage = en&p = 1&s = 45&m = MAXIMUS + VI +FORMULA&os = 30&hashhedid = 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; modprobe btusb

dmesg应该显示如下行:

[52.121571]蓝牙:hci0:BCM:固件hci_ver = 06 hci_rev = 1543 lmp_ver = 06 lmp_subver = 220e

现在HSP / HFP配置文件正在运行! 这意味着耳机可用于输入和输出。