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

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
    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. Linux 音频栈
  6. 通过 Yocto 构建支持 PipeWire 的 SDK 映像
    1. 3.1 在主机上运行 Yocto 构版建的步骤
      1. 3.1.1 必要条件(一次性设置)
    2. 3.2 克隆 oe 层设置
    3. 3.3 下载并应用 PipeWire 补丁
    4. 3.4 构建 PipeWire 映像
  7. 在 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. 使用 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. 配置
    1. 6.1 接收端和源端配置
    2. 6.2 WirePlumber 配置
  10. 性能基准测试
    1. 7.1 延迟
    2. 7.2 CPU 和内存使用情况
    3. 7.3 重新采样后的 CPU 和内存使用情况
    4. 7.4 观察结果
  11. 总结
  12. 参考资料
  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 配置