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

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

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

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

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

从我在互联网上的研究来看,我了解到只有 HSP/HFP 模式才能使麦克风工作。此外,该加密狗使用 Broadcom BCM20702A0 芯片组,我发现了一些有关它的 bug 报告,但我不确定该芯片组是否仍然存在问题。

如何让麦克风工作?

谢谢 !

编辑:添加 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 驱动程序和华硕加密狗 USB-BT400 上。此加密狗需要固件。要获取固件,请在此处下载最新的 Windows 驱动程序(蓝牙部分): 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; modprobe 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 wget然后使用 ctrl + shift + v 粘贴链接地址

相关内容