From c6174b85170280ca5b9f39e643810cc9a58d7305 Mon Sep 17 00:00:00 2001 From: Jeffrey Alan Scudder Date: Thu, 26 Mar 2026 13:01:29 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20clean=20boot=20=E2=80=94=20suppress=20ke?= =?UTF-8?q?rnel=20messages=20+=20init=20debug=20output?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Kernel: quiet loglevel=0 (was loglevel=4) - Init: remove all echo statements to console - ac-native stderr redirected to /dev/null (logs go to USB file only) - Swank starts silently Co-Authored-By: Claude Opus 4.6 (1M context) --- fedac/native/initramfs/init | 56 +++++------------------------- fedac/native/kernel/config-minimal | 2 +- 2 files changed, 10 insertions(+), 48 deletions(-) diff --git a/fedac/native/initramfs/init b/fedac/native/initramfs/init index 1676370c05..9aa128ef58 100755 --- a/fedac/native/initramfs/init +++ b/fedac/native/initramfs/init @@ -74,77 +74,39 @@ done # Run ac-native in a loop — if it crashes, restart; if clean exit, shutdown export LD_LIBRARY_PATH="/lib64:/usr/lib64:${LD_LIBRARY_PATH:-}" -# Debug: ALWAYS write to kernel console (dmesg) + USB if mounted -echo "[ac-init] USB_MOUNTED=$USB_MOUNTED" -echo "[ac-init] mnt: $(ls /mnt/ 2>&1)" -echo "[ac-init] binary: $(ls -la /ac-native 2>&1)" -echo "[ac-init] libs: $(ls /lib64/libquickjs* 2>&1)" -echo "[ac-init] build: $(cat /etc/ac-build 2>&1)" -echo "[ac-init] LD_LIBRARY_PATH=$LD_LIBRARY_PATH" -# Also write to USB if mounted +# Write diagnostics to USB log only (not console) if [ "$USB_MOUNTED" = "1" ]; then LOG=/mnt/pre-launch.log echo "=== PRE-LAUNCH ===" > $LOG ls /mnt/ >> $LOG 2>&1 - ls -la /ac-native >> $LOG 2>&1 - ls /lib64/libquickjs* >> $LOG 2>&1 - cat /etc/ac-build >> $LOG 2>&1 - echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $LOG + echo "binary: $(ls -la /ac-native 2>&1)" >> $LOG + echo "build: $(cat /etc/ac-build 2>&1)" >> $LOG sync fi + # Start Swank server in background (if SBCL image exists) SWANK_PID=0 if [ -x /ac-swank ]; then - echo "[ac-init] Starting Swank server (port 4005)..." - LD_LIBRARY_PATH="/lib64:/usr/lib64" /ac-swank --swank-only & + LD_LIBRARY_PATH="/lib64:/usr/lib64" /ac-swank --swank-only >/dev/null 2>&1 & SWANK_PID=$! - echo "[ac-init] Swank PID=$SWANK_PID" -fi - -# Run once, capture crash -echo "[ac-init] === LAUNCHING ===" -/ac-native /piece.mjs > /mnt/pre-launch-out.log 2>&1 -FIRST_EXIT=$? -echo "[ac-init] EXIT=$FIRST_EXIT" -sync - -# Handle clean exit from first run -if [ "$FIRST_EXIT" = "0" ]; then - echo "[ac-init] Clean exit (first run) — powering off..." - echo o > /proc/sysrq-trigger 2>/dev/null - sleep 2; poweroff -f 2>/dev/null; sleep 30; exit 0 -fi -if [ "$FIRST_EXIT" = "2" ]; then - echo "[ac-init] Reboot (first run)..." - echo b > /proc/sysrq-trigger 2>/dev/null - sleep 2; reboot -f 2>/dev/null; sleep 30; exit 0 fi -sleep 5 +# Main loop — restart on crash, poweroff on exit 0, reboot on exit 2 CRASH_COUNT=0 while true; do - /ac-native /piece.mjs + /ac-native /piece.mjs 2>/dev/null EXIT_CODE=$? - # Exit code 0 = power off, exit code 2 = reboot if [ "$EXIT_CODE" = "0" ]; then sync - echo "[ac-init] Clean exit — powering off..." echo o > /proc/sysrq-trigger 2>/dev/null - sleep 2 - poweroff -f 2>/dev/null - busybox poweroff -f 2>/dev/null - sleep 30 + sleep 2; poweroff -f 2>/dev/null; sleep 30 break fi if [ "$EXIT_CODE" = "2" ]; then sync - echo "[ac-init] Reboot requested..." echo b > /proc/sysrq-trigger 2>/dev/null - sleep 2 - reboot -f 2>/dev/null - busybox reboot -f 2>/dev/null - sleep 30 + sleep 2; reboot -f 2>/dev/null; sleep 30 break fi diff --git a/fedac/native/kernel/config-minimal b/fedac/native/kernel/config-minimal index b116b86652..964b7c6ea0 100644 --- a/fedac/native/kernel/config-minimal +++ b/fedac/native/kernel/config-minimal @@ -424,7 +424,7 @@ CONFIG_HOTPLUG_CPU=y CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="console=tty0 loglevel=4 vt.global_cursor_default=0 init=/init mitigations=off snd_intel_dspcfg.dsp_driver=0 snd_hda_intel.power_save=0 nmi_watchdog=0 tsc=reliable no_timer_check acpi_backlight=native thinkpad_acpi.brightness_enable=1 i8042.reset i8042.nomux" +CONFIG_CMDLINE="console=tty0 quiet loglevel=0 vt.global_cursor_default=0 init=/init mitigations=off snd_intel_dspcfg.dsp_driver=0 snd_hda_intel.power_save=0 nmi_watchdog=0 tsc=reliable no_timer_check acpi_backlight=native thinkpad_acpi.brightness_enable=1 i8042.reset i8042.nomux" # CONFIG_CMDLINE_OVERRIDE is not set CONFIG_MODIFY_LDT_SYSCALL=y # CONFIG_STRICT_SIGALTSTACK_SIZE is not set -- 2.54.0