← richliu.com / 文章
中文 EN

Build Master EDK2 for Altrad8ud

2025-10-17 ARM Altra ALTRAD8UD EDK2 韌體

這篇是針對 ASRock Rack ALTRAD8UD 平台的 EDK2 韌體編譯指南, 更新自之前以 Mt. Jade 為主的舊文章。Rebecca 幾個月前已經把 Altrad8ud 的支援 commit 進 EDK2 主線了。

環境準備(Ubuntu 24.04)

安裝必要的建構工具,包含 ARM 交叉編譯器:

sudo apt install build-essential uuid-dev iasl nasm \
    gcc-aarch64-linux-gnu python3-distutils git

Clone 所需的 repositories:

git clone https://github.com/tianocore/edk2.git
git clone https://github.com/tianocore/edk2-platforms.git
git clone https://github.com/tianocore/edk2-non-osi.git
git clone https://github.com/AmpereComputing/edk2-ampere-tools.git
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git

初始化 BaseTools

cd edk2
git submodule update --init
make -C BaseTools
source edksetup.sh

編譯 ARM Trusted Firmware(ATF)

cd trusted-firmware-a
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=altra \
     bl31 fiptool certtool

設定環境變數

export WORKSPACE=/path/to/workspace
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-platforms:$WORKSPACE/edk2-non-osi
export VENDOR_NAME="ASRock Rack"
export BOARD_NAME="ALTRAD8UD"

執行 buildfw.sh

# RELEASE build,啟用 Secure Boot 和 TPM2
./edk2-ampere-tools/buildfw.sh \
    -b RELEASE \
    -p AmpereAltraAltrad8udPkg \
    --secure-boot --tpm2

可用選項包含:RELEASE/DEBUG、Secure Boot、網路功能、TPM2 等。

合併到原廠 BIOS

產出的 EDK2 image 約 10MB,需要合併到 32MB 的原廠 BIOS,偏移量為 0x600000

# 複製原廠 BIOS
cp stock_bios.bin merged_bios.bin

# 在偏移量 0x600000 寫入 EDK2 image
dd if=edk2_image.bin of=merged_bios.bin bs=1 seek=$((0x600000)) conv=notrunc

# 打包成 tar 供 WebGUI 升級使用
tar czf altrad8ud_bios.tar.gz merged_bios.bin

也可以直接透過 BMC 介面部署,省去打包步驟。