psplash: install systemd services

This patch provides service files for using psplash on embedded devices
running systemd:

- psplash-start.service: start psplash.
- psplash-quit.service: kill psplash when reaching multi-user.target

The following kernel command line options should also be set:

  systemd.show_status=0 quiet splash

The option "systemd.show_status=0" is required, because, unlike Plymouth,
psplash does not have real systemd integration, i.e. it will not perform:

  kill(1, SIGRTMIN + 21);

Note that no progress messages will be printed on the splash screen.

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Eric Le Bihan 2014-06-11 22:55:02 +02:00 committed by Peter Korsgaard
parent 70e349930d
commit cd18e2acee
3 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,11 @@
[Unit]
Description=Terminate Psplash Boot Screen
After=psplash-start.service
[Service]
Type=oneshot
ExecStart=/usr/bin/psplash-write QUIT
TimeoutSec=20
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,11 @@
[Unit]
Description=Starts Psplash Boot screen
Wants=systemd-vconsole-setup.service
After=systemd-vconsole-setup.service systemd-udev-trigger.service systemd-udevd.service
DefaultDependencies=no
[Service]
ExecStart=/usr/bin/psplash -n
[Install]
WantedBy=sysinit.target

View File

@ -9,4 +9,18 @@ PSPLASH_SITE = git://git.yoctoproject.org/psplash
PSPLASH_LICENSE = GPLv2+
PSPLASH_AUTORECONF = YES
define PSPLASH_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 644 package/psplash/psplash-start.service \
$(TARGET_DIR)/etc/systemd/system/psplash-start.service
$(INSTALL) -d $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
ln -sf ../psplash-start.service \
$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/
$(INSTALL) -D -m 644 package/psplash/psplash-quit.service \
$(TARGET_DIR)/etc/systemd/system/psplash-quit.service
$(INSTALL) -d $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
ln -sf ../psplash-quit.service \
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/
endef
$(eval $(autotools-package))