音频组件概述
- 应用处理器 – 处理音频处理任务的 CPU。任务包括:
- 管理音频录制和播放
- 解码音频格式
- 使用 LPAI 执行后处理任务
- 低功耗 AI (LPAI) – 运行音频播放/录制和语音激活 (VA) 算法的子系统。它集成了专用的 Qualcomm® Hexagon™ 处理器 (QDSP6) 和低功耗岛 (LPI)。
- 音频编解码器 – 硬件包括:
- 模数转换器 (ADC)
- 数模转换器 (DAC) 用于将模拟音频转换为数字音频,反之亦然。
- 扬声器 AMP 和麦克风 – 通过 I2S/TDM/SoundWire 连接的设备。
架构
下图显示了高层次的音频软件架构。

高层次的音频软件架构
Config 1 与 Config 2 对比
QLI 2.0 引入了一种叠加(overlay)模型,允许客户从干净的开源基础构建开始,并可选择叠加 Qualcomm 专有的 DSP 加速音频栈,而无需完全重新刷写。这称为 Config 1 → Config 2 过渡。Config 1 — 上游 ASoC
Config 1 使用 ALSA 片上系统(ASoC)框架。音频完全使用上游内核驱动在应用处理器上运行,不依赖任何 Qualcomm 专有组件。主要特性
- 向用户空间公开标准 ALSA 声卡
- 音频管道组件:编解码器驱动、平台驱动、机器驱动
- 使用 UCM 配置文件(
ucm.conf)进行路由 - 使用 ASoC 拓扑二进制文件(
.tplg)配置混音器路径和路由 - 通过 ALSA sink/source 兼容
aplay、arecord、GStreamer 和 PipeWire
内核模块
Config 1 构建中会加载以下内核模块:q6apm_daiq6apm_lpass_daisq6prmq6prm_clockssnd-soc-sc8280xpsnd_q6apmsnd_q6dsp_common
何时选择 Config 1
- 要求完全开源、仅使用上游内核
- 不需要 DSP 加速的音频功能(SVA、Fluence、Haptics)
- 面向使用上游驱动的主线 Linux 发行版或 AOSP
- 免集成或低集成工作量
构建
Config 1 构建qcom-multimedia-image。
<machine> 指 meta-qcom/ci/ 下的目标专用 YML 文件。该目录中列出了所有可用的机器 YML 文件。例如,对于 IQ-9075 EVK(Lemans),YML 文件为 iq-9075-evk.yml:
Config 2 — 下游 AudioReach
Config 2 使用 AudioReach,即 Qualcomm 的模块化信号处理框架(SPF),它将音频处理卸载到专用的 Hexagon DSP 上,从而实现低功耗、高性能的音频。主要特性
- 音频处理卸载到 ADSP(Hexagon DSP),音频播放期间 CPU 保持空闲
- PAL(平台抽象层)公开更高级别的音频 API
- AGM(音频图管理器)对接混音器控件和 PCM 插件
- ACDB(音频校准数据库)管理图和调优
- PipeWire 通过 PAL source/sink 插件连接到硬件
- 支持 ASoC 中不具备的高级功能:SVA、Fluence ECNS、压缩卸载、SSMD/MSMD,以及通过 QACT 进行实时调优
AudioReach 用户空间软件包栈
应用 Config 2 叠加时会安装以下软件包:何时选择 Config 2
- 客户需要 Qualcomm 专有音频功能(SVA、Fluence、SSMD/MSMD)
- 优先考虑功耗优化的音频播放/录制(ADSP 卸载)
- 需要通过 QACT 进行实时调优
- 需要压缩音频卸载(MP3、AAC)
构建
Config 2 构建qcom-multimedia-proprietary-image。它在 Config 1 之上叠加完整的 AudioReach 栈。
Config 2 仅在
aarch64 目标上受支持,并且需要 qcom-distro.yml。<machine> 指 meta-qcom/ci/ 下的目标专用 YML 文件。例如,对于 IQ-9075 EVK(Lemans):
迁移路径:Config 1 → Config 2
从 Config 1 到 Config 2 的过渡通过叠加机制处理。客户无需重新刷写基础镜像。1
从 Config 1 基础镜像开始
构建或刷写
qcom-multimedia-image(Config 1 基础)。2
应用叠加
应用
qcom-multimedia-proprietary-image 叠加。3
安装 AudioReach 软件包
通过 DNF 叠加安装 AudioReach 软件包。
4
切换内核模块
内核从上游 ASoC 模块切换到 AudioReach 内核驱动。
5
部署 PAL 和 ACDB 配置
部署 PAL/ACDB 配置文件(
audioreach-conf)。6
重新配置 PipeWire
重新配置 PipeWire 以使用 AudioReach PAL sink/source 插件。
7
验证
使用音频测试套件和 QACT 调优进行验证。
后续步骤
- 启用音频 — 配置音频硬件并验证基本播放和捕获
- 自定义音频图 — 在 PAL 级别自定义音频用例
- Audio Addendum — 了解 QACT 和 QXDM 校准和诊断

