如何Build UDK2018
如何Build UDK2018
GitHub有UDK2018的build教學 , windows環境的
我試著用上面的步驟做看看,寫成一份簡單的中文SOP看看
A. 設定編譯環境
- 安裝 VisualStudio2015 , 確定AMD64 complier 有被選擇安裝
- 下載 NASM2.12.01 或是更新版的 (http://www.nasm.us/) , 並且安裝到 C:\Nasm 下, 確定C:\Nasm 有加到環境變數 'PATH'
- 用這個方法設定 Windows下的GitHub (https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II#github-help)
- 下載 Python 2.7.x (https://www.python.org/), 以便去build BaseTools , 預設安裝路徑是 C:\Python27
- 下載"預先編譯"的Openssl 二進位檔 (https://wiki.openssl.org/index.php/Binaries) , 在 "Third Party OpenSSL Related Binary Distributions"的列表去尋找windows的二進位檔 , 去第三方的網址去下載 Windows X64 和 X32 最新的二進位檔. 下載並解壓到 C:\Openssl , 並加入 C:\Openssl 到環境變數'PATH'
B. 創造 UDK2018的全程式碼目錄
- 在 build machine 創造一個工作目錄 , 像是 C:\MyWorkspace
- 下載 UDK2018 release.zip (https://github.com/tianocore/edk2/releases/tag/vUDK2018) , 並請解壓縮到工作目錄 , 例如 C:\MyWorkspace
- 或是 , 用 GutHub 來 Checkout vUDK2018Tag , 用以下的Git command
a. 執行
git clone https://github.com/tianocore/edk2.git vUDK2018
b. 到 vUDK2018 目錄 , 執行
git checkout tags/vUDK2018 -b vUDK2018
c. 把在 vUDK2018 的所有檔案和目錄搬到 C:\MyWorkspace
C. 產生 OpenSSL* Crypto Library
1. 打開 C:\MyWorkspace\CryptoPkg\Library\OpensslLib\OpenSSL-HOWTO.txt , 並且依照步驟去安裝OpenSSL* 給UEFI builing. 在這一版 , 請用 OpenSSL-1.1.0g , 從 https://github.com/openssl/openssl/archive/OpenSSL_1_1_0g.zip 下載 ,
解壓縮到 "C:\MyWorkspace\CryptoPkg\Library\OpensslLib ", 並且 更名它的目錄名稱為 openssl
D. 編譯 BaseTools :
- 打開 Visual Studio 命令列 , 打入 cd :\MyWorkspace 去進入工作環境
- 編譯 C-base 的 Basetools 原始碼
set PYTHON_HOME=C:\Python27
edksetup.bat Rebuild
E: 編譯步驟 ***NT32***
1. 打開 Visual Studio 命令列 , 打入 cd :\MyWorkspace 去進入工作環境
2. 用 edksetup.bat 去初始化工作環境 ,
edksetup --nt32
3. 打以下的coomand 去 build Nt32 platform ,
build -t VS2015x86
4. 成功完成以上的話 , 會有一個 UEFI Application "HelloWorld.efi"
在"C:\MyWorkspace\Build\NT32IA32\DEBUG_VS2015x86\IA32" 目錄
P.S :
在嘗試想要 run 模擬器時, 遇到 SecMain 找不到的問題,
發現 SecMain 的確有 Build 出來
(D:\SCT\edk2-vUDK2017\Build\NT32IA32\DEBUG_VS2015x86\IA32\SecMain.exe)
後來改了 target.txt ,
TOOL_CHAIN_TAG = VS2015x86
就可以了
跑模擬器的三步驟
- edksetup.bat => 設定環境
- edksetup.bat Rebuild => 先編譯 BaseTools
- edksetup.bat --nt32 => 編譯 Nt32Pkg 的 code
- build run => 最後會跑出模擬器 (如下圖)
留言