diff mbox series

[meta-arago,master,v2] pulseaudio-service: Add systemd service for system-wide audio daemon

Message ID 20260204160813.2393421-1-j-sahu@ti.com
State New
Headers show
Series [meta-arago,master,v2] pulseaudio-service: Add systemd service for system-wide audio daemon | expand

Commit Message

Telukula Jeevan Kumar Sahu Feb. 4, 2026, 4:08 p.m. UTC
Add a systemd service to run PulseAudio in system mode where multiple
applications need audio access without user sessions. Depends on
pulseaudio-server to ensure audio/pulse groups exist.

Enable this service by default to provide system-wide audio for all
applications.

Signed-off-by: Telukula Jeevan Kumar Sahu <j-sahu@ti.com>
---
Changes in v2: Add SUMMARY, PV and PR.

 .../pulseaudio/files/pulseaudio.service       | 11 ++++++
 .../pulseaudio/pulseaudio-service.bb          | 39 +++++++++++++++++++
 2 files changed, 50 insertions(+)
 create mode 100644 meta-arago-extras/recipes-multimedia/pulseaudio/files/pulseaudio.service
 create mode 100644 meta-arago-extras/recipes-multimedia/pulseaudio/pulseaudio-service.bb

Comments

Denys Dmytriyenko Feb. 4, 2026, 4:25 p.m. UTC | #1
On Wed, Feb 04, 2026 at 09:38:13PM +0530, Jeevan via lists.yoctoproject.org wrote:
> Add a systemd service to run PulseAudio in system mode where multiple
> applications need audio access without user sessions. Depends on
> pulseaudio-server to ensure audio/pulse groups exist.
> 
> Enable this service by default to provide system-wide audio for all
> applications.
> 
> Signed-off-by: Telukula Jeevan Kumar Sahu <j-sahu@ti.com>
> ---
> Changes in v2: Add SUMMARY, PV and PR.
> 
>  .../pulseaudio/files/pulseaudio.service       | 11 ++++++
>  .../pulseaudio/pulseaudio-service.bb          | 39 +++++++++++++++++++
>  2 files changed, 50 insertions(+)
>  create mode 100644 meta-arago-extras/recipes-multimedia/pulseaudio/files/pulseaudio.service
>  create mode 100644 meta-arago-extras/recipes-multimedia/pulseaudio/pulseaudio-service.bb
> 
> diff --git a/meta-arago-extras/recipes-multimedia/pulseaudio/files/pulseaudio.service b/meta-arago-extras/recipes-multimedia/pulseaudio/files/pulseaudio.service
> new file mode 100644
> index 00000000..1d3ac435
> --- /dev/null
> +++ b/meta-arago-extras/recipes-multimedia/pulseaudio/files/pulseaudio.service
> @@ -0,0 +1,11 @@
> +[Unit]
> +Description=PulseAudio Sound System
> +After=alsa-restore.service
> +
> +[Service]
> +BusName=org.pulseaudio.Server
> +ExecStart=/usr/bin/pulseaudio --system
> +Restart=always
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/meta-arago-extras/recipes-multimedia/pulseaudio/pulseaudio-service.bb b/meta-arago-extras/recipes-multimedia/pulseaudio/pulseaudio-service.bb
> new file mode 100644
> index 00000000..5ce849fc
> --- /dev/null
> +++ b/meta-arago-extras/recipes-multimedia/pulseaudio/pulseaudio-service.bb
> @@ -0,0 +1,39 @@
> +SUMMARY = "PulseAudio systemd service for system-wide audio"
> +DESCRIPTION = "Systemd service to run PulseAudio in system mode for embedded systems"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
> +
> +PV = "1.0"
> +PR = "r0"

These days PR is managed automatically, so it is advised against tweaking it 
manually.


> +inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}
> +inherit useradd
> +
> +DEPENDS = "pulseaudio"
> +
> +# Ensure pulseaudio-server is installed to create audio group
> +RDEPENDS:${PN} = "pulseaudio-server"
> +
> +SRC_URI = "\
> +    file://pulseaudio.service \
> +"
> +
> +S = "${UNPACKDIR}"
> +
> +SYSTEMD_PACKAGES = "${PN}"
> +SYSTEMD_SERVICE:${PN} = "pulseaudio.service"
> +SYSTEMD_AUTO_ENABLE:${PN} = "disable"
> +
> +FILES:${PN} = " \
> +    ${systemd_system_unitdir}/pulseaudio.service \
> +"
> +
> +USERADD_PACKAGES = "${PN}"
> +GROUPMEMS_PARAM:${PN} = "--add root --group audio"
> +
> +do_install() {
> +    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
> +        install -d ${D}${systemd_system_unitdir}
> +        install -m 0644 ${S}/pulseaudio.service ${D}${systemd_system_unitdir}/
> +    fi
> +}
> -- 
> 2.34.1
PRC Automation Feb. 4, 2026, 4:30 p.m. UTC | #2
meta-arago / na / 20260204160813.2393421-1-j-sahu

PRC Results: FAIL

=========================================================
  check-yocto-patches: PASS
=========================================================
Patches
----------------------------------------
All patches passed



=========================================================
  apply-yocto-patch: PASS
=========================================================
master
=====================
Summary:
- Patch Series: [meta-arago][master][PATCH v2] pulseaudio-service: Add systemd service for system-wide audio daemon
- Submitter: From: Telukula Jeevan Kumar Sahu <j-sahu@ti.com>
- Date: Date: Wed, 4 Feb 2026 21:38:13 +0530
- Num Patches: 1
- Mailing List (public inbox) Commit SHA: 9eb3f83089e67ac2fdf065915304bcd7e28f2a85

Applied to:
- Repository: lcpd-prc-meta-arago
- Base Branch: master-wip
- Commit Author: Andrew Davis <afd@ti.com>
- Commit Subject: meta-arago-distro: Remove tisdk name from Arago packagegroups
- Commit SHA: 5fb7dfe249b07778f706eb50635e2c5a2c56b13d

Patches
----------------------------------------
All patches applied



=========================================================
  check-yocto-repo: PASS
=========================================================
master
=====================
PASS



=========================================================
  yocto-check-layers: FAIL
=========================================================
master - FAIL
=====================
ERROR: Nothing RPROVIDES 'packagegroup-arago-base-erver-extra' (but <build-dir>/sources/meta-arago/meta-arago-distro/recipes-core/packagegroups/ti-world.bb RDEPENDS on or otherwise requires it)
ERROR: Required build target 'meta-world-pkgdata' has no buildable providers.
Denys Dmytriyenko Feb. 4, 2026, 4:50 p.m. UTC | #3
On Wed, Feb 04, 2026 at 10:30:56AM -0600, PRC Automation via lists.yoctoproject.org wrote:
> meta-arago / na / 20260204160813.2393421-1-j-sahu
> 
> PRC Results: FAIL
> 
> =========================================================
>   check-yocto-patches: PASS
> =========================================================
> Patches
> ----------------------------------------
> All patches passed
> 
> 
> 
> =========================================================
>   apply-yocto-patch: PASS
> =========================================================
> master
> =====================
> Summary:
> - Patch Series: [meta-arago][master][PATCH v2] pulseaudio-service: Add systemd service for system-wide audio daemon
> - Submitter: From: Telukula Jeevan Kumar Sahu <j-sahu@ti.com>
> - Date: Date: Wed, 4 Feb 2026 21:38:13 +0530
> - Num Patches: 1
> - Mailing List (public inbox) Commit SHA: 9eb3f83089e67ac2fdf065915304bcd7e28f2a85
> 
> Applied to:
> - Repository: lcpd-prc-meta-arago
> - Base Branch: master-wip
> - Commit Author: Andrew Davis <afd@ti.com>
> - Commit Subject: meta-arago-distro: Remove tisdk name from Arago packagegroups
> - Commit SHA: 5fb7dfe249b07778f706eb50635e2c5a2c56b13d
> 
> Patches
> ----------------------------------------
> All patches applied
> 
> 
> 
> =========================================================
>   check-yocto-repo: PASS
> =========================================================
> master
> =====================
> PASS
> 
> 
> 
> =========================================================
>   yocto-check-layers: FAIL
> =========================================================
> master - FAIL
> =====================
> ERROR: Nothing RPROVIDES 'packagegroup-arago-base-erver-extra' (but <build-dir>/sources/meta-arago/meta-arago-distro/recipes-core/packagegroups/ti-world.bb RDEPENDS on or otherwise requires it)
> ERROR: Required build target 'meta-world-pkgdata' has no buildable providers.

Ryan,

Somehow there's a typo snuck in in the commit:
https://git.yoctoproject.org/meta-arago/commit/?h=master-wip&id=5fb7dfe249b07778f706eb50635e2c5a2c56b13d

At the very bottom, it has 'packagegroup-arago-base-erver-extra'

I checked Andrew's patches and neither v1 nor v2 had that typo.
Ryan Eatmon Feb. 4, 2026, 4:53 p.m. UTC | #4
On 2/4/2026 10:50 AM, Denys Dmytriyenko wrote:
> On Wed, Feb 04, 2026 at 10:30:56AM -0600, PRC Automation via lists.yoctoproject.org wrote:
>> meta-arago / na / 20260204160813.2393421-1-j-sahu
>>
>> PRC Results: FAIL
>>
>> =========================================================
>>    check-yocto-patches: PASS
>> =========================================================
>> Patches
>> ----------------------------------------
>> All patches passed
>>
>>
>>
>> =========================================================
>>    apply-yocto-patch: PASS
>> =========================================================
>> master
>> =====================
>> Summary:
>> - Patch Series: [meta-arago][master][PATCH v2] pulseaudio-service: Add systemd service for system-wide audio daemon
>> - Submitter: From: Telukula Jeevan Kumar Sahu <j-sahu@ti.com>
>> - Date: Date: Wed, 4 Feb 2026 21:38:13 +0530
>> - Num Patches: 1
>> - Mailing List (public inbox) Commit SHA: 9eb3f83089e67ac2fdf065915304bcd7e28f2a85
>>
>> Applied to:
>> - Repository: lcpd-prc-meta-arago
>> - Base Branch: master-wip
>> - Commit Author: Andrew Davis <afd@ti.com>
>> - Commit Subject: meta-arago-distro: Remove tisdk name from Arago packagegroups
>> - Commit SHA: 5fb7dfe249b07778f706eb50635e2c5a2c56b13d
>>
>> Patches
>> ----------------------------------------
>> All patches applied
>>
>>
>>
>> =========================================================
>>    check-yocto-repo: PASS
>> =========================================================
>> master
>> =====================
>> PASS
>>
>>
>>
>> =========================================================
>>    yocto-check-layers: FAIL
>> =========================================================
>> master - FAIL
>> =====================
>> ERROR: Nothing RPROVIDES 'packagegroup-arago-base-erver-extra' (but <build-dir>/sources/meta-arago/meta-arago-distro/recipes-core/packagegroups/ti-world.bb RDEPENDS on or otherwise requires it)
>> ERROR: Required build target 'meta-world-pkgdata' has no buildable providers.
> 
> Ryan,
> 
> Somehow there's a typo snuck in in the commit:
> https://git.yoctoproject.org/meta-arago/commit/?h=master-wip&id=5fb7dfe249b07778f706eb50635e2c5a2c56b13d
> 
> At the very bottom, it has 'packagegroup-arago-base-erver-extra'
> 
> I checked Andrew's patches and neither v1 nor v2 had that typo.

Yeah.  I had to manually apply his v2 patch, and clearly I screwed it up.
Ryan Eatmon Feb. 4, 2026, 5:18 p.m. UTC | #5
On 2/4/2026 10:53 AM, Ryan Eatmon via lists.yoctoproject.org wrote:
> 
> 
> On 2/4/2026 10:50 AM, Denys Dmytriyenko wrote:
>> On Wed, Feb 04, 2026 at 10:30:56AM -0600, PRC Automation via 
>> lists.yoctoproject.org wrote:
>>> meta-arago / na / 20260204160813.2393421-1-j-sahu
>>>
>>> PRC Results: FAIL
>>>
>>> =========================================================
>>>    check-yocto-patches: PASS
>>> =========================================================
>>> Patches
>>> ----------------------------------------
>>> All patches passed
>>>
>>>
>>>
>>> =========================================================
>>>    apply-yocto-patch: PASS
>>> =========================================================
>>> master
>>> =====================
>>> Summary:
>>> - Patch Series: [meta-arago][master][PATCH v2] pulseaudio-service: 
>>> Add systemd service for system-wide audio daemon
>>> - Submitter: From: Telukula Jeevan Kumar Sahu <j-sahu@ti.com>
>>> - Date: Date: Wed, 4 Feb 2026 21:38:13 +0530
>>> - Num Patches: 1
>>> - Mailing List (public inbox) Commit SHA: 
>>> 9eb3f83089e67ac2fdf065915304bcd7e28f2a85
>>>
>>> Applied to:
>>> - Repository: lcpd-prc-meta-arago
>>> - Base Branch: master-wip
>>> - Commit Author: Andrew Davis <afd@ti.com>
>>> - Commit Subject: meta-arago-distro: Remove tisdk name from Arago 
>>> packagegroups
>>> - Commit SHA: 5fb7dfe249b07778f706eb50635e2c5a2c56b13d
>>>
>>> Patches
>>> ----------------------------------------
>>> All patches applied
>>>
>>>
>>>
>>> =========================================================
>>>    check-yocto-repo: PASS
>>> =========================================================
>>> master
>>> =====================
>>> PASS
>>>
>>>
>>>
>>> =========================================================
>>>    yocto-check-layers: FAIL
>>> =========================================================
>>> master - FAIL
>>> =====================
>>> ERROR: Nothing RPROVIDES 'packagegroup-arago-base-erver-extra' (but 
>>> <build-dir>/sources/meta-arago/meta-arago-distro/recipes-core/packagegroups/ti-world.bb RDEPENDS on or otherwise requires it)
>>> ERROR: Required build target 'meta-world-pkgdata' has no buildable 
>>> providers.
>>
>> Ryan,
>>
>> Somehow there's a typo snuck in in the commit:
>> https://git.yoctoproject.org/meta-arago/commit/?h=master-wip&id=5fb7dfe249b07778f706eb50635e2c5a2c56b13d
>>
>> At the very bottom, it has 'packagegroup-arago-base-erver-extra'
>>
>> I checked Andrew's patches and neither v1 nor v2 had that typo.
> 
> Yeah.  I had to manually apply his v2 patch, and clearly I screwed it up.

Fixed.
diff mbox series

Patch

diff --git a/meta-arago-extras/recipes-multimedia/pulseaudio/files/pulseaudio.service b/meta-arago-extras/recipes-multimedia/pulseaudio/files/pulseaudio.service
new file mode 100644
index 00000000..1d3ac435
--- /dev/null
+++ b/meta-arago-extras/recipes-multimedia/pulseaudio/files/pulseaudio.service
@@ -0,0 +1,11 @@ 
+[Unit]
+Description=PulseAudio Sound System
+After=alsa-restore.service
+
+[Service]
+BusName=org.pulseaudio.Server
+ExecStart=/usr/bin/pulseaudio --system
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-arago-extras/recipes-multimedia/pulseaudio/pulseaudio-service.bb b/meta-arago-extras/recipes-multimedia/pulseaudio/pulseaudio-service.bb
new file mode 100644
index 00000000..5ce849fc
--- /dev/null
+++ b/meta-arago-extras/recipes-multimedia/pulseaudio/pulseaudio-service.bb
@@ -0,0 +1,39 @@ 
+SUMMARY = "PulseAudio systemd service for system-wide audio"
+DESCRIPTION = "Systemd service to run PulseAudio in system mode for embedded systems"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+PV = "1.0"
+PR = "r0"
+
+inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}
+inherit useradd
+
+DEPENDS = "pulseaudio"
+
+# Ensure pulseaudio-server is installed to create audio group
+RDEPENDS:${PN} = "pulseaudio-server"
+
+SRC_URI = "\
+    file://pulseaudio.service \
+"
+
+S = "${UNPACKDIR}"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "pulseaudio.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
+FILES:${PN} = " \
+    ${systemd_system_unitdir}/pulseaudio.service \
+"
+
+USERADD_PACKAGES = "${PN}"
+GROUPMEMS_PARAM:${PN} = "--add root --group audio"
+
+do_install() {
+    if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+        install -d ${D}${systemd_system_unitdir}
+        install -m 0644 ${S}/pulseaudio.service ${D}${systemd_system_unitdir}/
+    fi
+}