ZHDA175 June   2026 AM625 , AM625SIP , AM62D-Q1 , AM62L , AM62P

 

  1.   1
  2.   摘要
  3.   商标
  4. 1 简介
    1. 1.1 主要亮点:
    2. 1.2 基本概念:
      1. 1.2.1 PipeWire 服务器
      2. 1.2.2 PipeWire 客户端
      3. 1.2.3 会话管理器
      4. 1.2.4 节点、端口和链接
    3. 1.3 PipeWire 主要组件
  5. 2 Linux 音频栈
  6. 3 通过 Yocto 构建支持 PipeWire 的 SDK 映像
    1. 3.1 在主机上运行 Yocto 构版建的步骤
      1. 3.1.1 必要条件(一次性设置)
    2. 3.2 克隆 oe 层设置
    3. 3.3 下载并应用 PipeWire 补丁
    4. 3.4 构建 PipeWire 映像
  7. 4 在 Sitara 器件上设置 PipeWire
    1. 4.1 硬件
      1. 4.1.1 SK-AM62B-P1
      2. 4.1.2 TMDS62LEVM
      3. 4.1.3 AUDIO-AM62D-EVM
    2. 4.2 配置 EVM 引导模式
      1. 4.2.1 SK-AM62B-P1
      2. 4.2.2 TMDS62LEVM
      3. 4.2.3 AUDIO-AM62D-EVM
    3. 4.3 UART 控制台设置
    4. 4.4 刷写 SD 卡映像
    5. 4.5 使用 SD 卡引导 EVM
  8. 5 使用 PipeWire
    1. 5.1 检查服务状态
    2. 5.2 启用 PipeWire 和 Wireplumber
    3. 5.3 启动 PipeWire 和 WirePlumber
    4. 5.4 常规 PipeWire 命令
      1. 5.4.1 列出 PipeWire 服务器中当前的所有对象
      2. 5.4.2 仅列出节点
      3. 5.4.3 检查特定对象
    5. 5.5 播放和录制立体声音频
  9. 6 配置
    1. 6.1 接收端和源端配置
    2. 6.2 WirePlumber 配置
  10. 7 性能基准测试
    1. 7.1 延迟
    2. 7.2 CPU 和内存使用情况
    3. 7.3 重新采样后的 CPU 和内存使用情况
    4. 7.4 观察结果
  11. 8 总结
  12. 9 参考资料
  13. 10重要声明和免责声明

CPU 和内存使用情况

此测试可测量当多个音频流同时使用音频服务器时的 CPU 利用率和内存使用情况。通过更改 PULSE_LATENCY_MSEC,将 PulseAudio 配置为以接近 143ms(PipeWire 的延迟)的延迟工作。

root@<machine>: export PULSE_LATENCY_MSEC=325

root@<machine>: pactl list sinks | grep Latency
Latency: 141702 usec, configured 142500 usec

在 PulseAudio 中,无法使用 PULSE_LATENCY_MSEC 将延迟设置为准确的值,因为它被视为目标而不是严格配置。因此,观察到的延迟可能与请求值有很大差异。实际延迟由内部缓冲区碎片、硬件限制和调度器行为决定。

还有其他方法可以控制延迟,例如直接修改影响延迟的变量(例如片段、片段大小等)。

有关更多详细信息,请参阅 Pulseaudio 文档。

表 7-2 CPU 负载(相同延迟)
器件 音频服务器 CPU 利用率(平均)
SK-AM62B-P1PulseAudio约 5%
PipeWire约 1%
TMDS62LEVMPulseAudio约 6%
PipeWire约 1%
AUDIO-AM62D-EVMPulseAudio约 5%
PipeWire约 1%
表 7-3 内存使用情况(相同延迟)
器件 音频服务器 内存使用情况(平均)
SK-AM62B-P1PulseAudio约 22500KB
PipeWire约 46570KB(Wireplumber - 约 22910KB)
TMDS62LEVMPulseAudio约 25000KB
PipeWire大约 33400KB(Wireplumber - 约 30190KB)
AUDIO-AM62D-EVMPulseAudio约 21600KB
PipeWire大约 55000KB(Wireplumber - 约 22990KB)
注: 由于多进程设计,核心守护程序和 WirePlumber 会话管理器独立运行,因此 PipeWire 使用的内存更多。这种分离提供了故障隔离:如果 WirePlumber 崩溃,音频播放将不会中断。PulseAudio 的单进程设计具有更高的内存效率,但对组件故障的恢复能力较差。