1. 程式人生 > >EDK2編譯與OVMF編譯

EDK2編譯與OVMF編譯

新版EDK修正了許多bug並且已經支援VS2015,這裡就是在VS2015的環境下操作的。
首先下載EDK2
EDK2官方下載
這裡下載的EDK2一開始式沒有Win32編譯環境的,需要自己編譯:
開啟CMD,定位到EDK2的BaseTools下,輸入get_vsvars,執行完後輸入vsvars32執行,這兩部主要是配置VS編譯環境。
除此之外要想編譯還需要安裝PYTHON27以及cx_Freezer(用34會報錯,可能暫時不支援),兩者將py指令碼編譯為Win32可執行檔案。
PYTHON下載
cx_Freezer下載
注意兩者要版本和位數都相同。
然後設定環境變數(這裡因人而異):
set PYTHON_HOME=C:\Python27
set PYTHON_FREEZER_PATH=C:\Python27\Scripts
然後還要設定BASE_TOOLS_PATH和EDK_TOOLS_PATH為BaseTools目錄路徑(兩者一樣)
之後就可以編譯了:
toolsetup Rebuild
等待一段時間後,編譯完畢,會在BaseTools\Bin\Win32下生成Windows編譯工具。
然後將當前目錄切回EDK目錄下,執行edksetup –nt32,這裡式配置Windows下一系列環境變數。
在編譯OVMF之前還需要下載兩個工具NASM和ASL,前者是彙編工具後者是ACPI Language編譯工具。

NASM下載
IASL下載
安裝完成後到Conf目錄下的tools_def檔案將兩者的初始目錄配置為安裝目錄,為避免麻煩可以直接將下載的iasl解壓到C:\ASL目錄下,然後在tools_def檔案的末尾將*_*_*_NASM_PATH後面的路徑改為NASM的安裝目錄。
OK,下面開始編譯OVMF,剛剛執行edksetup –nt32後配置了環境變數後,輸入編譯命令:
build -p OvmfPkg\OvmfPkgX64.dsc -b NOOPT
等待一段時間後,OVMF就編譯完成了。