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 <twoer...@gmail.com>
---
 meta/recipes-core/sysvinit/sysvinit/rc          | 3 +++
 meta/recipes-core/sysvinit/sysvinit/rcS-default | 2 ++
 meta/recipes-core/sysvinit/sysvinit_2.97.bb     | 7 ++++++-
 3 files changed, 11 insertions(+), 1 deletion(-)

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.97.bb 
b/meta/recipes-core/sysvinit/sysvinit_2.97.bb
index 98916f7f19..03099bf157 100644
--- a/meta/recipes-core/sysvinit/sysvinit_2.97.bb
+++ b/meta/recipes-core/sysvinit/sysvinit_2.97.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
-- 
2.30.0.rc0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#146164): 
https://lists.openembedded.org/g/openembedded-core/message/146164
Mute This Topic: https://lists.openembedded.org/mt/79203875/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to