1
2
3
4
5
git clone https://github.com/tianocore/edk2.git
cd edk2
git submodule update --init CryptoPkg/Library/OpensslLib/openssl
source edksetup.sh
make -C BaseTools

vim Conf/target.txt

1
2
3
ACTIVE_PLATFORM       = OvmfPkg/OvmfPkgX64.dsc
TARGET_ARCH = X64
TOOL_CHAIN_TAG = GCC5
1
build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE

The binary is located at Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd after a successful build.

The source edksetup.sh step is needed for compilation every time a shell is created.

Actually, In qemu project:

1
2
kvm@kvm:~/qemu$ git submodule  | grep edk2
+5859bf8fa17ef20bff1a4e89cd63ce473600ac80 roms/edk2 (edk2-stable201903-2380-g5859bf8fa1)

OVMF project is the submodule of QEMU.