summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNaoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>2023-04-23 20:31:49 +0900
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2023-05-09 15:29:36 +0000
commit8431b953287f1fa849def345025f1aa1fa3f42cc (patch)
treec24b35340e826953146a11ae73e28b5e1021a878
parentbf0670906f4c011ccbab46c2b36433418c0c02b9 (diff)
Enable psplash in guest container using drm-lease
The upstream version of psplash is supporting fb based splash screen. On the other hand, drm lease infrastructure is not support fb. This patch enable drm-lease support at psplash. This work contributed by Hiroyuki Ishii at CES2023 demo development. Bug-AGL: SPEC-4766 Change-Id: I2c58b0db489b1573ef3b7f7396203550c1fb89d6 Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>
-rw-r--r--recipes-core/psplash/agl-container-guest/psplash.env4
-rw-r--r--recipes-core/psplash/psplash-portrait-config.bbappend1
-rw-r--r--recipes-core/psplash/psplash-portrait-config_agl-container-guest-demo.inc15
-rw-r--r--recipes-core/psplash/psplash_agl-container-guest-demo.inc11
-rw-r--r--recipes-core/psplash/psplash_git.bbappend1
5 files changed, 32 insertions, 0 deletions
diff --git a/recipes-core/psplash/agl-container-guest/psplash.env b/recipes-core/psplash/agl-container-guest/psplash.env
new file mode 100644
index 000000000..ed5f26212
--- /dev/null
+++ b/recipes-core/psplash/agl-container-guest/psplash.env
@@ -0,0 +1,4 @@
+XDG_RUNTIME_DIR=/run/user/0
+DLM_RUNTIME_PATH=/var/display/drm-lease-manager
+DRM_LEASE_DEVICE=lease
+WAYLAND_DISPLAY=wayland-1
diff --git a/recipes-core/psplash/psplash-portrait-config.bbappend b/recipes-core/psplash/psplash-portrait-config.bbappend
new file mode 100644
index 000000000..62914b5d7
--- /dev/null
+++ b/recipes-core/psplash/psplash-portrait-config.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'agl-container-guest-demo', 'psplash-portrait-config_agl-container-guest-demo.inc', '', d)}
diff --git a/recipes-core/psplash/psplash-portrait-config_agl-container-guest-demo.inc b/recipes-core/psplash/psplash-portrait-config_agl-container-guest-demo.inc
new file mode 100644
index 000000000..73edc67d0
--- /dev/null
+++ b/recipes-core/psplash/psplash-portrait-config_agl-container-guest-demo.inc
@@ -0,0 +1,15 @@
+do_install[depends] = "psplash:do_populate_sysroot"
+
+do_install() {
+ # Install override
+ psplash_service="${STAGING_DIR_TARGET}/${systemd_system_unitdir}/psplash-start.service"
+ if [ ! -f "$psplash_service" ]; then
+ echo "ERROR: psplash service unit file not found: $psplash_service" >&2
+ exit 1
+ fi
+ install -d ${D}${systemd_system_unitdir}/psplash-start.service.d
+ psplash_portrait_conf="${D}${systemd_system_unitdir}/psplash-start.service.d/psplash-portrait.conf"
+ echo "[Service]" > "$psplash_portrait_conf"
+ echo "ExecStart=" >> "$psplash_portrait_conf"
+ sed -ne 's!^\(ExecStart=/usr/bin/psplash.*\)!\1 --angle 90!p' "$psplash_service" >> "$psplash_portrait_conf"
+}
diff --git a/recipes-core/psplash/psplash_agl-container-guest-demo.inc b/recipes-core/psplash/psplash_agl-container-guest-demo.inc
new file mode 100644
index 000000000..9c7fb37e2
--- /dev/null
+++ b/recipes-core/psplash/psplash_agl-container-guest-demo.inc
@@ -0,0 +1,11 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/agl-container-guest:"
+SRC_URI:append = " file://psplash.env"
+
+PACKAGECONFIG:append = " drm drm-lease"
+
+PSPLASH_DRM_LEASE_ARGS = "--drm-lease lease"
+
+do_install:append () {
+ sed -i -e '/^\[Service\]/a EnvironmentFile=/etc/default/psplash' ${D}${systemd_system_unitdir}/psplash-start.service
+ install -Dm644 ${WORKDIR}/psplash.env ${D}${sysconfdir}/default/psplash
+}
diff --git a/recipes-core/psplash/psplash_git.bbappend b/recipes-core/psplash/psplash_git.bbappend
index 931b27c78..d7d75d273 100644
--- a/recipes-core/psplash/psplash_git.bbappend
+++ b/recipes-core/psplash/psplash_git.bbappend
@@ -1 +1,2 @@
require ${@bb.utils.contains('AGL_FEATURES', 'agldemo', 'psplash_agldemo.inc', '', d)}
+require ${@bb.utils.contains('AGL_FEATURES', 'agl-container-guest-demo', 'psplash_agl-container-guest-demo.inc', '', d)}