summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configs/os/services/kvmd-bootconfig.service2
-rwxr-xr-xscripts/kvmd-bootconfig18
2 files changed, 13 insertions, 7 deletions
diff --git a/configs/os/services/kvmd-bootconfig.service b/configs/os/services/kvmd-bootconfig.service
index 2a84acfb..81a73095 100644
--- a/configs/os/services/kvmd-bootconfig.service
+++ b/configs/os/services/kvmd-bootconfig.service
@@ -1,6 +1,6 @@
[Unit]
Description=PiKVM - Boot configuration
-After=systemd-modules-load.service
+After=systemd-modules-load.service kvmd-oled.service
Before=network-pre.target kvmd-otg.service kvmd-nginx.service kvmd.service sshd.service pikvm-bootconfig.service
[Service]
diff --git a/scripts/kvmd-bootconfig b/scripts/kvmd-bootconfig
index 20f67d5a..1ea68c2c 100755
--- a/scripts/kvmd-bootconfig
+++ b/scripts/kvmd-bootconfig
@@ -39,6 +39,14 @@ fi
if [ ! -f /boot/pikvm.txt ]; then
exit 0
fi
+
+if systemctl is-enabled -q kvmd-oled; then
+ # Stop regular kvmd-oled service and show first time setup status in oled
+ systemctl stop kvmd-oled || true
+ kvmd-oled --interval=0 --text="On-boot setup...\nDO NOT INTERRUPT!\nPlease wait" || true
+ has_oled=1
+fi
+
# shellcheck disable=SC1090
source <(dos2unix < /boot/pikvm.txt)
@@ -48,10 +56,6 @@ rw
# ========== First boot configuration ==========
if [ -n "$FIRSTBOOT$FIRST_BOOT" ]; then
- ### stop regular kvmd-oled service and show first time setup status in oled
- systemctl stop kvmd-oled
- /usr/bin/kvmd-oled --interval=0 --text="First time setup\nDo NOT interrupt\nPlease Wait...\n"
-
( \
(umount /etc/machine-id || true) \
&& echo -n > /etc/machine-id \
@@ -211,6 +215,8 @@ if [ -f /boot/pikvm-reboot.txt ]; then
sleep 3
else
ro
- # critical tasks have completed so start kvmd-oled service as an indicator that first boot tasks are complete
- systemctl restart kvmd-oled
+ if [ -n "$has_oled" ]; then
+ # Critical tasks have completed so start kvmd-oled service as an indicator that on-boot tasks are complete
+ systemctl start kvmd-oled || true
+ fi
fi