From 6a48631e24341895f13029fb7c69dd67031f53c1 Mon Sep 17 00:00:00 2001 From: Trevor Woerner Date: Thu, 24 Dec 2020 10:31:05 -0500 Subject: psplash (sysvinit): add textual updates The psplash program contains a hidden text box immediately above the progress bar. Any text sent via a "MSG" command through psplash's fifo will be displayed, centred, above the progress bar. Add the ability to show which startup script is currently running, in sync with updates to the progress bar. If a startup script takes a bit longer than others and the progress bar stops momentarily, this allows the user to know which script is responsible. This feature is added with a knob, default off, for enabling or disabling this feature. The knob is in the form of a PACKAGECONFIG against the sysvinit recipe: psplash-text-updates NOTE: this knob can be changed in the filesystem at runtime by editing /etc/default/rcS regardless of how it is set in the build. Signed-off-by: Trevor Woerner Signed-off-by: Richard Purdie --- meta/recipes-core/sysvinit/sysvinit/rc | 3 +++ meta/recipes-core/sysvinit/sysvinit/rcS-default | 2 ++ meta/recipes-core/sysvinit/sysvinit_2.98.bb | 7 ++++++- 3 files changed, 11 insertions(+), 1 deletion(-) (limited to 'meta/recipes-core') diff --git a/meta/recipes-core/sysvinit/sysvinit/rc b/meta/recipes-core/sysvinit/sysvinit/rc index 8e76f987c1..41196ec90b 100755 --- a/meta/recipes-core/sysvinit/sysvinit/rc +++ b/meta/recipes-core/sysvinit/sysvinit/rc @@ -160,6 +160,9 @@ startup() { # [ -f $previous_start ] && [ ! -f $stop ] && continue fi + if [ x"${PSPLASH_TEXT_UPDATES}" = x"yes" ]; then + psplash-write "MSG $(basename $i .sh | cut -c 4-)" || true + fi case "$runlevel" in 0|6) startup $i stop diff --git a/meta/recipes-core/sysvinit/sysvinit/rcS-default b/meta/recipes-core/sysvinit/sysvinit/rcS-default index 76af22b359..f7c4a2f841 100644 --- a/meta/recipes-core/sysvinit/sysvinit/rcS-default +++ b/meta/recipes-core/sysvinit/sysvinit/rcS-default @@ -32,3 +32,5 @@ ROOTFS_READ_ONLY=no INIT_SYSTEM=sysvinit # set the psplash fifo directory PSPLASH_FIFO_DIR=/mnt +# psplash textual updates knob +PSPLASH_TEXT_UPDATES=#PSPLASH_TEXT# diff --git a/meta/recipes-core/sysvinit/sysvinit_2.98.bb b/meta/recipes-core/sysvinit/sysvinit_2.98.bb index fd39c61fb5..41009bc180 100644 --- a/meta/recipes-core/sysvinit/sysvinit_2.98.bb +++ b/meta/recipes-core/sysvinit/sysvinit_2.98.bb @@ -29,6 +29,8 @@ inherit update-alternatives features_check DEPENDS_append = " update-rc.d-native base-passwd virtual/crypt" do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot" +PACKAGECONFIG[psplash-text-updates] = ",," + REQUIRED_DISTRO_FEATURES = "sysvinit" ALTERNATIVE_${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall" @@ -91,7 +93,10 @@ do_install () { install -d ${D}${sysconfdir}/rc$level.d done - install -m 0644 ${WORKDIR}/rcS-default ${D}${sysconfdir}/default/rcS + sed -e \ + 's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \ + ${WORKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS + chmod 0644 ${D}${sysconfdir}/default/rcS install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd -- cgit 1.2.3-korg