psplash: install systemd services
authorEric Le Bihan <eric.le.bihan.dev@free.fr>
Wed, 11 Jun 2014 20:55:02 +0000 (22:55 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 13 Jun 2014 12:38:50 +0000 (14:38 +0200)
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>
package/psplash/psplash-quit.service [new file with mode: 0644]
package/psplash/psplash-start.service [new file with mode: 0644]
package/psplash/psplash.mk

diff --git a/package/psplash/psplash-quit.service b/package/psplash/psplash-quit.service
new file mode 100644 (file)
index 0000000..14bd499
--- /dev/null
@@ -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
diff --git a/package/psplash/psplash-start.service b/package/psplash/psplash-start.service
new file mode 100644 (file)
index 0000000..2de3cfc
--- /dev/null
@@ -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
index 83b6f79c64136152c2a124362779c31e567b34be..b7562660d07bb5045af6fd77411956dd37c76ee1 100644 (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))