#!/bin/bash

# SPDX-FileCopyrightText: 2023 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@kicksecure.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

set -x
set -e

## sudo apt install --no-install-recommends qemu-system-x86 qemu-system-gui ovmf

## If not installing qemu-system-x86, need to use
## -nographic \
## To avoid duplicate output from qemu which mixes console and serial output from grub:
## -chardev serial,id=idforserial,path=/dev/null \

OVMF_CODE="/usr/share/OVMF/OVMF_CODE_4M.ms.fd"
#OVMF_CODE="/usr/share/OVMF/OVMF_CODE.fd"
OVMF_VARS_ORIG="/usr/share/OVMF/OVMF_VARS_4M.ms.fd"
OVMF_VARS=~/grml-debootstraptestbin/efi-bios-vars.fd

if [ ! -e "${OVMF_VARS}" ]; then
  cp "${OVMF_VARS_ORIG}" "${OVMF_VARS}"
fi

qemu-system-x86_64 \
  -name test \
  -m 1024 \
  -object rng-random,filename=/dev/random,id=rng0 \
  -device virtio-rng-pci,rng=rng0 \
  -vga virtio \
  -machine q35,smm=on \
  -global driver=cfi.pflash01,property=secure,value=on \
  -drive if=pflash,format=raw,unit=0,file="${OVMF_CODE}",readonly=on \
  -drive if=pflash,format=raw,unit=1,file="${OVMF_VARS}" \
  -net none \
  -device virtio-rng-pci \
  -boot d \
  -cdrom ~/grml-debootstraptestbin/output.iso
  "$@"
