Update boot.sh
This commit is contained in:
parent
9c8b65c533
commit
30372ee076
1 changed files with 56 additions and 61 deletions
45
src/boot.sh
45
src/boot.sh
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue