The UEFI images can be build on FreeBSD-CURRENT/amd64. Install the following packages: bash git gmake gcc48 nasm python py27-sqlite3 1. Checkout the bhyve UDK2014.SP1 branch from the freebsd/uefi-edk repo git clone -b bhyve/UDK2014.SP1 https://github.com/freebsd/uefi-edk2.git 2. Setup the build environment 2a Build the base tools bash export AS=/usr/local/bin/as export AR=/usr/local/bin/ar export LD=/usr/local/bin/ld export OBJCOPY=/usr/local/bin/objcopy export CC=/usr/local/bin/gcc48 export CXX=/usr/local/bin/g++48 gmake -C BaseTools 2b Create links to toolchain mkdir Build ln -s /usr/local/bin/gcc48 Build/gcc ln -s /usr/local/bin/ld Build/ld ln -s /usr/local/bin/gmake Build/make ln -s /usr/local/bin/ar Build/ar ln -s /usr/local/bin/objcopy Build/objcopy ln -s /usr/local/bin/nasm Build/nasm 3. On this, and each subsequent login, start bash if not already in it and: source edksetup.sh && export GCC48_BIN=$PWD/Build/ 4. To build the UEFI binary build -t GCC48 -a X64 -p BhyvePkg/BhyvePkgX64.dsc \ -DDEBUG_ON_SERIAL_PORT=TRUE -D FD_SIZE_2MB 4a To build the UEFI+CSM binary (cd BhyvePkg/Csm/BhyveCsm16/; gmake) build -t GCC48 -a X64 -p BhyvePkg/BhyvePkgX64.dsc \ -DDEBUG_ON_SERIAL_PORT=TRUE -DCSM_ENABLE=TRUE 5. The output of the build is at Build/BhyveX64/DEBUG_GCC48/FV/BHYVE.fd 6. To clean, use the above 'build' command and add 'clean' to the end.