new file mode 100644
@@ -0,0 +1,28 @@
+PR:append = ".arago1"
+
+# Pipewire service for all platforms
+FILESEXTRAPATHS:prepend := "${THISDIR}/pipewire:"
+SRC_URI:append = " file://pipewire.service"
+
+# AM62D-specific config files
+FILESEXTRAPATHS:prepend:am62dxx-evm := "${THISDIR}/pipewire:"
+SRC_URI:append:am62dxx-evm = " \
+ file://90-pipewire-sink.conf \
+ file://91-pipewire-source.conf \
+"
+
+do_install:append() {
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${UNPACKDIR}/pipewire.service ${D}${systemd_system_unitdir}/
+}
+
+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"
new file mode 100644
@@ -0,0 +1,21 @@
+# 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.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 ]
+ }
+ }
+]
new file mode 100644
@@ -0,0 +1,21 @@
+# 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 ]
+ }
+ }
+]
new file mode 100644
@@ -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
new file mode 100644
@@ -0,0 +1,4 @@
+PIPEWIRE_ARAGO = ""
+PIPEWIRE_ARAGO:arago = "pipewire-arago.inc"
+
+require ${PIPEWIRE_ARAGO}
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 <p-bhagat@ti.com> --- .../pipewire/pipewire-arago.inc | 28 +++++++++++++++++++ .../am62dxx-evm/90-pipewire-sink.conf | 21 ++++++++++++++ .../am62dxx-evm/91-pipewire-source.conf | 21 ++++++++++++++ .../pipewire/pipewire/pipewire.service | 26 +++++++++++++++++ .../pipewire/pipewire_%.bbappend | 4 +++ 5 files changed, 100 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