EDK2 編譯介紹
目錄
介紹如何 在 Ubuntu 18.04 環境下編譯 EDK2 UEFI BIOS
1 安裝必須的 build tools.
|
|
小記
如果需要 Java 可以額外增加
default-jre
提示
若需要在 ubuntu 20.04 以上環境執行,補上下面兩行讓 python3
與 pip3
可以指到 python
與 pip
會比較方便
|
|
這樣 compiler 環境就結束了,超簡單。
2 下載 EDK2 source code
|
|
小記
現在 EDK2 有越來越多的 sub module, 務必記得把 submodule 抓下來。
提示
文章寫作時間當下最新的 release/tags 為 edk2-stable202002
, 建議先切到目前最新的 tag 上,避免最新的 master
可能 build 不過
|
|
3 基本設定
因為 EDK2 有用到 OpenSSL, 但需要額外的修改以配合 EDK2 的 環境, 所以需要先將檔案 patch 好。
|
|
提示
若你要編譯的 code 用不到 OpenSSL, 這個步驟不做也可以。
4 EDK2 BuildTools 建置
因為 EDK2 有自己的 toolset, 需要在開始 build code 前先把所需的 build tool 建出來。
提示
這個步驟只要做一次。
依序輸入
|
|
若沒有看到 error,就可以開始真正開始 build code 了
5 編譯 EFI package
終於要進入正題了,先來編譯一個 OvmfPkg 試試吧。
|
|
提示
-a
代表TARGET_ARCH
,可能的值為X64
或是IA32
IA32 X64
-t
代表TOOL_CHAIN_TAG
,在 Linux 下通常為GCC5
-p
代表ACTIVE_PLATFORM
,這是用來指定要 編 哪一個 Package,通常我們會輸入 *.dsc 檔案的相對路徑。
建置成功後,來跑個 qemu 模擬一下這個 UEFI BIOS
小記
如果跑在 VPS 上可能不能用喔,改用 WSL2 跑 QEMU
|
|
小記
- HDA_CONTENTS 換成想要 mapping 進 UEFI BIOS 的目錄
- Build/OvmfX64/DEBUG_GCC5/FV/ 換成自己的路徑
提示
若要在純 terminal 的環境下跑, 在 qemu 多補上
-display none
這個參數就可以了