mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 05:09:24 +00:00
psplash: add systemd support
Make use of the recently added systemd support in psplash. The utility psplash-systemd communicates boot progress to the splash screen. The splash is disabled once systemd consideres the system fully booted (progress is at 1.0). Note that this can take a while if systemd is stuck on a failing unit. This change adds two systemd services. One service starts psplash itself (psplash-start.service) and the second service starts the helper utility psplash-systemd (psplash-systemd.service). The units are written such that psplash-systemd.service can be used indepenendenly. This is useful when starting psplash in initramfs (not using systemd). (From OE-Core rev: b4063b16082604554c7c19b369ebddd27061f372) Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
6c43f76248
commit
9ae26cfeea
@@ -23,10 +23,10 @@ for x in $CMDLINE; do
|
||||
esac
|
||||
done
|
||||
|
||||
export TMPDIR=/mnt/.psplash
|
||||
[ -d $TMPDIR ] || mkdir -p $TMPDIR
|
||||
if ! mountpoint -q $TMPDIR; then
|
||||
mount tmpfs -t tmpfs $TMPDIR -o,size=40k
|
||||
export PSPLASH_FIFO_DIR=/mnt/.psplash
|
||||
[ -d $PSPLASH_FIFO_DIR ] || mkdir -p $PSPLASH_FIFO_DIR
|
||||
if ! mountpoint -q $PSPLASH_FIFO_DIR; then
|
||||
mount tmpfs -t tmpfs $PSPLASH_FIFO_DIR -o,size=40k
|
||||
fi
|
||||
|
||||
rotation=0
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Start psplash boot splash screen
|
||||
DefaultDependencies=no
|
||||
Requires=psplash-systemd.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/psplash
|
||||
|
||||
[Install]
|
||||
WantedBy=sysinit.target
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Start psplash-systemd progress communication helper
|
||||
DefaultDependencies=no
|
||||
After=systemd-start.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/psplash-systemd
|
||||
|
||||
[Install]
|
||||
WantedBy=sysinit.target
|
||||
@@ -3,14 +3,16 @@ DESCRIPTION = "PSplash is a userspace graphical boot splash screen for mainly em
|
||||
HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/psplash"
|
||||
SECTION = "base"
|
||||
LICENSE = "GPLv2+"
|
||||
LIC_FILES_CHKSUM = "file://psplash.h;beginline=1;endline=16;md5=840fb2356b10a85bed78dd09dc7745c6"
|
||||
LIC_FILES_CHKSUM = "file://psplash.h;beginline=1;endline=8;md5=8f232c1e95929eacab37f00900580224"
|
||||
|
||||
SRCREV = "2015f7073e98dd9562db0936a254af5ef56356cf"
|
||||
SRCREV = "773a3977d255e8f59a741ad6ce37c4d40f1feaa1"
|
||||
PV = "0.1+git${SRCPV}"
|
||||
PR = "r15"
|
||||
|
||||
SRC_URI = "git://git.yoctoproject.org/${BPN} \
|
||||
file://psplash-init \
|
||||
file://psplash-start.service \
|
||||
file://psplash-systemd.service \
|
||||
${SPLASH_IMAGES}"
|
||||
UPSTREAM_CHECK_COMMITS = "1"
|
||||
|
||||
@@ -66,7 +68,11 @@ python __anonymous() {
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit autotools pkgconfig update-rc.d update-alternatives
|
||||
inherit autotools pkgconfig update-rc.d update-alternatives systemd
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
|
||||
|
||||
PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
|
||||
|
||||
ALTERNATIVE_PRIORITY = "100"
|
||||
ALTERNATIVE_LINK_NAME[psplash] = "${bindir}/psplash"
|
||||
@@ -97,8 +103,17 @@ python do_compile () {
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}${sysconfdir}/init.d/
|
||||
install -m 0755 ${WORKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
|
||||
install -d ${D}${sysconfdir}/init.d/
|
||||
install -m 0755 ${WORKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh
|
||||
fi
|
||||
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||
install -d ${D}${systemd_unitdir}/system
|
||||
install -m 644 ${WORKDIR}/psplash-start.service ${D}/${systemd_unitdir}/system
|
||||
install -m 644 ${WORKDIR}/psplash-systemd.service ${D}/${systemd_unitdir}/system
|
||||
fi
|
||||
|
||||
install -d ${D}${bindir}
|
||||
for i in ${SPLASH_INSTALL} ; do
|
||||
install -m 0755 $i ${D}${bindir}/$i
|
||||
@@ -106,15 +121,8 @@ do_install_append() {
|
||||
rm -f ${D}${bindir}/psplash
|
||||
}
|
||||
|
||||
SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
|
||||
SYSTEMD_SERVICE_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'psplash-start.service psplash-systemd.service', '', d)}"
|
||||
|
||||
INITSCRIPT_NAME = "psplash.sh"
|
||||
INITSCRIPT_PARAMS = "start 0 S . stop 20 0 1 6 ."
|
||||
|
||||
PACKAGE_WRITE_DEPS_append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}"
|
||||
pkg_postinst_${PN} () {
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
||||
if [ -n "$D" ]; then
|
||||
OPTS="--root=$D"
|
||||
fi
|
||||
systemctl $OPTS mask psplash.service
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user