make qemu: drop auto-kill/DOE-inject wait loop, run interactively
The qemu target used to poll the serial log for ok>/zuse)ok>, then unconditionally kill the VM (optionally injecting EXEC-DOE first) — a DoE-campaign automation shape that also fired during plain interactive use, cutting the session out from under you the moment the prompt appeared. All three arch branches (amd64/aarch64/riscv64) now just run qemu-system-* in the foreground and block until it's closed manually; serial logging to logs/ and DoE CSV extraction on exit are unchanged. Also includes BLOCK_MAP.md/artemis.img/amd64.csv regenerated by the qemu-esp test run, and that run's log/CSV artifacts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
59458a0a16
commit
2822e52ea8
+6
-72
@@ -737,7 +737,7 @@ ifeq ($(ARCH),amd64)
|
||||
SERIAL_SOCK=$(BUILD_DIR)/qemu-serial-amd64-$$TS.sock; \
|
||||
echo "=== Launching QEMU (amd64) ==="; \
|
||||
echo " Serial log: $$LOG"; \
|
||||
echo " (exits when EXEC-DOE completes)"; \
|
||||
echo " (interactive — close the window or QEMU monitor 'quit' to exit)"; \
|
||||
echo ""; \
|
||||
touch $$LOG; \
|
||||
tail -n +1 -f $$LOG & TAILPID=$$!; \
|
||||
@@ -754,29 +754,7 @@ ifeq ($(ARCH),amd64)
|
||||
-chardev socket,id=cserial,path=$$SERIAL_SOCK,server=on,wait=off,logfile=$$LOG \
|
||||
-serial chardev:cserial \
|
||||
-display $(QEMU_DISPLAY) \
|
||||
-no-reboot & QPID=$$!; \
|
||||
DEADLINE=$$(( $$(date +%s) + 43200 )); \
|
||||
echo " Waiting for ok> / zuse)ok> prompt..."; \
|
||||
while ! grep -qE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null; do \
|
||||
[ $$(date +%s) -ge $$DEADLINE ] && echo " TIMEOUT waiting for ok>" && break; \
|
||||
sleep 1; \
|
||||
done; \
|
||||
if grep -qE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null; then \
|
||||
if [ "$(DOE_INJECT)" = "1" ]; then \
|
||||
echo " ok>/zuse)ok> detected — injecting EXEC-DOE..."; \
|
||||
sleep 0.5; \
|
||||
printf '$(DOE_SEED) $(DOE_REPS) EXEC-DOE\n' | socat - UNIX-CONNECT:$$SERIAL_SOCK 2>/dev/null || true; \
|
||||
echo " Waiting for DoE to complete..."; \
|
||||
DEADLINE2=$$(( $$(date +%s) + 14400 )); \
|
||||
while [ "$$(grep -cE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null)" -lt 3 ]; do \
|
||||
[ $$(date +%s) -ge $$DEADLINE2 ] && echo " TIMEOUT waiting for DoE" && break; \
|
||||
sleep 1; \
|
||||
done; \
|
||||
else \
|
||||
echo " ok>/zuse)ok> detected — DOE_INJECT=0, skipping EXEC-DOE injection."; \
|
||||
fi; \
|
||||
fi; \
|
||||
kill $$QPID 2>/dev/null; wait $$QPID 2>/dev/null || true; \
|
||||
-no-reboot; \
|
||||
kill $$TAILPID 2>/dev/null; wait $$TAILPID 2>/dev/null || true; \
|
||||
rm -f $$SERIAL_SOCK; \
|
||||
echo ""; \
|
||||
@@ -821,7 +799,7 @@ else ifeq ($(ARCH),aarch64)
|
||||
echo "=== Launching QEMU (aarch64) ==="; \
|
||||
echo " ISO: $(QEMU_ISO)"; \
|
||||
echo " Serial log: $$LOG"; \
|
||||
echo " (exits when EXEC-DOE completes)"; \
|
||||
echo " (interactive — close the window or QEMU monitor 'quit' to exit)"; \
|
||||
echo ""; \
|
||||
touch $$LOG; \
|
||||
tail -n +1 -f $$LOG & TAILPID=$$!; \
|
||||
@@ -839,29 +817,7 @@ else ifeq ($(ARCH),aarch64)
|
||||
-display $(QEMU_DISPLAY) \
|
||||
-m 2048 \
|
||||
-no-reboot \
|
||||
-d guest_errors & QPID=$$!; \
|
||||
DEADLINE=$$(( $$(date +%s) + 43200 )); \
|
||||
echo " Waiting for ok> / zuse)ok> prompt..."; \
|
||||
while ! grep -qE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null; do \
|
||||
[ $$(date +%s) -ge $$DEADLINE ] && echo " TIMEOUT waiting for ok>" && break; \
|
||||
sleep 1; \
|
||||
done; \
|
||||
if grep -qE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null; then \
|
||||
if [ "$(DOE_INJECT)" = "1" ]; then \
|
||||
echo " ok>/zuse)ok> detected — injecting EXEC-DOE..."; \
|
||||
sleep 0.5; \
|
||||
printf '$(DOE_SEED) $(DOE_REPS) EXEC-DOE\n' | socat - UNIX-CONNECT:$$SERIAL_SOCK 2>/dev/null || true; \
|
||||
echo " Waiting for DoE to complete..."; \
|
||||
DEADLINE2=$$(( $$(date +%s) + 14400 )); \
|
||||
while [ "$$(grep -cE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null)" -lt 3 ]; do \
|
||||
[ $$(date +%s) -ge $$DEADLINE2 ] && echo " TIMEOUT waiting for DoE" && break; \
|
||||
sleep 1; \
|
||||
done; \
|
||||
else \
|
||||
echo " ok>/zuse)ok> detected — DOE_INJECT=0, skipping EXEC-DOE injection."; \
|
||||
fi; \
|
||||
fi; \
|
||||
kill $$QPID 2>/dev/null; wait $$QPID 2>/dev/null || true; \
|
||||
-d guest_errors; \
|
||||
kill $$TAILPID 2>/dev/null; wait $$TAILPID 2>/dev/null || true; \
|
||||
rm -f $$SERIAL_SOCK; \
|
||||
echo ""; \
|
||||
@@ -920,7 +876,7 @@ else ifeq ($(ARCH),riscv64)
|
||||
SERIAL_SOCK=$(BUILD_DIR)/qemu-serial-riscv64-$$TS.sock; \
|
||||
echo "=== Launching QEMU (riscv64) ==="; \
|
||||
echo " Serial log: $$LOG"; \
|
||||
echo " (exits when EXEC-DOE completes)"; \
|
||||
echo " (interactive — close the window or QEMU monitor 'quit' to exit)"; \
|
||||
echo ""; \
|
||||
touch $$LOG; \
|
||||
tail -n +1 -f $$LOG & TAILPID=$$!; \
|
||||
@@ -940,29 +896,7 @@ else ifeq ($(ARCH),riscv64)
|
||||
-serial chardev:cserial \
|
||||
-display $(QEMU_DISPLAY) \
|
||||
-no-reboot \
|
||||
-d guest_errors & QPID=$$!; \
|
||||
DEADLINE=$$(( $$(date +%s) + 43200 )); \
|
||||
echo " Waiting for ok> / zuse)ok> prompt..."; \
|
||||
while ! grep -qE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null; do \
|
||||
[ $$(date +%s) -ge $$DEADLINE ] && echo " TIMEOUT waiting for ok>" && break; \
|
||||
sleep 1; \
|
||||
done; \
|
||||
if grep -qE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null; then \
|
||||
if [ "$(DOE_INJECT)" = "1" ]; then \
|
||||
echo " ok>/zuse)ok> detected — injecting EXEC-DOE..."; \
|
||||
sleep 0.5; \
|
||||
printf '$(DOE_SEED) $(DOE_REPS) EXEC-DOE\n' | socat - UNIX-CONNECT:$$SERIAL_SOCK 2>/dev/null || true; \
|
||||
echo " Waiting for DoE to complete..."; \
|
||||
DEADLINE2=$$(( $$(date +%s) + 14400 )); \
|
||||
while [ "$$(grep -cE '\[Hera\].*(zuse\))?ok>' $$LOG 2>/dev/null)" -lt 3 ]; do \
|
||||
[ $$(date +%s) -ge $$DEADLINE2 ] && echo " TIMEOUT waiting for DoE" && break; \
|
||||
sleep 1; \
|
||||
done; \
|
||||
else \
|
||||
echo " ok>/zuse)ok> detected — DOE_INJECT=0, skipping EXEC-DOE injection."; \
|
||||
fi; \
|
||||
fi; \
|
||||
kill $$QPID 2>/dev/null; wait $$QPID 2>/dev/null || true; \
|
||||
-d guest_errors; \
|
||||
kill $$TAILPID 2>/dev/null; wait $$TAILPID 2>/dev/null || true; \
|
||||
rm -f $$SERIAL_SOCK; \
|
||||
echo ""; \
|
||||
|
||||
Reference in New Issue
Block a user