fix(arje): saneo ente-→arje- en scripts y seeds de boot
1#!/usr/bin/env bash
2# run-arje-qemu.sh — bootea el initrd de arje bajo qemu-system-x86_64.
3#
4# Uso:
5# scripts/run-arje-qemu.sh [initrd] [kernel]
6#
7# Defaults:
8# initrd out/arje.initrd.cpio.gz
9# kernel $(uname -r) o /boot/vmlinuz-* (primer match)
10#
11# Env:
12# QEMU binario de qemu (default: qemu-system-x86_64)
13# KERNEL_CMD extra cmdline kernel (se concatena al fijo)
14# MEM RAM en MB (default: 1024)
15# SMP CPUs virtuales (default: 2)
16# ACCEL kvm|tcg (default: kvm si /dev/kvm existe)
17# HEADLESS 1 → sin display (consola en stdio)
18#
19# El initrd contiene su propio /init → arje-zero corre como PID 1 real.
20
21set -euo pipefail
22
23INITRD="${1:-out/arje.initrd.cpio.gz}"
24KERNEL="${2:-}"
25QEMU="${QEMU:-qemu-system-x86_64}"
26MEM="${MEM:-1024}"
27SMP="${SMP:-2}"
28KERNEL_CMD="${KERNEL_CMD:-}"
29
30SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
31REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
32cd "$REPO_DIR"
33
34if [ ! -f "$INITRD" ]; then
35 echo "[run-qemu] initrd no encontrado: $INITRD" >&2
36 echo " Generalo primero con: scripts/build-arje-initrd.sh" >&2
37 exit 2
38fi
39
40if [ -z "$KERNEL" ]; then
41 # En orden: /boot/vmlinuz-$(uname -r), primer vmlinuz-*, /boot/bzImage.
42 for cand in "/boot/vmlinuz-$(uname -r)" /boot/vmlinuz-* /boot/bzImage*; do
43 if [ -f "$cand" ]; then KERNEL="$cand"; break; fi
44 done
45fi
46
47if [ -z "$KERNEL" ] || [ ! -f "$KERNEL" ]; then
48 echo "[run-qemu] kernel no encontrado." >&2
49 echo " Pasalo como 2do arg o instalá linux-image-amd64." >&2
50 echo " También podés bajar uno: " >&2
51 echo " wget https://kernel.ubuntu.com/...vmlinuz" >&2
52 exit 3
53fi
54
55# KVM si está disponible.
56ACCEL="${ACCEL:-}"
57if [ -z "$ACCEL" ]; then
58 if [ -e /dev/kvm ] && [ -r /dev/kvm ] && [ -w /dev/kvm ]; then
59 ACCEL="kvm"
60 else
61 ACCEL="tcg"
62 fi
63fi
64
65DISPLAY_ARGS=()
66if [ "${HEADLESS:-0}" = "1" ]; then
67 DISPLAY_ARGS+=( -nographic -serial mon:stdio )
68 KERNEL_CMD="console=ttyS0,115200 $KERNEL_CMD"
69else
70 DISPLAY_ARGS+=( -nographic -serial mon:stdio )
71 KERNEL_CMD="console=ttyS0,115200 $KERNEL_CMD"
72fi
73
74CMDLINE="rdinit=/init panic=10 loglevel=4 $KERNEL_CMD"
75
76echo "[run-qemu] kernel: $KERNEL"
77echo "[run-qemu] initrd: $INITRD ($(du -h "$INITRD" | cut -f1))"
78echo "[run-qemu] accel: $ACCEL"
79echo "[run-qemu] mem: ${MEM}M, smp: $SMP"
80echo "[run-qemu] cmdline: $CMDLINE"
81echo "[run-qemu] (Ctrl-A X en stdio mode para salir)"
82
83exec "$QEMU" \
84 -accel "$ACCEL" \
85 -m "$MEM" -smp "$SMP" \
86 -kernel "$KERNEL" \
87 -initrd "$INITRD" \
88 -append "$CMDLINE" \
89 "${DISPLAY_ARGS[@]}" \
90 -no-reboot