蓝牙耳机 A2DP 可用,HSP/HFP 不可用(无声音/无麦克风)

蓝牙耳机 A2DP 可用,HSP/HFP 不可用(无声音/无麦克风)

我的飞利浦 SBH9001 耳机使用 Ubuntu 12.04 配对良好。在音频设置中,它被正确检测为 A2DP 设备和 HSP/HFP 设备。

硬件:Thinkpad X230、Ubuntu 12.04 64 位、内核 3.6.0-030600rc3-generic(从 Ubuntu 主线 repo 构建)、蓝牙设备是 Broadcom 的 USB-Id 0a5c:21e6,耳机是飞利浦 SBH9001。

注意:使用内核 3.6 rc3 是因为修复基座上的音频这不在任何先前的分支中。

开箱即用,以 A2DP 播放音频效果很好,但将耳机切换到 HSP/HSP 模式时没有声音,麦克风也不工作。

连接耳机时,/var/log/syslog 显示:

Aug 25 21:32:47 x230 bluetoothd[735]: Badly formated or unrecognized command: AT+CSRSF=1,1,1,1,1,7
Aug 25 21:32:49 x230 rtkit-daemon[1879]: Successfully made thread 17091 of process 14713 (n/a) owned by '1000' RT at priority 5.
Aug 25 21:32:49 x230 rtkit-daemon[1879]: Supervising 4 threads of 1 processes of 1 users.
Aug 25 21:32:50 x230 kernel: [ 4860.627585] input: 00:1E:7C:01:73:E1 as /devices/virtual/input/input17

从 A2DP(标准配置文件)切换到 HSP/HFP 时:

Aug 25 21:34:36 x230 bluetoothd[735]: /org/bluez/735/hci0/dev_00_1E_7C_01_73_E1/fd3: fd(34) ready
Aug 25 21:34:36 x230 rtkit-daemon[1879]: Successfully made thread 17309 of process 14713 (n/a) owned by '1000' RT at priority 5.
Aug 25 21:34:36 x230 rtkit-daemon[1879]: Supervising 4 threads of 1 processes of 1 users.
Aug 25 21:34:41 x230 bluetoothd[735]: Audio connection got disconnected

有什么提示可以让 HSP/HFP 在这里工作吗?

答案1

  • 这是一个已知错误使用bluez新的 Broadcom BCM20702A0 系列适配器;你的就是其中之一。查看错误报告
  • 该错误被评为“高”,但尚未修复。您可能希望将自己添加到受该错误影响的人员列表中,并可能发布一条消息询问是否有修复时间表。

其他可能的解决方案:

  • 编辑/etc/bluetooth/audio.conf并在下面[General]添加行Enable=Socket。重新启动蓝牙看看sudo rfkill block bluetooth && sudo rfkill unblock bluetooth是否有帮助。

答案2

就我而言,我使用的是 Ubuntu 14.04 的 Iogear GBU521

lsusb | grep -i bluetooth
Bus 003 Device 008: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0

我创建了*.hcd您可以从中下载https://www.dropbox.com/s/8md0ygdufn0h9w1/fw-0a5c_21e8.hcd?dl=0 并将其放入您的/lib/firmware文件夹中,然后重新启动。

如果您想构建自己的步骤如下:

  1. 从 www.iogear.com/support/dm/driver/GBU521 下载适用于 Windows 8.1 的驱动程序
  2. 提取安装程序
  3. 前往文件夹 GBU321_421_521_Win8.1_v12.0.0.8030/Win64
  4. 了解 PID、VID 和 hex2hcd,唯一的问题是找到正确的名称*.hex来转换*.hcd
  5. 正确的方向是查看bcbtums-win8x64-brcm.inf同一文件夹中的。在那里,您将通过 PID 的最后四位数字进行搜索(21e8)。在这种情况下,正确的文件是BCM20702A1_00.002.014.1315.1338.hex(如果您试图猜测是不可能的)
  6. 使用以下方式转换文件hex2hcd(参见步骤 4)
  7. 将文件重命名为fw-0a5c_21e8.hcd并将其放置在/lib/firmware
  8. 重启
  9. 如果不工作,拔下并重新插入
  10. 享受!

答案3

多种措施的组合最终解决了这个问题:

答案4

Ubuntu 22.04.2 LTS

解决我的 ThinkPad T430 的问题

在 /var/log/syslog 中修复之前

Mar 25 18:57:37 repeat-desktop kernel: [375341.740568] Bluetooth: hci0: BCM20702A
Mar 25 18:57:37 repeat-desktop kernel: [375341.740573] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
Mar 25 18:57:37 repeat-desktop kernel: [375341.741556] Bluetooth: hci0: BCM: firmware Patch file not found, tried:
Mar 25 18:57:37 repeat-desktop kernel: [375341.741560] Bluetooth: hci0: BCM: 'brcm/BCM20702A1-0a5c-21e6.hcd'
Mar 25 18:57:37 repeat-desktop kernel: [375341.741563] Bluetooth: hci0: BCM: 'brcm/BCM-0a5c-21e6.hcd'

修复后

Mar 25 19:17:15 repeat-desktop kernel: [376519.534498] Bluetooth: hci0: BCM20702A
Mar 25 19:17:15 repeat-desktop kernel: [376519.534503] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
Mar 25 19:17:15 repeat-desktop kernel: [376519.535720] Bluetooth: hci0: BCM20702A1 'brcm/BCM20702A1-0a5c-21e6.hcd' Patch

我做了什么:

  1. 下载文件我的芯片(你可以搜索你的芯片这里

  2. 将文件复制到 /lib/firmware/brcm/

    sudo cp ~/Downloads/BCM20702A1-0a5c-21e6.hcd /lib/firmware/brcm/

  3. 重启蓝牙

    sudo rfkill 阻止蓝牙 && sudo rfkill 解除阻止蓝牙

相关内容