This how-to is based on Debian 9 and will result in a compiled EFI firmware binary, capable of booting over HTTP instead of TFTP.
New systems that support UEFI 2.5 and up (HPE, Lenovo) will be able to boot over HTTP(S). Compared to TFTP, HTTP is faster, can transfer much larger files and can be encrypted (TLS).
Documentation:
sudo apt-get install build-essential uuid-dev iasl git nasm
mkdir ~/src cd ~/src git clone https://github.com/tianocore/edk2
cd ~/src/edk2 make -C BaseTools . edksetup.sh
cd .. make -C edk2/BaseTools
cd ~/src/edk2 export EDK_TOOLS_PATH=$HOME/src/edk2/BaseTools . edksetup.sh BaseTools
Conf/target.txt
ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc TARGET_ARCH = X64 TARGET = NOOPT TOOL_CHAIN_TAG = GCC5
OvmfPkg/OvmfPkgX64.dsc
DEFINE HTTP_BOOT_ENABLE = TRUE
build
~/src/edk2/Build/OvmfX64/NOOPT_GCC5/FV/
OVMF_CODE.fd Binary OVMF_VARS.fd Variable store
sudo apt-get install qemu-system-x86
qemu-system-x86_64 \ -drive if=pflash,format=raw,readonly,file=OVMF_CODE.fd \ -drive if=pflash,format=raw,file=OVMF_VARS.fd \ -enable-kvm \ -m 1G \ -monitor stdio
Press ESC at the logo
Go to Boot Manager
Select UEFI HTTPv4