compile_efi_firmware_http_boot
Table of Contents
UEFI HTTP Boot (instead of TFTP)
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:
Compile EDK II
- Install required packages:
sudo apt-get install build-essential uuid-dev iasl git nasm
- Clone git repository:
mkdir ~/src cd ~/src git clone https://github.com/tianocore/edk2
- Compile build tools:
cd ~/src/edk2 make -C BaseTools . edksetup.sh
- Build the EDK II BaseTools:
cd .. make -C edk2/BaseTools
- Setup build shell environment
cd ~/src/edk2 export EDK_TOOLS_PATH=$HOME/src/edk2/BaseTools . edksetup.sh BaseTools
- Modify config
Conf/target.txt
ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc TARGET_ARCH = X64 TARGET = NOOPT TOOL_CHAIN_TAG = GCC5
- Enable HTTP boot in
OvmfPkg/OvmfPkgX64.dsc
DEFINE HTTP_BOOT_ENABLE = TRUE
- Build:
build
- After successful compilation, the binary can be found in
~/src/edk2/Build/OvmfX64/NOOPT_GCC5/FV/
OVMF_CODE.fd Binary OVMF_VARS.fd Variable store
Test with qemu
- Install qemu:
sudo apt-get install qemu-system-x86
- Start VM with EFI firmware:
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
compile_efi_firmware_http_boot.txt · Last modified: 2021/10/09 15:14 by 127.0.0.1