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重要声明和免责声明

接收端和源端配置

为 AUDIO-AM62D-EVM 添加了两个参考配置文件,即接收端和源端,可在 3.5mm 插孔中提供 8 通道支持。

对于其他仅需要两个通道的 Sitara EVM,无需额外配置。但是,基准配置可以根据需要修改采样率、通道数、周期大小和其他参数。

90-pipewire-sink.conf

# PipeWire sink configuration for AM62D.
context.objects = [
    {
        factory = adapter
        args = {
            factory.name = api.alsa.pcm.sink
            node.name = "alsa_audio_sink"
            node.description = "Audio Output"
            media.class = "Audio/Sink"
            api.alsa.period-size = 1024
            api.alsa.headroom = 0
            api.alsa.disable-mmap = false
            api.alsa.disable-batch = false
            api.alsa.path = "hw:AM62D2EVM,0"
            audio.rate = 48000
            audio.channels = 8
            audio.position = [ FL FR FC LFE RL RR SL SR ]
        }
    }
]

91-pipewire-source.conf

# PipeWire source configuration for AM62D.
context.objects = [
    {
        factory = adapter
        args = {
            factory.name = api.alsa.pcm.source
            node.name = "alsa_audio_source"
            node.description = "Audio Input"
            media.class = "Audio/Source"
            api.alsa.period-size = 1024
            api.alsa.headroom = 0
            api.alsa.disable-mmap = false
            api.alsa.disable-batch = false
            api.alsa.path = "hw:AM62D2EVM,0"
            audio.rate = 48000
            audio.channels = 8
            audio.position = [ FL FR FC LFE RL RR SL SR ]
        }
    }
]

context.objects

主配置数组,用于定义在 PipeWire 上下文中创建的对象。该数组中的每个对象都成为 PipeWire 图形中的一个节点。

factory = adapter

指定使用“adapter”工厂创建此对象。PipeWire 中的适配器用于桥接不同的 API(在本例中为 ALSA 到 PipeWire)。两个配置文件都使用适配器工厂将 ALSA 硬件桥接至 PipeWire 节点。

factory.name

确定方向:输出还是输入

node.name

内部 PipeWire 节点标识符。创建 alsa_audio_sink 用于播放,创建 alsa_audio_source 用于采集。

node.description

音频应用程序中的人类可读名称。

media.class

PipeWire 媒体分类“Audio/Sink”用于播放,“Audio/Source”用于录制。

api.alsa.path

用于直接硬件访问。只有 PipeWire 才能访问音频硬件,ALSA 应用程序必须经由 PipeWire。

audio.channels

对于 AUDIO-AM62D-EVM,可配置 8 通道音频的输入和输出。

这些配置会在 PipeWire 的音频图形中创建两个基本节点:

  • 接收端节点:用于 8 通道音频播放的终端端点
  • 源端节点:用作 8 通道音频采集的起点

有关更多信息,请参阅 Alsa 配置。