diff options
author | Jonathan Bauer | 2018-05-23 12:09:49 +0200 |
---|---|---|
committer | Jonathan Bauer | 2018-05-23 12:09:49 +0200 |
commit | 9149d134cdd6c214ba0c253b8e9912ff8ff75045 (patch) | |
tree | 9b51aa87c804246a218444655bbfcf290eaeee25 /builder/modules.d/slx-splash/scripts | |
parent | update to dracut v47 (diff) | |
download | systemd-init-9149d134cdd6c214ba0c253b8e9912ff8ff75045.tar.gz systemd-init-9149d134cdd6c214ba0c253b8e9912ff8ff75045.tar.xz systemd-init-9149d134cdd6c214ba0c253b8e9912ff8ff75045.zip |
new slx-drm and slx-splash (PoC) modules
slx-drm pulls in dracut's drm module and provides a modprobe.d
configurations file to always prioritize nvidia drivers, falling back to
nouveau on failures.
slx-splash uses the slx busybox's fbsplash (WIP). Busybox is still
missing from defaults builds, so this won't function out of the box!
Diffstat (limited to 'builder/modules.d/slx-splash/scripts')
-rw-r--r-- | builder/modules.d/slx-splash/scripts/slx-splash.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/builder/modules.d/slx-splash/scripts/slx-splash.sh b/builder/modules.d/slx-splash/scripts/slx-splash.sh new file mode 100644 index 00000000..8f3ccec3 --- /dev/null +++ b/builder/modules.d/slx-splash/scripts/slx-splash.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +show_splash() { + if [ -e "/etc/splash.ppm.gz" ]; then + /usr/bin/systemd-preserve-process-marker /bin/busybox fbsplash -x -b -s "/etc/splash.ppm.gz" & + elif [ -e "/etc/splash.ppm" ]; then + /usr/bin/systemd-preserve-process-marker /bin/busybox fbsplash -x -b -s "/etc/splash.ppm" & + else + echo "Splash screen requested, but not found in initramfs..." + fi +} + +init_drm() { + # taken from dracut's plymouth module + # first trigger graphics subsystem + udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1 + # first trigger graphics and tty subsystem + udevadm trigger --action=add \ + --subsystem-match=graphics \ + --subsystem-match=drm \ + --subsystem-match=tty \ + --subsystem-match=acpi \ + >/dev/null 2>&1 + + udevadm settle --timeout=180 2>&1 +} + +if grep -qE '\s+splash\s+' /proc/cmdline; then + # first init graphics + init_drm + # disable non-critical kernel messages + echo "1 1 0 1" > /proc/sys/kernel/printk + # disable systemd's status message on console + # See: https://www.freedesktop.org/software/systemd/man/systemd.html#Signals + kill -55 1 + # clear console + busybox clear + # disable cursor + echo -e "\033[?25l" > /dev/console + # finally: + show_splash +fi |