Hackathon Build Linux - jljusten/tianocore GitHub Wiki

Linux/GCC

Distro Options

Ubuntu 16.04 - Native

If you are running Ubuntu 16.04 then you are ready to build.

Ubuntu 16.04 Prebuilt Container

We have already built an Ubuntu 16.04 container specifically for the workshops at OSFC 2018. Follow the instructions to install the Container for OSFC Workshops. You do not have to follow the OVMF Walkthrough in the instructions. Once installed, you will need to add gcc-multilib to that image. The password is password:

su root
apt install gcc-multilib

Ubuntu 16.04 using Docker (lightweight option)

If you are comfortable running your own docker build, follow these instructions to install Docker, based on your distribution. You can then run docker pull to get ubuntu:16.04.

Once Docker is installed, follow the post-install steps.

Before starting a Docker container, confirm that your user has been added to the docker group. This step is required.

Build Steps

Run the script below from an empty directory. The script clones the EDK II repository from GitHub and downloads and unzips the binary support files for the MinnowBoard MAX. It then sets up the environment for EDK II builds and builds the MinnowBoard MAX firmware and generates UEFI Capsules that can be used to update the MinnowBoard MAX firmware and three sample devices.

apt-get update && apt-get install -y build-essential git nasm wget m4 bison flex uuid-dev python unzip acpica-tools gcc-multilib

git clone --recurse-submodules -b edk2-stable201808_GCC_Fixes https://github.com/mdkinney/edk2.git

wget https://firmware.intel.com/sites/default/files/MinnowBoard_MAX-0.97-Binary.Objects.zip
unzip MinnowBoard_MAX-0.97-Binary.Objects.zip
mv MinnowBoard_MAX-0.97-Binary.Objects Vlv2Binaries

mkdir Conf

export WORKSPACE=$PWD
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/\Vlv2Binaries
export EDK_TOOLS_PATH=$WORKSPACE/edk2/BaseTools

cd $WORKSPACE/edk2

make -C BaseTools

. edksetup.sh BaseTools

cd Vlv2TbltDevicePkg
./Build_IFWI.sh MNW2 Debug

Once all the code is downloaded and installed, only the following commands are required to setup the environment. Run these from the same directory used to install the source and binaries.

export WORKSPACE=$PWD
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/\Vlv2Binaries
export EDK_TOOLS_PATH=$WORKSPACE/edk2/BaseTools

cd $WORKSPACE/edk2

make -C BaseTools

. edksetup.sh BaseTools

Once the environment is setup, the MinnowBoard MAX firmware and capsules can be rebuilt using the following commands.

  • Build Debug Image
cd Vlv2TbltDevicePkg
./Build_IFWI.sh MNW2 Debug
  • Build Release Image
cd Vlv2TbltDevicePkg
./Build_IFWI.sh MNW2 Release

The generated firmware image is the MNW2MAX_X64_D_0084_01_GCC.bin file in edk2\Vlv2TbltDevicePkg\Stitch

The CapsuleApp and generated UEFI Capsules are in Build\Vlv2TbltDevicePkg\Capsules

Now you are ready to flash the image, generate a capsule, and test it!