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.

(From OE-Core rev: 6a48631e24341895f13029fb7c69dd67031f53c1)

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Trevor Woerner
2020-12-24 10:31:05 -05:00
committed by Richard Purdie
parent 05091409dd
commit 6ddb9bc4bb
3 changed files with 11 additions and 1 deletions

View File

@@ -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

View File

@@ -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#

View File

@@ -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