Move qemu startup to its own script.

This causes us to reinstall and rebuild the image each time
we run qemu. This necessary now that we are loading files
from the disk because cmake makes it tricky (impossible?) to
have a command rely on a different target being "installed".

Because of this, updates to the teton executable were not being
picked up on the image.
This commit is contained in:
Drew Galbraith 2023-11-15 16:39:30 -08:00
parent 46d02e5eae
commit 0ced0032ff
2 changed files with 23 additions and 25 deletions

View File

@ -16,28 +16,3 @@ add_subdirectory(zion)
add_subdirectory(lib)
add_subdirectory(yunq)
add_subdirectory(sys)
# Use machine q35 to access PCI devices.
set(QEMU_CMD qemu-system-x86_64 -machine q35 -d guest_errors -m 1G -serial stdio -hda disk.img)
add_custom_command(
OUTPUT disk.img
COMMAND sudo sh ../scripts/build_image.sh disk.img
DEPENDS zion yellowstone denali victoriafalls
USES_TERMINAL
)
add_custom_target(qemu
COMMAND ${QEMU_CMD}
DEPENDS disk.img
USES_TERMINAL)
add_custom_target(qemu-dbg
COMMAND ${QEMU_CMD} -S -s
DEPENDS disk.img
USES_TERMINAL)
add_custom_target(qemu-int
COMMAND ${QEMU_CMD} -d int
DEPENDS disk.img
USES_TERMINAL)

23
scripts/qemu.sh Executable file
View File

@ -0,0 +1,23 @@
#! /bin/bash
set -e
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo $DIR
BUILD_DIR="${DIR}/../builddbg"
pushd $BUILD_DIR
ninja && ninja install
sudo sh ${DIR}/build_image.sh disk.img
# Use machine q35 to access PCI devices.
qemu-system-x86_64 -machine q35 -d guest_errors -m 1G -serial stdio -hda disk.img
popd
# Extra options to add to this script in the future.
# Debug opts: -S -s
# Interrupt opts: -d int