Due to tianocore separates packages into different repositories, pull these repositories into submodule and provide GitHub action example for build instruction.
- Build environment
sudo apt-get update
sudo apt-get install -y nasm git acpica-tools build-essential \
crossbuild-essential-i386 crossbuild-essential-amd64 \
crossbuild-essential-arm64 uuid-dev python3 python3-distutils \
python3-pip bc gawk llvm-dev lld clang
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 10
- Install NASM 2.15.05(edk2_stable202205 or above)
Because Ubuntu distribution still keep NASM version as 2.13.02-0.1(2022/05/28), we have to upgrade NASM by ourselves otherwise you will meet build error.
2023/12/01 Update: You can use apt-get to install NASM now.
sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install -y alien
wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/linux/nasm-2.15.05-0.fc31.x86_64.rpm -O/tmp/nasm-2.15.05-0.fc31.x86_64.rpm
sudo alien /tmp/nasm-2.15.05-0.fc31.x86_64.rpm -i
rm -f /tmp/nasm-2.15.05-0.fc31.x86_64.rpm
- PR#2354 - Replace Opcode with the corresponding instructions
- BaseTools: Upgrade the version of NASM tool
- need help - edk2 build issue
git clone --recurse-submodule git@github.com:saqwed/myedk2.git myedk2
sed -i 's+DEF(GCC_IA32_PREFIX)objcopy+ENV(GCC_IA32_PREFIX)objcopy+g' edk2/BaseTools/Conf/tools_def.template
sed -i 's+DEF(GCC_X64_PREFIX)objcopy+ENV(GCC_X64_PREFIX)objcopy+g' edk2/BaseTools/Conf/tools_def.template
sed -i 's+DEF(GCC_IA32_PREFIX)gcc+ENV(GCC_IA32_PREFIX)gcc+g' edk2/BaseTools/Conf/tools_def.template
sed -i 's+DEF(GCC_X64_PREFIX)gcc+ENV(GCC_X64_PREFIX)gcc+g' edk2/BaseTools/Conf/tools_def.template
export GCC_IA32_PREFIX=i686-linux-gnu-
export GCC_X64_PREFIX=x86_64-linux-gnu-
export GCC_AARCH64_PREFIX=aarch64-linux-gnu-
make -C edk2/BaseTools
pushd $PWD && cd edk2/CryptoPkg/Library/OpensslLib/ && perl process_files.pl && popd
export WORKSPACE=$PWD
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-libc:$WORKSPACE/edk2-test:$WORKSPACE/edk2-platforms/Silicon/Intel
source edk2/edksetup.sh
build -a X64 -t GCC -p ShellPkg/ShellPkg.dsc -b RELEASE
-
Install Python 3.x
-
Install NASM 2.15.05 (edk2_stable202205 or above)
git clone --recurse-submodule git@github.com:saqwed/myedk2.git myedk2
rem Open "x86 Native Tools Command Prompt for VS 2019" via start menu
set WORKSPACE=%CD%
cd %WORKSPACE%\edk2
set EDK_TOOLS_PATH=%WORKSPACE%\edk2\BaseTools
edksetup.bat VS2019
cd %WORKSPACE%\edk2\BaseTools
toolsetup.bat
nmake
Exit this command prompt windows and reopen another one for next steps.
REM open a new command prompt
set WORKSPACE=%CD%
set PACKAGES_PATH=%WORKSPACE%/edk2;%WORKSPACE%/edk2-libc;%WORKSPACE%/edk2-test;%WORKSPACE%/edk2-platforms/Silicon/Intel
edk2\edksetup.bat VS2019
build -a X64 -t VS2019 -p ShellPkg/ShellPkg.dsc -b RELEASE