diff mbox series

[master/wrynose,v2,2/4] recipes-multimedia: Add PipeWire bbappend, service and config files

Message ID 20260916160547.1287287-3-p-bhagat@ti.com
State New
Headers show
Series Add PipeWire audio stack | expand

Commit Message

Paresh Bhagat Sept. 16, 2026, 4:05 p.m. UTC
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         | 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

Comments

Yogesh Hegde Sept. 17, 2026, 9:26 a.m. UTC | #1
Hi Paresh, 

On 21:35-20260916, 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 <p-bhagat@ti.com>
> ---
>  .../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}"

Adding the whole ${sysconfdir} folder is not recommended, list
individual files instead. Also limit this for only am62dxx-evm. 

> +
> +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.

Nit: Typo source -> sink

> +
> +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

systemd-udev-settle.service is not recommended [0]. Use appropriate `.device` dependency.

> +
> +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}

[0]: https://www.freedesktop.org/software/systemd/man/latest/systemd-udev-settle.service.html?__goaway_challenge=meta-refresh&__goaway_id=2f5c485c56371e4d518938d3bebe4b33&__goaway_referer=https%3A%2F%2Fwww.google.com%2F 

-- Yogesh
Jeevan Sept. 17, 2026, 12:16 p.m. UTC | #2
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 <p-bhagat@ti.com>
> ---
>  .../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
> 
>
Ryan Eatmon Sept. 18, 2026, 4:10 p.m. UTC | #3
On 9/17/2026 7:16 AM, Jeevan via lists.yoctoproject.org wrote:
> 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 <p-bhagat@ti.com>
>> ---
>>   .../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.

That's why I keep asking why we have something specific for am62d in 
here.  If there are other ways of doing it to make it more generic then 
I am all for it.

Generally speaking, if this is required then it is ok.  The other way of 
doing this would be to have the distro add in pipewire support and then 
move this specific change over to meta-ti-extras as a bbappend so that 
the platform specific tweaks are in the BSP repo.  That way if someone 
wanted to use poky with pipewire then we would add in the needed tweaks.

Denys?  Thoughts?
diff mbox series

Patch

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}