diff --git a/build/grub/grub-arm64.cfg b/build/grub/grub-arm64.cfg index 13c70f4..d990c17 100644 --- a/build/grub/grub-arm64.cfg +++ b/build/grub/grub-arm64.cfg @@ -51,25 +51,32 @@ else fi # --- ARM64 console string --- -# Covers QEMU virt (ttyAMA0), Ampere/RPi-equivalent PL011 (ttyAMA0), and -# Graviton/16550-compat (ttyS0). Last `console=` becomes the system console. +# Order matters: the LAST `console=` is the primary system console (where /dev/console +# points and where init's stdout/stderr land). Earlier `console=` entries get mirrored +# kernel output but don't carry process I/O. +# +# Covers Graviton/16550 (ttyS0) as secondary and QEMU virt / PL011 / Ampere (ttyAMA0) +# as primary. ttyAMA0 must be last for `-nographic` QEMU + most ARM64 SBCs. +# +# `quiet` is intentionally omitted from the default entry while we stabilise the +# generic ARM64 boot path. Add back once boots are reliable. menuentry "KubeSolo OS (${slot_label})" { echo "Booting KubeSolo OS from ${slot_label}..." echo "Boot counter: ${boot_counter}, Boot success: ${boot_success}" - linux /vmlinuz kubesolo.data=LABEL=KSOLODATA console=ttyAMA0,115200 console=ttyS0,115200 quiet + linux /vmlinuz kubesolo.data=LABEL=KSOLODATA console=ttyS0,115200 console=ttyAMA0,115200 initrd /kubesolo-os.gz } menuentry "KubeSolo OS (${slot_label}) — Debug Mode" { echo "Booting KubeSolo OS (debug) from ${slot_label}..." - linux /vmlinuz kubesolo.data=LABEL=KSOLODATA kubesolo.debug console=ttyAMA0,115200 console=ttyS0,115200 + linux /vmlinuz kubesolo.data=LABEL=KSOLODATA kubesolo.debug console=ttyS0,115200 console=ttyAMA0,115200 initrd /kubesolo-os.gz } menuentry "KubeSolo OS — Emergency Shell" { echo "Booting to emergency shell..." - linux /vmlinuz kubesolo.shell console=ttyAMA0,115200 console=ttyS0,115200 + linux /vmlinuz kubesolo.shell console=ttyS0,115200 console=ttyAMA0,115200 initrd /kubesolo-os.gz } @@ -81,6 +88,6 @@ menuentry "KubeSolo OS — Boot Other Slot" { set root='(hd0,gpt2)' echo "Booting from System A (passive)..." fi - linux /vmlinuz kubesolo.data=LABEL=KSOLODATA kubesolo.debug console=ttyAMA0,115200 console=ttyS0,115200 + linux /vmlinuz kubesolo.data=LABEL=KSOLODATA kubesolo.debug console=ttyS0,115200 console=ttyAMA0,115200 initrd /kubesolo-os.gz }