On Wed, Sep 16, 2026 at 09:37 PM, Paresh Bhagat wrote:
>
> Extend the PipeWire recipe to add platform-specific ALSA configuration
> and service file. Service file added to start PipeWire as a system
> service with proper socket dependency.
>
> Add sink and source configuration for 8-channel audio playback and
> capture on the AM62D2EVM as the default configuration is 2-channel.
>
> Signed-off-by: Paresh Bhagat <[email protected]>
> ---
> .../pipewire/pipewire-arago.inc | 28 +++++++++++++++++++
> .../am62dxx-evm/90-pipewire-sink.conf | 17 +++++++++++
> .../am62dxx-evm/91-pipewire-source.conf | 17 +++++++++++
> .../pipewire/pipewire/pipewire.service | 26 +++++++++++++++++
> .../pipewire/pipewire_%.bbappend | 4 +++
> 5 files changed, 92 insertions(+)
> create mode 100644
> meta-arago-distro/recipes-multimedia/pipewire/pipewire-arago.inc
> create mode 100644
> meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx-evm/90-pipewire-sink.conf
> create mode 100644
> meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx-evm/91-pipewire-source.conf
> create mode 100644
> meta-arago-distro/recipes-multimedia/pipewire/pipewire/pipewire.service
> create mode 100644
> meta-arago-distro/recipes-multimedia/pipewire/pipewire_%.bbappend
>
> diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire-arago.inc
> b/meta-arago-distro/recipes-multimedia/pipewire/pipewire-arago.inc
> new file mode 100644
> index 00000000..6545c364
> --- /dev/null
> +++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire-arago.inc
> @@ -0,0 +1,28 @@
> +PR:append = ".arago1"
> +
> +FILESEXTRAPATHS:prepend := "${THISDIR}/pipewire:"
> +SRC_URI:append = " file://pipewire.service"
> +
> +# AM62D-specific config files
> +SRC_URI:append:am62dxx-evm = " \
> + file://90-pipewire-sink.conf \
> + file://91-pipewire-source.conf \
> +"
Is it okay to have AM62D-specific PipeWire and WirePlumber configuration files,
scripts, and services
in meta-arago or set somewhere else? Ryan/Denys any thoughts?
My recommendation would be to have a more generic/runtime-detectable configs
that is device agnostic.
> +
> +do_install:append() {
> + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',
> d)}; then
> + install -d ${D}${systemd_system_unitdir}
> + install -m 0644 ${UNPACKDIR}/pipewire.service
> ${D}${systemd_system_unitdir}/
> + fi
> +}
> +
> +do_install:append:am62dxx-evm() {
> + install -d ${D}${sysconfdir}/pipewire/pipewire.conf.d
> + install -m 0644 ${UNPACKDIR}/90-pipewire-sink.conf
> ${D}${sysconfdir}/pipewire/pipewire.conf.d/
> + install -m 0644 ${UNPACKDIR}/91-pipewire-source.conf
> ${D}${sysconfdir}/pipewire/pipewire.conf.d/
> +}
> +
> +FILES:${PN} += " ${sysconfdir}"
> +
> +PACKAGECONFIG:append = " pipewire-jack"
> +PACKAGECONFIG:remove = "jack"
> diff --git
> b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx-evm/90-pipewire-sink.conf
> new file mode 100644
> index 00000000..f22ed291
> --- /dev/null
> +++
> b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx-evm/90-pipewire-sink.conf
> @@ -0,0 +1,17 @@
> +# PipeWire source 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.path = "hw:AM62D2EVM,0"
> + audio.rate = 48000
> + audio.channels = 8
> + audio.position = [ FL FR FC LFE RL RR SL SR ]
> + }
> + }
> +]
> diff --git
> b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx-evm/91-pipewire-source.conf
> new file mode 100644
> index 00000000..ac7635de
> --- /dev/null
> +++
> b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx-evm/91-pipewire-source.conf
> @@ -0,0 +1,17 @@
> +# 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.path = "hw:AM62D2EVM,0"
> + audio.rate = 48000
> + audio.channels = 8
> + audio.position = [ FL FR FC LFE RL RR SL SR ]
> + }
> + }
> +]
> diff --git
> a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/pipewire.service
> b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/pipewire.service
> new file mode 100644
> index 00000000..c26bf93f
> --- /dev/null
> +++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/pipewire.service
> @@ -0,0 +1,26 @@
> +[Unit]
> +Description=PipeWire Multimedia Service
> +# Ensure kernel modules are loaded and udev has finished device processing
> +After=systemd-modules-load.service systemd-udev-settle.service
> +
> +Requires=pipewire.socket
> +
> +[Service]
> +LockPersonality=yes
> +MemoryDenyWriteExecute=yes
> +NoNewPrivileges=yes
> +SystemCallArchitectures=native
> +SystemCallFilter=@system-service
> +Type=simple
> +AmbientCapabilities=CAP_SYS_NICE
> +ExecStart=/usr/bin/pipewire
> +Restart=on-failure
> +RestartSec=2
> +RuntimeDirectory=pipewire
> +RuntimeDirectoryPreserve=yes
> +User=pipewire
> +Environment=PIPEWIRE_RUNTIME_DIR=%t/pipewire
> +
> +[Install]
> +Also=pipewire.socket pipewire-manager.socket
> +WantedBy=default.target
> \ No newline at end of file
> diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire_%.bbappend
> b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_%.bbappend
> new file mode 100644
> index 00000000..dc32422b
> --- /dev/null
> +++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_%.bbappend
> @@ -0,0 +1,4 @@
> +PIPEWIRE_ARAGO = ""
> +PIPEWIRE_ARAGO:arago = "pipewire-arago.inc"
> +
> +require ${PIPEWIRE_ARAGO}
> --
> 2.34.1
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#17684):
https://lists.yoctoproject.org/g/meta-arago/message/17684
Mute This Topic: https://lists.yoctoproject.org/mt/121281282/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-arago/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-