From 93bc371d1c4e204fb663b8a54c4415ffdd0c5961 Mon Sep 17 00:00:00 2001 From: Mathias Gibbens Date: Fri, 21 Nov 2025 13:29:57 -0700 Subject: [PATCH] base: Add script to show hardware information if IncusOS fails to start Signed-off-by: Mathias Gibbens --- mkosi.conf | 2 ++ .../debian/initrd-tmpfs-root.install | 4 ++- .../debian/initrd-tmpfs-root.links | 1 + .../initrd-show-devices.service | 14 ++++++++ .../initrd-tmpfs-root/initrd-show-devices.sh | 33 +++++++++++++++++++ 5 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 mkosi.packages/initrd-tmpfs-root/initrd-show-devices.service create mode 100755 mkosi.packages/initrd-tmpfs-root/initrd-show-devices.sh diff --git a/mkosi.conf b/mkosi.conf index 63b648f..c27c627 100644 --- a/mkosi.conf +++ b/mkosi.conf @@ -49,5 +49,7 @@ KernelModulesInitrdInclude=default vmd InitrdPackages=initrd-tmpfs-root kpartx + pciutils + usbutils RemoveFiles=/boot/*zabbly* /boot/EFI/mkosi.der diff --git a/mkosi.packages/initrd-tmpfs-root/debian/initrd-tmpfs-root.install b/mkosi.packages/initrd-tmpfs-root/debian/initrd-tmpfs-root.install index 2202dd9..5ef4833 100644 --- a/mkosi.packages/initrd-tmpfs-root/debian/initrd-tmpfs-root.install +++ b/mkosi.packages/initrd-tmpfs-root/debian/initrd-tmpfs-root.install @@ -5,4 +5,6 @@ initrd-tmpfs-root.service usr/lib/systemd/system/ 00-device-timeout.conf usr/lib/systemd/system.conf.d/ -initrd-message.service usr/lib/systemd/system/ +initrd-message.service usr/lib/systemd/system/ +initrd-show-devices.service usr/lib/systemd/system/ +initrd-show-devices.sh usr/bin/ diff --git a/mkosi.packages/initrd-tmpfs-root/debian/initrd-tmpfs-root.links b/mkosi.packages/initrd-tmpfs-root/debian/initrd-tmpfs-root.links index e5949fd..34ac9c5 100644 --- a/mkosi.packages/initrd-tmpfs-root/debian/initrd-tmpfs-root.links +++ b/mkosi.packages/initrd-tmpfs-root/debian/initrd-tmpfs-root.links @@ -1 +1,2 @@ usr/lib/systemd/system/initrd-message.service usr/lib/systemd/system/veritysetup.target.wants/initrd-message.service +usr/lib/systemd/system/initrd-show-devices.service usr/lib/systemd/system/emergency.target.wants/initrd-show-devices.service diff --git a/mkosi.packages/initrd-tmpfs-root/initrd-show-devices.service b/mkosi.packages/initrd-tmpfs-root/initrd-show-devices.service new file mode 100644 index 0000000..8ca94f8 --- /dev/null +++ b/mkosi.packages/initrd-tmpfs-root/initrd-show-devices.service @@ -0,0 +1,14 @@ +[Unit] +Description=Show system devices +After=emergency.target +DefaultDependencies=no + +[Service] +Type=oneshot + +Environment=TTYS="/dev/tty1 /dev/ttyS0" + +ExecStart=/usr/bin/initrd-show-devices.sh + +[Install] +WantedBy=emergency.target diff --git a/mkosi.packages/initrd-tmpfs-root/initrd-show-devices.sh b/mkosi.packages/initrd-tmpfs-root/initrd-show-devices.sh new file mode 100755 index 0000000..dbc6fd2 --- /dev/null +++ b/mkosi.packages/initrd-tmpfs-root/initrd-show-devices.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +# shellcheck disable=SC3000-SC4000 + +while true; do + for TTY in $TTYS; do + echo -e "\033cIncusOS failed to start. Debug information follows." > "$TTY" || true + echo "$ lsblk" > "$TTY" || true + lsblk > "$TTY" || true + done + sleep 10 + + for TTY in $TTYS; do + echo -e "\033cIncusOS failed to start. Debug information follows." > "$TTY" || true + echo "$ lscpi" > "$TTY" || true + lspci > "$TTY" || true + done + sleep 10 + + for TTY in $TTYS; do + echo -e "\033cIncusOS failed to start. Debug information follows." > "$TTY" || true + echo "$ lsusb" > "$TTY" || true + lsusb > "$TTY" || true + done + sleep 10 + + for TTY in $TTYS; do + echo -e "\033cIncusOS failed to start. Debug information follows." > "$TTY" || true + echo "$ ls -lh /sys/class/block/*/device/driver" > "$TTY" || true + ls -lh /sys/class/block/*/device/driver > "$TTY" || true + done + sleep 10 +done