From 47ea8cc0e694b6db07202474ea0ec60d1207c427 Mon Sep 17 00:00:00 2001 From: Kroese Date: Fri, 2 Feb 2024 18:21:07 +0100 Subject: [PATCH] Update boot.sh --- src/boot.sh | 68 +++++++++++------------------------------------------ 1 file changed, 14 insertions(+), 54 deletions(-) diff --git a/src/boot.sh b/src/boot.sh index 4c8ab02..c42ea7b 100644 --- a/src/boot.sh +++ b/src/boot.sh @@ -2,7 +2,6 @@ set -Eeuo pipefail # Docker environment variables -: "${TPM:="Y"}" # Enable TPM : "${BIOS:=""}" # Bios file : "${BOOT_MODE:="uefi"}" # Boot mode @@ -33,63 +32,24 @@ esac if [ -n "$BIOS" ]; then BOOT_OPTS="$BOOT_OPTS -bios $DIR/$BIOS" - -else - - AAVMF="/usr/share/AAVMF/" - DEST="$STORAGE/${BOOT_MODE,,}" - - if [ ! -f "$DEST.rom" ]; then - [ ! -f "$AAVMF/$ROM" ] && error "UEFI boot file ($AAVMF/$ROM) not found!" && exit 44 - cp "$AAVMF/$ROM" "$DEST.rom" - fi - - if [ ! -f "$DEST.vars" ]; then - [ ! -f "$AAVMF/$VARS" ] && error "UEFI vars file ($AAVMF/$VARS) not found!" && exit 45 - cp "$AAVMF/$VARS" "$DEST.vars" - fi - - 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" + return 0 fi -if [[ "${BOOT_MODE,,}" == "windows" ]]; then +AAVMF="/usr/share/AAVMF/" +DEST="$STORAGE/${BOOT_MODE,,}" - BOOT_OPTS="$BOOT_OPTS -global kvm-pit.lost_tick_policy=discard -global ICH9-LPC.disable_s3=1" - - if [[ "$TPM" == [Yy1]* ]]; then - - rm -rf /run/shm/tpm - rm -f /var/run/tpm.pid - mkdir -p /run/shm/tpm - chmod 755 /run/shm/tpm - - if ! swtpm socket -t -d --tpmstate dir=/run/shm/tpm --ctrl type=unixio,path=/run/swtpm-sock --pid file=/var/run/tpm.pid --tpm2; then - error "Failed to start TPM emulator, reason: $?" && exit 19 - fi - - for (( i = 1; i < 20; i++ )); do - - [ -S "/run/swtpm-sock" ] && break - - if (( i % 10 == 0 )); then - echo "Waiting for TPM socket to become available..." - fi - - sleep 0.1 - - done - - if [ ! -S "/run/swtpm-sock" ]; then - TPM="N" - error "TPM socket not found? Disabling TPM support..." - else - BOOT_OPTS="$BOOT_OPTS -chardev socket,id=chrtpm,path=/run/swtpm-sock" - BOOT_OPTS="$BOOT_OPTS -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0" - fi - - fi +if [ ! -f "$DEST.rom" ]; then + [ ! -f "$AAVMF/$ROM" ] && error "UEFI boot file ($AAVMF/$ROM) not found!" && exit 44 + cp "$AAVMF/$ROM" "$DEST.rom" fi +if [ ! -f "$DEST.vars" ]; then + [ ! -f "$AAVMF/$VARS" ] && error "UEFI vars file ($AAVMF/$VARS) not found!" && exit 45 + cp "$AAVMF/$VARS" "$DEST.vars" +fi + +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" + return 0