chore(arm64): clean up debug logging + document Phase 3 status
Remove [KSOLO-DBG] per-step echos from init.sh. The /dev/console redirect
stays — it's load-bearing for early-boot visibility on QEMU virt.
Add docs/arm64-status.md capturing the end-of-Phase-3 state:
- What works (full boot through 14 stages, KubeSolo + containerd start)
- Known limitations of the dev setup (QEMU TCG perf, /dev/vda4 hardcode,
busybox-static gaps)
- What's needed to ship v0.3 ARM64 as production-ready
Real-hardware validation (Graviton, Ampere, or similar) is the next gating
step before we can call ARM64 generic done.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
18
init/init.sh
18
init/init.sh
@@ -14,11 +14,10 @@
|
||||
# kubesolo.cloudinit=<path> Path to cloud-init config
|
||||
# kubesolo.flags=<flags> Extra flags for KubeSolo binary
|
||||
|
||||
# Redirect ALL output to /dev/console for visibility during early boot.
|
||||
# This is temporary v0.3 ARM64 debugging — revert when generic ARM64 is stable.
|
||||
# Route early boot output to /dev/console — before switch_root the kernel may
|
||||
# not have a controlling tty, and some stages echo to stderr expecting it to
|
||||
# reach the serial console. This is a no-op once the staged init proper starts.
|
||||
exec >/dev/console 2>&1
|
||||
echo "[KSOLO-DBG] init.sh PID=$$ shell=$(readlink -f /proc/$$/exe 2>/dev/null || echo unknown)"
|
||||
echo "[KSOLO-DBG] uname=$(uname -a 2>&1)"
|
||||
|
||||
set -e
|
||||
|
||||
@@ -28,22 +27,11 @@ set -e
|
||||
# set up container root filesystems. To fix this, we copy the rootfs to a
|
||||
# tmpfs and switch_root to it. The sentinel file prevents infinite loops.
|
||||
if [ ! -f /etc/.switched_root ]; then
|
||||
echo "[KSOLO-DBG] entering switch_root block"
|
||||
echo "[KSOLO-DBG] mount proc..."
|
||||
mount -t proc proc /proc 2>/dev/null || true
|
||||
echo "[KSOLO-DBG] mount proc exit=$?"
|
||||
echo "[KSOLO-DBG] mount sysfs..."
|
||||
mount -t sysfs sysfs /sys 2>/dev/null || true
|
||||
echo "[KSOLO-DBG] mount sysfs exit=$?"
|
||||
echo "[KSOLO-DBG] mount devtmpfs..."
|
||||
mount -t devtmpfs devtmpfs /dev 2>/dev/null || true
|
||||
echo "[KSOLO-DBG] mount devtmpfs exit=$?"
|
||||
echo "[KSOLO-DBG] mkdir /mnt/newroot..."
|
||||
mkdir -p /mnt/newroot
|
||||
echo "[KSOLO-DBG] mkdir /mnt/newroot exit=$?"
|
||||
echo "[KSOLO-DBG] mount tmpfs /mnt/newroot..."
|
||||
mount -t tmpfs -o size=400M,mode=755 tmpfs /mnt/newroot
|
||||
echo "[KSOLO-DBG] mount tmpfs exit=$?"
|
||||
echo "[init] Copying rootfs to tmpfs..." >&2
|
||||
# Copy each top-level directory explicitly (BusyBox cp -ax on rootfs is broken)
|
||||
for d in bin sbin usr lib lib64 etc var opt; do
|
||||
|
||||
Reference in New Issue
Block a user