我有一个蓝牙耳机 (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 粘贴链接地址