Skip to content

Commit

Permalink
edk2 change build script
Browse files Browse the repository at this point in the history
Signed-off-by: Nikita Korolev <[email protected]>
  • Loading branch information
universal-itengineer committed Jan 31, 2025
1 parent a467109 commit c7bee15
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 47 deletions.
136 changes: 91 additions & 45 deletions images/edk2-artifact/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,12 @@ EDK2_DIR="/${gitRepoName}-${edk2Branch}"
FIRMWARE="/FIRMWARE"

cp -f Logo.bmp $EDK2_DIR/MdeModulePkg/Logo/
echo "=== cd $EDK2_DIR ==="
cd $EDK2_DIR

echo "= pwd ="
pwd

mkdir -p ${FIRMWARE}

echo_dbg() {
Expand Down Expand Up @@ -110,8 +114,13 @@ OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D SMM_REQUIRE=TRUE"
OVMF_SB_FLAGS="${OVMF_SB_FLAGS} -D EXCLUDE_SHELL_FROM_FD=TRUE -D BUILD_SHELL=FALSE"

unset MAKEFLAGS
echo "run source edksetup.sh"
source edksetup.sh

ls -lah

. edksetup.sh
echo "build -h"
build -h

build_iso() {
dir="$1"
Expand Down Expand Up @@ -147,17 +156,46 @@ build_iso() {
-o "$ISO_IMAGE" "$UEFI_SHELL_IMAGE"
}

# build_ovmf() {
# local flags=$1
# local arch=$2
# local package=$3
# # Example:
# # build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc
# build "${flags}" -a "${arch}" -p "${package}"

# cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE.fd
# cp -p Build/OvmfX64/*/FV/OVMF_VARS.fd $FIRMWARE/OVMF_VARS.fd
# }
build_ovmf() {
echo_dbg "build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc"
build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc
cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE.fd
cp -p Build/OvmfX64/*/FV/OVMF_VARS.fd $FIRMWARE/OVMF_VARS.fd
}

build_ovmf_secboot() {
# Build with SB and SMM; exclude UEFI shell.
echo_dbg "build ${OVMF_4M_FLAGS} ${OVMF_SB_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc"
build ${OVMF_2M_FLAGS} ${OVMF_SB_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc
cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE.secboot.fd
}

build_ovmf_amdsev() {
# Build AmdSev and IntelTdx variants
touch OvmfPkg/AmdSev/Grub/grub.efi # dummy

echo_dbg "build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc"
build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc
cp -p Build/AmdSev/*/FV/OVMF.fd $FIRMWARE/OVMF.amdsev.fd

echo_dbg "build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc"
build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc
cp -p Build/IntelTdx/*/FV/OVMF.fd $FIRMWARE/OVMF.inteltdx.fd
}

build_shell() {
# build shell
echo_dbg "build shell"
build ${OVMF_4M_FLAGS} -a X64 -p ShellPkg/ShellPkg.dsc
build ${OVMF_4M_FLAGS} -a IA32 -p ShellPkg/ShellPkg.dsc

# build ovmf (x64) shell iso with EnrollDefaultKeys
#cp Build/Ovmf3264/*/X64/Shell.efi $FIRMWARE/
cp -p Build/Shell/*/X64/ShellPkg/Application/Shell/Shell/OUTPUT/Shell.efi $FIRMWARE/
cp -p Build/OvmfX64/*/X64/EnrollDefaultKeys.efi $FIRMWARE/
}


# Build with neither SB nor SMM; include UEFI shell.
# mkdir -p OVMF
Expand All @@ -166,15 +204,15 @@ build_iso() {
# cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE.fd
# cp -p Build/OvmfX64/*/FV/OVMF_VARS.fd $FIRMWARE/OVMF_VARS.fd

# Build 4MB with neither SB nor SMM; include UEFI shell.
echo_dbg "build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc"
build_4m() {
build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc
cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE.fd
cp -p Build/OvmfX64/*/FV/OVMF_VARS.fd $FIRMWARE/OVMF_VARS.fd
}
# # Build 4MB with neither SB nor SMM; include UEFI shell.
# echo_dbg "build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc"
# build_4m() {
# build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc -s
# cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE.fd
# cp -p Build/OvmfX64/*/FV/OVMF_VARS.fd $FIRMWARE/OVMF_VARS.fd
# }

build_4m 2>&1 > /dev/null
# build_4m 2>&1 > /dev/null

# cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE_4M.fd
# cp -p Build/OvmfX64/*/FV/OVMF_VARS.fd $FIRMWARE/OVMF_VARS_4M.fd
Expand All @@ -184,42 +222,42 @@ build_4m 2>&1 > /dev/null
# build ${OVMF_2M_FLAGS} ${OVMF_SB_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc
# cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE.secboot.fd

# Build 4MB with SB and SMM; exclude UEFI shell.
echo_dbg "build ${OVMF_4M_FLAGS} ${OVMF_SB_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc"
build ${OVMF_4M_FLAGS} ${OVMF_SB_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc 2>&1 > /dev/null
cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE.secboot.fd
# cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE_4M.secboot.fd
# # Build 4MB with SB and SMM; exclude UEFI shell.
# echo_dbg "build ${OVMF_4M_FLAGS} ${OVMF_SB_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc"
# build ${OVMF_4M_FLAGS} ${OVMF_SB_FLAGS} -a X64 -p OvmfPkg/OvmfPkgX64.dsc 2>&1 > /dev/null
# cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE.secboot.fd
# # cp -p Build/OvmfX64/*/FV/OVMF_CODE.fd $FIRMWARE/OVMF_CODE_4M.secboot.fd

# Build AmdSev and IntelTdx variants
touch OvmfPkg/AmdSev/Grub/grub.efi # dummy
# # Build AmdSev and IntelTdx variants
# touch OvmfPkg/AmdSev/Grub/grub.efi # dummy

echo_dbg "build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc"
build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc 2>&1 > /dev/null
cp -p Build/AmdSev/*/FV/OVMF.fd $FIRMWARE/OVMF.amdsev.fd
# echo_dbg "build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc"
# build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc
# echo_dbg "build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc"
# build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc 2>&1 > /dev/null
# cp -p Build/AmdSev/*/FV/OVMF.fd $FIRMWARE/OVMF.amdsev.fd
# # echo_dbg "build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc"
# # build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/AmdSev/AmdSevX64.dsc
# # cp -p Build/AmdSev/*/FV/OVMF.fd $FIRMWARE/OVMF.amdsev.fd

echo_dbg "build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc"
build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc 2>&1 > /dev/null
cp -p Build/IntelTdx/*/FV/OVMF.fd $FIRMWARE/OVMF.inteltdx.fd
# echo_dbg "build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc"
# build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc
# echo_dbg "build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc"
# build ${OVMF_4M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc 2>&1 > /dev/null
# cp -p Build/IntelTdx/*/FV/OVMF.fd $FIRMWARE/OVMF.inteltdx.fd
# # echo_dbg "build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc"
# # build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/IntelTdx/IntelTdxX64.dsc
# # cp -p Build/IntelTdx/*/FV/OVMF.fd $FIRMWARE/OVMF.inteltdx.fd

# build shell
echo_dbg "build shell"
build ${OVMF_4M_FLAGS} -a X64 -p ShellPkg/ShellPkg.dsc 2>&1 > /dev/null
build ${OVMF_4M_FLAGS} -a IA32 -p ShellPkg/ShellPkg.dsc 2>&1 > /dev/null
# build ${OVMF_2M_FLAGS} -a X64 -p ShellPkg/ShellPkg.dsc
# build ${OVMF_2M_FLAGS} -a IA32 -p ShellPkg/ShellPkg.dsc
# # build shell
# echo_dbg "build shell"
# build ${OVMF_4M_FLAGS} -a X64 -p ShellPkg/ShellPkg.dsc 2>&1 > /dev/null
# build ${OVMF_4M_FLAGS} -a IA32 -p ShellPkg/ShellPkg.dsc 2>&1 > /dev/null
# # build ${OVMF_2M_FLAGS} -a X64 -p ShellPkg/ShellPkg.dsc
# # build ${OVMF_2M_FLAGS} -a IA32 -p ShellPkg/ShellPkg.dsc

# build ovmf (x64) shell iso with EnrollDefaultKeys
#cp Build/Ovmf3264/*/X64/Shell.efi $FIRMWARE/
cp -p Build/Shell/*/X64/ShellPkg/Application/Shell/Shell/OUTPUT/Shell.efi $FIRMWARE/
cp -p Build/OvmfX64/*/X64/EnrollDefaultKeys.efi $FIRMWARE/
# cp -p Build/Shell/*/X64/ShellPkg/Application/Shell/Shell/OUTPUT/Shell.efi $FIRMWARE/
# cp -p Build/OvmfX64/*/X64/EnrollDefaultKeys.efi $FIRMWARE/


build_iso $FIRMWARE 2>&1 > /dev/null

enroll() {
virt-fw-vars --input $FIRMWARE/OVMF_VARS.fd \
Expand Down Expand Up @@ -252,8 +290,16 @@ no_enroll() {
cp -p $FIRMWARE/OVMF.inteltdx.fd $FIRMWARE/OVMF.inteltdx.secboot.fd
}

build_ovmf 2>&1 > /dev/null
build_ovmf_secboot 2>&1 > /dev/null
build_ovmf_amdsev 2>&1 > /dev/null
build_shell 2>&1 > /dev/null

build_iso $FIRMWARE
no_enroll



# build microvm
# echo_dbg "build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/Microvm/MicrovmX64.dsc"
# build ${OVMF_2M_FLAGS} -a X64 -p OvmfPkg/Microvm/MicrovmX64.dsc
Expand Down
4 changes: 2 additions & 2 deletions images/edk2-artifact/werf.inc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ git:
- add: /images/{{ $.ImageName }}
to: /FIRMWARE
includePaths:
- '*.bin'
- 'DBXUpdate-20230509.x64.bin'
stageDependencies:
setup:
- '*.bin'
- 'DBXUpdate-20230509.x64.bin'
shell:
beforeInstall:
- |
Expand Down

0 comments on commit c7bee15

Please sign in to comment.