mbox series

[master,RFC,v3,0/3] Add pipeWire audio stack

Message ID 20260218055715.219075-1-p-bhagat@ti.com
Headers show
Series Add pipeWire audio stack | expand

Message

Paresh Bhagat Feb. 18, 2026, 5:57 a.m. UTC
This patch series introduces PipeWire audio support for AM62* platforms,
replacing PulseAudio with the modern PipeWire audio server architecture.
This implementation is intended for inclusion in the 12.1 release, starting
with am62* platforms.

PipeWire is a modern audio/video server that provides low-latency, high-performance
audio processing with better resource management and flexible routing capabilities.
WirePlumber serves as the session manager, providing policy management and device
configuration for PipeWire, enabling automatic audio routing and device handling.

More info can be found here:
- https://pipewire.org/
- https://docs.pipewire.org/

The series includes:

Patch 1: Add PipeWire configuration files with separate configurations for
         generic AM62* (2-channel) and AM62D (8-channel) audio.
Patch 2: Add WirePlumber configuration with audio defaults service.
Patch 3: Enable PipeWire audio stack in arago-default-image for all AM62* variants.

Changes in v3:
- Changed target image from tisdk-default-image to arago-default-image.
- Introduced modular architecture with .inc files:
  * Created pipewire-arago.inc and wireplumber-arago.inc for better organization.
  * Added conditional inclusion using PIPEWIRE_ARAGO and WIREPLUMBER_ARAGO variables.
- Updated build system references:
  * Changed from ${WORKDIR}/sources to ${UNPACKDIR} for file installation paths.
- Improved directory structure:
  * Renamed AM62D config directory from am62dxx-evm/ to am62dxx/.
- Changed set-audio-defaults.sh from bash to POSIX shell (#!/bin/sh).

Changes in v2:
- Expanded scope from AM62D-only to all AM62* platforms.
- Changed from scarthgap to master branch targeting.
- Restructured configuration approach:
  * Renamed config files from 90-multichannel.conf/92-capture.conf to
    90-pipewire-sink.conf/91-pipewire-source.conf for clarity.
  * Added generic 2-channel configurations for standard AM62* variants.
  * Added AM62D-specific 8-channel configurations in am62dxx-evm/ directory.
  * Updated node names for consistency (alsa_audio_sink/alsa_audio_source)
- Enhanced bbappend recipe:
  * Changed from version-specific (pipewire_1.0.9) to generic (pipewire_%).
  * Updated file installation paths to use ${WORKDIR}/sources/.
- Modified image integration approach:
  * Moved from individual package lists per machine to PIPEWIRE variable.
  * Added support for AM62* machine variants instead of just AM62D.
  * Consolidated package management within the default image recipe.
- Updated service file and script as per comments.

Link to v2: https://lists.yoctoproject.org/g/meta-arago/message/17095
Link to v1: https://lists.yoctoproject.org/g/meta-arago/message/17022

Paresh Bhagat (3):
  recipes-multimedia: Add pipewire configuration files
  recipes-multimedia: Add wireplumber audio configuration
  recipes-core: arago-default-image: Add pipewire audio stack support

 .../images/arago-default-image.bb             | 23 +++++++++++++
 .../pipewire/pipewire-arago.inc               | 19 +++++++++++
 .../pipewire/pipewire/90-pipewire-sink.conf   | 19 +++++++++++
 .../pipewire/pipewire/91-pipewire-source.conf | 19 +++++++++++
 .../pipewire/am62dxx/90-pipewire-sink.conf    | 19 +++++++++++
 .../pipewire/am62dxx/91-pipewire-source.conf  | 19 +++++++++++
 .../pipewire/pipewire_%.bbappend              |  4 +++
 .../wireplumber/wireplumber-arago.inc         | 28 ++++++++++++++++
 .../wireplumber/set-audio-defaults.service    | 14 ++++++++
 .../wireplumber/set-audio-defaults.sh         | 32 +++++++++++++++++++
 .../wireplumber/wireplumber_%.bbappend        |  4 +++
 11 files changed, 200 insertions(+)
 create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire-arago.inc
 create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-pipewire-sink.conf
 create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/91-pipewire-source.conf
 create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx/90-pipewire-sink.conf
 create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx/91-pipewire-source.conf
 create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire_%.bbappend
 create mode 100644 meta-arago-distro/recipes-multimedia/wireplumber/wireplumber-arago.inc
 create mode 100644 meta-arago-distro/recipes-multimedia/wireplumber/wireplumber/set-audio-defaults.service
 create mode 100755 meta-arago-distro/recipes-multimedia/wireplumber/wireplumber/set-audio-defaults.sh
 create mode 100644 meta-arago-distro/recipes-multimedia/wireplumber/wireplumber_%.bbappend