设备:RDK S100
系统:Ubuntu(官方镜像)
固件/SDK 版本:已升级到含 CYW55572 驱动优化的版本(蓝牙 WiFi 共存已正常)
蓝牙模块:M.2 CYW55572(WiFi 6 + BT 5.x,蓝牙走 UART)
问题描述:
连接蓝牙耳机(如 HECATE AIR 3)后,系统只识别到输出设备(A2DP),输入设备(麦克风)不显示。`pactl list cards` 中该蓝牙声卡只有 `a2dp_sink` 和 `off` 两个 profile,`headset_head_unit`(HFP)不存在,无法切换。
已排查:
-
确认系统为 PulseAudio + PipeWire 混合栈(PulseAudio 管理蓝牙,`module-bluez5-device.c`)
-
`/etc/pulse/default.pa` 中为 `load-module module-bluetooth-discover`(未带 `headset=ofono`)
-
已安装并启用 ofono(`systemctl status ofono` 显示 running)
-
WirePlumber 相关配置不适用(系统未装 wireplumber)
诉求:
-
官方镜像默认启用蓝牙 HFP 支持(`module-bluetooth-discover headset=ofono`),让蓝牙耳麦的麦克风开箱即用;
-
或在官方文档中提供完整、按当前镜像实际的蓝牙语音配置教程(当前论坛/文档资料与 PipeWire/WirePlumber 主流教程不符,容易误导);
-
如需要用户自行配置,请官方提供一个一键配置脚本。
影响:
该问题直接影响在 S100 上做语音交互项目(语音控制小车、语音助手、小智等)——语音输入必须依赖蓝牙麦克风。
瓜仔
2
① 结论:最可能是当前镜像未默认以 oFono 后端启用 PulseAudio HFP;知识库未检索到 S100 官方 HFP 明确结论,以下按通用 PulseAudio/oFono 方向排查,官方默认集成/一键脚本建议作为镜像需求反馈研发评估。
② 排查步骤:
- 将蓝牙发现模块显式指定为
ofono,重启 PulseAudio 后检查是否出现 headset_head_unit。
sudo sed -i 's/^load-module module-bluetooth-discover$/load-module module-bluetooth-discover headset=ofono/' /etc/pulse/default.pa
pulseaudio -k && pulseaudio --start
pactl list cards | grep -E 'Name|Profile|headset_head_unit'
如果 sed 未命中,请手动编辑 /etc/pulse/default.pa 中对应行。
- 若配置已改但仍无 HFP,重新加载蓝牙模块并查看 PulseAudio/bluez/ofono 日志。
pactl unload-module module-bluetooth-discover
pactl load-module module-bluetooth-discover headset=ofono
pactl list modules short | grep -i bluetooth
journalctl -b | grep -Ei 'pulseaudio|bluez|ofono|module-bluez5'
- 排除耳机侧不支持/配对异常,以及 PipeWire 与 PulseAudio 同时处理蓝牙音频的冲突;这是通用排查经验,非官方结论,请结合实际验证。
bluetoothctl remove <耳机MAC>
bluetoothctl
ps -ef | grep -E 'pulseaudio|pipewire' | grep -v grep
前提:耳机本身需支持 HFP/HSP,且当前蓝牙模块固件/驱动正常。
③ 需补充信息:请提供官方镜像版本及查版本命令输出(如 cat /etc/os-release)、pactl --version、dpkg -l | grep -E 'pulseaudio|ofono|bluez'、修改后的 pactl list cards 完整输出、耳机型号/复现步骤、相关日志或截图。
复测发现当前镜像存在两个问题:
① 没打包 oFono;
② PulseAudio 默认走 native 后端没开 HFP-AG。装上 oFono + 把蓝牙模块参数改成 headset=auto,重启 PulseAudio 即可**
# ① 安装并启动 oFono(提供 HFP 音频网关角色)
sudo apt update && sudo apt install -y ofono
sudo systemctl enable --now ofono
sudo systemctl status ofono # 确认 active(running)
# ② 启用 PulseAudio 的 oFono 后端(推荐 headset=auto,同时保留 HSP 和 HFP-AG)
sudo sed -i 's/^load-module module-bluetooth-discover$/load-module module-bluetooth-discover headset=auto/' /etc/pulse/default.pa
# 确认改对了:grep bluetooth /etc/pulse/default.pa
# ③ 重启 PulseAudio(让它重新加载蓝牙模块 + 探测 oFono)
pulseaudio -k && pulseaudio --start
# ④ 重新连接耳机后验证(应出现 headset_head_unit)
pactl list cards | grep -E 'Name:|headset_head_unit|a2dp_sink'
看到 headset_head_unit 后,切配置、验证麦克风:
pactl set-card-profile bluez_card.<耳机MAC下划线> headset_head_unit
pactl list sources short # 应出现 bluez_source...headset_audio_gateway
parecord -d bluez_source.<...> /tmp/mic.wav # 录音测试