diff options
author | Georg Pfuetzenreuter | 2022-01-10 15:23:48 +0100 |
---|---|---|
committer | Georg Pfuetzenreuter | 2022-01-10 15:23:48 +0100 |
commit | a2be10311173cef2c39da721b3e47888c379e7bc (patch) | |
tree | 405efc75721c8454a358dd10d43f9e68e260fc7f /scripts/sh | |
parent | 7bb88aaa661dc6756e862562c47368de11657f44 (diff) | |
download | system-a2be10311173cef2c39da721b3e47888c379e7bc.tar.gz system-a2be10311173cef2c39da721b3e47888c379e7bc.tar.bz2 system-a2be10311173cef2c39da721b3e47888c379e7bc.zip |
Init build-edk2-ovmf.sh
Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
Diffstat (limited to 'scripts/sh')
-rwxr-xr-x | scripts/sh/build-edk2-ovmf.sh | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/scripts/sh/build-edk2-ovmf.sh b/scripts/sh/build-edk2-ovmf.sh new file mode 100755 index 0000000..0a94487 --- /dev/null +++ b/scripts/sh/build-edk2-ovmf.sh @@ -0,0 +1,55 @@ +#!/bin/sh +# Created 10/01/2022 by Georg Pfuetzenreuter <georg@lysergic.dev> +# Simple script to clone and build the latest OVMF firmware +case "$1" in + "fork" ) repo_owner="tacerus" ;; + "upstream" ) repo_owner="tianocore" ;; + * ) echo "Specify repository owner (fork - tacerus or upstream - tianocore)." && exit 1 ;; +esac +dir="edk2-git-$repo_owner" +git clone "https://github.com/$repo_owner/edk2.git" "$dir" +cd "$dir" +git submodule init +git submodule update --recursive +set -- +. ./edksetup.sh +cat << 'EOF' > Conf/target.txt +ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc +TARGET = RELEASE +TARGET_ARCH = X64 +TOOL_CHAIN_CONF = Conf/tools_def.txt +TOOL_CHAIN_TAG = GCC5 +BUILD_RULE_CONF = Conf/build_rule.txt +EOF +sed \ + -e 's/DEFINE NETWORK_HTTP_BOOT_ENABLE = FALSE/DEFINE NETWORK_HTTP_BOOT_ENABLE = TRUE/' \ + -e 's/DEFINE NETWORK_ISCSI_ENABLE = TRUE/DEFINE NETWORK_ISCSI_ENABLE = FALSE/' \ + -e 's/DEFINE PVSCSI_ENABLE = TRUE/DEFINE PVSCSI_ENABLE = FALSE/' \ + -e 's/DEFINE MPT_SCSI_ENABLE = TRUE/DEFINE MPT_SCSI_ENABLE = FALSE/' \ + OvmfPkg/OvmfPkgX64.dsc > OvmfPkg/OvmfPkgX64.dsc.custom +cp OvmfPkg/OvmfPkgX64.dsc.custom OvmfPkg/OvmfPkgX64.dsc +sed \ + -e 's#\"-Werror\"#//\"-Werror\"#' \ + BaseTools/Source/C/BrotliCompress/brotli/BUILD > BaseTools/Source/C/BrotliCompress/brotli/BUILD.custom +cp BaseTools/Source/C/BrotliCompress/brotli/BUILD.custom BaseTools/Source/C/BrotliCompress/brotli/BUILD +sed \ + -e 's/-Werror//' \ + BaseTools/Source/C/Makefiles/header.makefile > BaseTools/Source/C/Makefiles/header.makefile.custom +cp BaseTools/Source/C/Makefiles/header.makefile.custom BaseTools/Source/C/Makefiles/header.makefile +make -j$(nproc) -C BaseTools/Source/C +build +if [ -f "Build/OvmfX64/RELEASE_GCC5/FV/OVMF.fd" ] +then + echo "OK, firmware is at:" + realpath "Build/OvmfX64/RELEASE_GCC5/FV/OVMF.fd" +else + echo "Failed, no firmware file." +fi +if [ -f "Build/OvmfX64/RELEASE_GCC5/FV/OVMF_VARS.fd" ] +then + echo "OK, var template is at:" + realpath "Build/OvmfX64/RELEASE_GCC5/FV/OVMF_VARS.fd" +else + echo "Failed, no vars file." +fi +echo "Done." |