diff options
author | Ashok Sidipotu <ashok.sidipotu@collabora.com> | 2022-02-17 19:02:03 +0530 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2022-06-10 21:18:06 +0000 |
commit | 1f9f960298a6a2e6ae0360c4ef42e88c9678069a (patch) | |
tree | 0b3539b185042e96ad10db4403823c78870aa01c /meta-agl-lxc/recipes-multimedia/wireplumber | |
parent | 11505a45554d8db0ca0fd6f5e77c88cbbb7cacb3 (diff) |
Enable Wireplumber Policy instance in ivi guest image.
-add wireplumber-policy-config-agl recipe to guest, while
wireplumber-config-agl remains in host.
-add packagegroup-pipewire-base which is needed by the policy recipe.
-mount host pipewire server socket in /var directory in guest image and
define a PIPEWIRE_RUNTIME_DIR environment variable based on this new mount
point.
-make the needed service file changes to have wireplumber policy
instance start on its own with out depending on pipewire service, limit this
change to lxc layers.
-install wireplumber@policy.service in sockets.targets.want directory,
this is need for its self start, limit this change to lxc layers
Bug-AGL: SPEC-4100
Signed-off-by: Ashok Sidipotu <ashok.sidipotu@collabora.com>
Change-Id: Ifbd7a026c75a199bb540c1593d5a93f67a4bde02
Diffstat (limited to 'meta-agl-lxc/recipes-multimedia/wireplumber')
3 files changed, 77 insertions, 0 deletions
diff --git a/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend new file mode 100644 index 00000000..fe6dab86 --- /dev/null +++ b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend @@ -0,0 +1,8 @@ +do_install:append() { + config_dir="${D}${sysconfdir}/wireplumber/" + systemd_dir="${D}${sysconfdir}/systemd/system/sockets.target.wants" + + # enable additional systemd services + install -d ${systemd_dir} + ln -s ${systemd_system_unitdir}/wireplumber@.service ${systemd_dir}/wireplumber@policy.service +} diff --git a/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch new file mode 100644 index 00000000..0da0bfb6 --- /dev/null +++ b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch @@ -0,0 +1,64 @@ +From a2d324c75057f0ddd66cbe5b5e419fddda213cc2 Mon Sep 17 00:00:00 2001 +From: Ashok Sidipotu <ashok.sidipotu@collabora.com> +Date: Mon, 28 Feb 2022 06:46:19 +0530 +Subject: [PATCH] systemd: changes to run wireplumber instances in containers + +- remove the pipewire daemon dependencies so that +only wireplumber policy daemon can run in containers. +- remove pipewire user +--- + src/systemd/system/wireplumber@.service.in | 8 +++----- + src/systemd/user/wireplumber@.service.in | 5 ++--- + 2 files changed, 5 insertions(+), 8 deletions(-) + + Inappropriate [configuration] + +diff --git a/src/systemd/system/wireplumber@.service.in b/src/systemd/system/wireplumber@.service.in +index ba8eefe..e4b985b 100644 +--- a/src/systemd/system/wireplumber@.service.in ++++ b/src/systemd/system/wireplumber@.service.in +@@ -5,8 +5,7 @@ + # wireplumber@policy.service loads policy.conf, etc. + [Unit] + Description=Multimedia Service Session Manager (%i) +-After=pipewire.service +-BindsTo=pipewire.service ++After=sockets.target + Conflicts=pipewire-media-session.service + + [Service] +@@ -19,9 +18,8 @@ SystemCallFilter=@system-service + Type=simple + ExecStart=@WP_BINARY@ -c %i.conf + Restart=on-failure +-User=pipewire +-Environment=PIPEWIRE_RUNTIME_DIR=%t/pipewire ++Environment=PIPEWIRE_RUNTIME_DIR=/var + Environment=GIO_USE_VFS=local + + [Install] +-WantedBy=pipewire.service ++WantedBy=multi-user.target +diff --git a/src/systemd/user/wireplumber@.service.in b/src/systemd/user/wireplumber@.service.in +index 9dbceff..7e21194 100644 +--- a/src/systemd/user/wireplumber@.service.in ++++ b/src/systemd/user/wireplumber@.service.in +@@ -5,8 +5,7 @@ + # wireplumber@policy.service loads policy.conf, etc. + [Unit] + Description=Multimedia Service Session Manager (%i) +-After=pipewire.service +-BindsTo=pipewire.service ++After=sockets.target + Conflicts=pipewire-media-session.service + + [Service] +@@ -23,4 +22,4 @@ Slice=session.slice + Environment=GIO_USE_VFS=local + + [Install] +-WantedBy=pipewire.service ++WantedBy=multi-user.target +-- +2.35.1 + diff --git a/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber_git.bbappend b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber_git.bbappend new file mode 100644 index 00000000..6a73503d --- /dev/null +++ b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber_git.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/wireplumber:" + +SRC_URI += "\ + file://0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch \ +" |