Files
FoundryOS/scripts/run_release.sh
2025-02-27 22:58:10 +00:00

61 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Script originally written by zxq5, I added separate scripts to remove `jq` dependency.
script_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
source $script_dir/build.sh
# Error handling
set -e
trap 'echo -e "${RED}${BOLD}error${NC}: build failed" >&2' ERR
echo -e "${GREEN}${BOLD} Running kernel in release mode."
if [ $VM_MEMORY ]; then
vm_memory_flag="-m $VM_MEMORY"
else
vm_memory_flag="-m 2G"
fi
# Check if KVM is available
if [ "${KVM_FLAG:-enable}" = "disable" ]; then
warning "KVM acceleration disabled by user"
kvm_flag=""
elif [ -c "/dev/kvm" ] && [ -w "/dev/kvm" ]; then
info "KVM acceleration enabled"
kvm_flag="-enable-kvm"
else
warning "KVM acceleration not available (is kvm module loaded?)"
kvm_flag=""
fi
if [ $USE_LEGACY_BIOS ]; then
boot_flags=""
else
# Check for the presence of the OVMF firmware.
if [ ! -f $build_dir/RELEASEX64_OVMF_CODE.fd ]; then
info "Downloading OVMF UEFI firmware for QEMU"
info "To disable this, set USE_LEGACY_BIOS=1."
pushd $build_dir
curl https://retrage.github.io/edk2-nightly/bin/RELEASEX64_OVMF_CODE.fd -LO || error "failed to download OVMF firmware for UEFI"
curl https://retrage.github.io/edk2-nightly/bin/RELEASEX64_OVMF_VARS.fd -LO || error "failed to download OVMF firmware for UEFI"
popd
fi
boot_flags="-drive if=pflash,format=raw,readonly=on,file=$build_dir/RELEASEX64_OVMF_CODE.fd \
-drive if=pflash,format=raw,file=$build_dir/RELEASEX64_OVMF_VARS.fd"
fi
cd "$project_root"
qemu-system-x86_64 -M q35 \
${kvm_flag} \
-cdrom "$build_dir/image.iso" \
-boot d \
${vm_memory_flag} \
${serial_flags} \
-no-reboot \
${boot_flags}