summaryrefslogtreecommitdiff
path: root/qemu.sh
diff options
context:
space:
mode:
authorAda Christine <adachristine18@gmail.com>2026-05-18 18:20:37 +0000
committerAda Christine <adachristine18@gmail.com>2026-05-18 18:20:37 +0000
commitc8a25997dae70b7083725ebaa030ff363134a191 (patch)
treeabf7c2cc6a91ec9a1cd8a4a4d661e428b86c5dfd /qemu.sh
parent9fbfc6e951e565ef98c49c1dcfc4b6a39514f17d (diff)
build and debug system
Diffstat (limited to 'qemu.sh')
-rwxr-xr-xqemu.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/qemu.sh b/qemu.sh
new file mode 100755
index 0000000..e901ff3
--- /dev/null
+++ b/qemu.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+
+BOOT_DIR=loader
+BOOT_FILE=${BOOT_DIR}/loader.efi
+
+SHIM_DIR=kc/boot
+SHIM_FILE=${SHIM_DIR}/efi.os
+
+CORE_DIR=kc/core
+CORE_FILE=${CORE_DIR}/kernel.os
+
+FIRMWARE_DIR=/usr/share/ovmf/x64
+FIRMWARE_FILE=${FIRMWARE_DIR}/OVMF_CODE.4m.fd
+FIRMWARE_VARS=${FIRMWARE_DIR}/OVMF_VARS.4m.fd
+
+INSTALL_PREFIX=adasoft/sophia
+
+make &&
+
+tempdir=$(mktemp -d) &&
+rundir=${tempdir}/run
+
+varsfile=${tempdir}/$(basename ${FIRMWARE_VARS})
+
+efidir=${rundir}/efi
+efibootdir=${efidir}/boot
+bootdir=${efidir}/adasoft/sophia
+bootfile=${efibootdir}/BOOTX64.EFI
+servdir=${rundir}/adasoft/sophia
+
+mkdir -p ${efidir} ${efibootdir} &&
+mkdir -p ${bootdir} ${servdir} &&
+
+cp ${FIRMWARE_VARS} ${varsfile} &&
+cp ${BOOT_FILE} ${bootdir} &&
+cp ${BOOT_FILE} ${bootfile} &&
+cp ${SHIM_FILE} ${servdir} &&
+cp ${CORE_FILE} ${servdir} &&
+
+qemu-system-x86_64 -d int \
+ -drive if=pflash,format=raw,unit=0,file=${FIRMWARE_FILE},readonly=on \
+ -drive if=pflash,format=raw,unit=1,file=${varsfile} \
+ -net none -drive file=fat:rw:${rundir} -monitor stdio \
+ -serial file:sophia.log -no-shutdown -no-reboot -s
+
+rm -rf ${tempdir}
+