Update boot.sh

This commit is contained in:
Kroese 2024-02-02 16:17:26 +01:00 committed by GitHub
parent 9c8b65c533
commit 30372ee076
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3,8 +3,8 @@ set -Eeuo pipefail
# Docker environment variables # Docker environment variables
: "${TPM:="Y"}" # Enable TPM : "${TPM:="Y"}" # Enable TPM
: "${BOOT_MODE:="legacy"}" # Boot mode : "${BIOS:=""}" # Bios file
: "${BIOS:="QEMU,VGA.bin"}" # Bios file : "${BOOT_MODE:="uefi"}" # Boot mode
SECURE="" SECURE=""
DIR="/usr/share/qemu" DIR="/usr/share/qemu"
@ -23,46 +23,43 @@ case "${BOOT_MODE,,}" in
ROM="AAVMF_CODE.ms.fd" ROM="AAVMF_CODE.ms.fd"
VARS="AAVMF_VARS.ms.fd" VARS="AAVMF_VARS.ms.fd"
;; ;;
windows_legacy)
USB="usb-ehci,id=ehci"
;;
legacy)
SECURE=""
;;
*) *)
info "Unknown boot mode '${BOOT_MODE}', defaulting to 'legacy'" info "Unknown boot mode '${BOOT_MODE}', defaulting to 'uefi'"
BOOT_MODE="legacy" BOOT_MODE="uefi"
ROM="AAVMF_CODE.fd"
VARS="AAVMF_VARS.fd"
;; ;;
esac esac
if [[ "${BOOT_MODE,,}" == "legacy" ]] || [[ "${BOOT_MODE,,}" == "windows_legacy" ]]; then if [ -n "$BIOS"]; then
BOOT_OPTS="$BOOT_OPTS -bios $DIR/$BIOS" BOOT_OPTS="$BOOT_OPTS -bios $DIR/$BIOS"
return 0
else fi
AAVMF="/usr/share/AAVMF/" AAVMF="/usr/share/AAVMF/"
DEST="$STORAGE/${BOOT_MODE,,}" DEST="$STORAGE/${BOOT_MODE,,}"
if [ ! -f "$DEST.rom" ]; then if [ ! -f "$DEST.rom" ]; then
[ ! -f "$AAVMF/$ROM" ] && error "UEFI boot file ($AAVMF/$ROM) not found!" && exit 44 [ ! -f "$AAVMF/$ROM" ] && error "UEFI boot file ($AAVMF/$ROM) not found!" && exit 44
cp "$AAVMF/$ROM" "$DEST.rom" cp "$AAVMF/$ROM" "$DEST.rom"
fi fi
if [ ! -f "$DEST.vars" ]; then if [ ! -f "$DEST.vars" ]; then
[ ! -f "$AAVMF/$VARS" ] && error "UEFI vars file ($AAVMF/$VARS) not found!" && exit 45 [ ! -f "$AAVMF/$VARS" ] && error "UEFI vars file ($AAVMF/$VARS) not found!" && exit 45
cp "$AAVMF/$VARS" "$DEST.vars" cp "$AAVMF/$VARS" "$DEST.vars"
fi fi
if [[ "${BOOT_MODE,,}" != "uefi" ]]; then if [[ "${BOOT_MODE,,}" != "uefi" ]]; then
SECURE=",smm=on" SECURE=",smm=on"
BOOT_OPTS="$BOOT_OPTS -global driver=cfi.pflash01,property=secure,value=on" BOOT_OPTS="$BOOT_OPTS -global driver=cfi.pflash01,property=secure,value=on"
fi fi
BOOT_OPTS="$BOOT_OPTS -drive file=$DEST.rom,if=pflash,unit=0,format=raw,readonly=on" BOOT_OPTS="$BOOT_OPTS -drive file=$DEST.rom,if=pflash,unit=0,format=raw,readonly=on"
BOOT_OPTS="$BOOT_OPTS -drive file=$DEST.vars,if=pflash,unit=1,format=raw" BOOT_OPTS="$BOOT_OPTS -drive file=$DEST.vars,if=pflash,unit=1,format=raw"
if [[ "${BOOT_MODE,,}" == "windows" ]]; then if [[ "${BOOT_MODE,,}" == "windows" ]]; then
BOOT_OPTS="$BOOT_OPTS -global kvm-pit.lost_tick_policy=discard -global ICH9-LPC.disable_s3=1" BOOT_OPTS="$BOOT_OPTS -global kvm-pit.lost_tick_policy=discard -global ICH9-LPC.disable_s3=1"
@ -98,8 +95,6 @@ else
fi fi
fi fi
fi
fi fi
return 0 return 0