Artemis Milestone 1 complete: QMP socket added to all three QEMU
launch targets, three-arch verified Makefile.starkernel: added -qmp unix:$QMP_SOCK,server=on,wait=off to the amd64/aarch64/riscv64 qemu targets, matching the existing serial chardev socket pattern exactly (same discoverability, same cleanup on exit). Verified on all three architectures: QMP greeting arrives on connect, qmp_capabilities handshake succeeds, device_add/device_del round-trip correctly. Real finding surfaced during device_add testing (recorded in FABRIC-2.md's punch list for Milestone 2): the q35 machine's pcie.0 root bus doesn't support runtime PCI hotplug without a bridge -- Milestone 2's qemu-xhci USB controller needs to be present in the static launch command, with USB devices hot-attached to its bus at runtime, not the controller itself hot-added. Also noted: g_doe_log_enabled's default-on per-tick heartbeat CSV export was briefly mistaken for a hang during aarch64 verification -- it isn't one, just a large volume of routine diagnostic output before reaching ok>. Not changing the source default; adopting HB-OFF immediately after boot as the working pattern for the rest of this punch list's dev work. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
0008f19bbb
commit
3d91015659
+12
-3
@@ -735,8 +735,10 @@ ifeq ($(ARCH),amd64)
|
||||
LOG=$$SESSION/amd64/qemu-amd64-$$TS.log; \
|
||||
CSV=$(DOE_RUNS_DIR)/doe-amd64-$$TS.csv; \
|
||||
SERIAL_SOCK=$(BUILD_DIR)/qemu-serial-amd64-$$TS.sock; \
|
||||
QMP_SOCK=$(BUILD_DIR)/qemu-qmp-amd64-$$TS.sock; \
|
||||
echo "=== Launching QEMU (amd64) ==="; \
|
||||
echo " Serial log: $$LOG"; \
|
||||
echo " QMP socket: $$QMP_SOCK"; \
|
||||
echo " (interactive — close the window or QEMU monitor 'quit' to exit)"; \
|
||||
echo ""; \
|
||||
touch $$LOG; \
|
||||
@@ -753,10 +755,11 @@ ifeq ($(ARCH),amd64)
|
||||
-device virtio-blk-pci,drive=artdisk \
|
||||
-chardev socket,id=cserial,path=$$SERIAL_SOCK,server=on,wait=off,logfile=$$LOG \
|
||||
-serial chardev:cserial \
|
||||
-qmp unix:$$QMP_SOCK,server=on,wait=off \
|
||||
-display $(QEMU_DISPLAY) \
|
||||
-no-reboot; \
|
||||
kill $$TAILPID 2>/dev/null; wait $$TAILPID 2>/dev/null || true; \
|
||||
rm -f $$SERIAL_SOCK; \
|
||||
rm -f $$SERIAL_SOCK $$QMP_SOCK; \
|
||||
echo ""; \
|
||||
echo "=== Serial log: $$LOG ==="; \
|
||||
echo "=== Extracting DOE CSV ==="; \
|
||||
@@ -796,9 +799,11 @@ else ifeq ($(ARCH),aarch64)
|
||||
LOG=$$SESSION/aarch64/qemu-aarch64-$$TS.log; \
|
||||
CSV=$(DOE_RUNS_DIR)/doe-aarch64-$$TS.csv; \
|
||||
SERIAL_SOCK=$(BUILD_DIR)/qemu-serial-aarch64-$$TS.sock; \
|
||||
QMP_SOCK=$(BUILD_DIR)/qemu-qmp-aarch64-$$TS.sock; \
|
||||
echo "=== Launching QEMU (aarch64) ==="; \
|
||||
echo " ISO: $(QEMU_ISO)"; \
|
||||
echo " Serial log: $$LOG"; \
|
||||
echo " QMP socket: $$QMP_SOCK"; \
|
||||
echo " (interactive — close the window or QEMU monitor 'quit' to exit)"; \
|
||||
echo ""; \
|
||||
touch $$LOG; \
|
||||
@@ -814,12 +819,13 @@ else ifeq ($(ARCH),aarch64)
|
||||
-device ramfb \
|
||||
-chardev socket,id=cserial,path=$$SERIAL_SOCK,server=on,wait=off,logfile=$$LOG \
|
||||
-serial chardev:cserial \
|
||||
-qmp unix:$$QMP_SOCK,server=on,wait=off \
|
||||
-display $(QEMU_DISPLAY) \
|
||||
-m 4096 \
|
||||
-no-reboot \
|
||||
-d guest_errors; \
|
||||
kill $$TAILPID 2>/dev/null; wait $$TAILPID 2>/dev/null || true; \
|
||||
rm -f $$SERIAL_SOCK; \
|
||||
rm -f $$SERIAL_SOCK $$QMP_SOCK; \
|
||||
echo ""; \
|
||||
echo "=== Serial log: $$LOG ==="; \
|
||||
echo "=== Extracting DOE CSV ==="; \
|
||||
@@ -874,8 +880,10 @@ else ifeq ($(ARCH),riscv64)
|
||||
LOG=$$SESSION/riscv64/qemu-riscv64-$$TS.log; \
|
||||
CSV=$(DOE_RUNS_DIR)/doe-riscv64-$$TS.csv; \
|
||||
SERIAL_SOCK=$(BUILD_DIR)/qemu-serial-riscv64-$$TS.sock; \
|
||||
QMP_SOCK=$(BUILD_DIR)/qemu-qmp-riscv64-$$TS.sock; \
|
||||
echo "=== Launching QEMU (riscv64) ==="; \
|
||||
echo " Serial log: $$LOG"; \
|
||||
echo " QMP socket: $$QMP_SOCK"; \
|
||||
echo " (interactive — close the window or QEMU monitor 'quit' to exit)"; \
|
||||
echo ""; \
|
||||
touch $$LOG; \
|
||||
@@ -894,11 +902,12 @@ else ifeq ($(ARCH),riscv64)
|
||||
-device ramfb \
|
||||
-chardev socket,id=cserial,path=$$SERIAL_SOCK,server=on,wait=off,logfile=$$LOG \
|
||||
-serial chardev:cserial \
|
||||
-qmp unix:$$QMP_SOCK,server=on,wait=off \
|
||||
-display $(QEMU_DISPLAY) \
|
||||
-no-reboot \
|
||||
-d guest_errors; \
|
||||
kill $$TAILPID 2>/dev/null; wait $$TAILPID 2>/dev/null || true; \
|
||||
rm -f $$SERIAL_SOCK; \
|
||||
rm -f $$SERIAL_SOCK $$QMP_SOCK; \
|
||||
echo ""; \
|
||||
echo "=== Serial log: $$LOG ==="; \
|
||||
echo "=== Extracting DOE CSV ==="; \
|
||||
|
||||
Reference in New Issue
Block a user