add efi shell so that chainloading multiple items can be tested

This commit is contained in:
2025-10-02 00:24:19 -07:00
parent b8e1d11bed
commit 6bf745946e
8 changed files with 78 additions and 31 deletions

View File

@@ -22,7 +22,19 @@ set -- "${@}" -smp 2 -m 4096
if [ "${NO_GRAPHICAL_BOOT}" = "1" ]; then
set -- "${@}" -nographic
else
set -- "${@}" -serial stdio -vga none -device "virtio-gpu,edid=on,xres=1024,yres=768"
set -- "${@}" \
-device virtio-serial-pci,id=vs0 \
-chardev stdio,id=stdio0 \
-device virtconsole,chardev=stdio0,id=console0
if [ "${TARGET_ARCH}" = "x86_64" ]; then
set -- "${@}" \
-vga std
else
set -- "${@}" \
-vga none \
-device "virtio-gpu,edid=on,xres=1024,yres=768"
fi
fi
rm -f "${FINAL_DIR}/ovmf-boot.fd"

View File

@@ -73,6 +73,7 @@ if [ "${SKIP_VM_BUILD}" != "1" ]; then
echo "[vm build] ${TARGET_ARCH} ${RUST_PROFILE}"
docker build --platform="${DOCKER_TARGET}" -t "${DOCKER_PREFIX}/sprout-ovmf-${TARGET_ARCH}:${DOCKER_TAG}" -f vm/Dockerfile.ovmf "${FINAL_DIR}"
copy_from_image "${DOCKER_PREFIX}/sprout-ovmf-${TARGET_ARCH}" "ovmf.fd" "${FINAL_DIR}/ovmf.fd"
copy_from_image "${DOCKER_PREFIX}/sprout-ovmf-${TARGET_ARCH}" "shell.efi" "${FINAL_DIR}/shell.efi"
fi
if [ "${SKIP_SPROUT_BUILD}" != "1" ]; then
@@ -84,6 +85,9 @@ if [ "${SKIP_SPROUT_BUILD}" != "1" ]; then
if [ -f "${FINAL_DIR}/kernel.efi" ]; then
cp "${FINAL_DIR}/kernel.efi" "${FINAL_DIR}/efi/EFI/BOOT/KERNEL.EFI"
fi
if [ -f "${FINAL_DIR}/shell.efi" ]; then
cp "${FINAL_DIR}/shell.efi" "${FINAL_DIR}/efi/EFI/BOOT/SHELL.EFI"
fi
cp "hack/configs/kernel.sprout.toml" "${FINAL_DIR}/efi/SPROUT.TOML"
fi

View File

@@ -1,2 +1,5 @@
[[modules]]
chainloader = { path = "\\EFI\\BOOT\\KERNEL.EFI" }
chainloader = { path = "\\EFI\\BOOT\\SHELL.EFI" }
[[modules]]
chainloader = { path = "\\EFI\\BOOT\\KERNEL.EFI", options = ["tty=hvc0"] }