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 \ +" + +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 a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx-evm/90-pipewire-sink.conf 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 a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/am62dxx-evm/91-pipewire-source.conf 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 (#17674): https://lists.yoctoproject.org/g/meta-arago/message/17674 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]] -=-=-=-=-=-=-=-=-=-=-=-
