首先更換更快的源,并更新軟件包
$ sudo pacman -Syyu
安裝所需要的依賴
$ sudo pacman -S --needed git base-devel iasl nasm python wget nano
獲取EDKII的最新資源
$ git clone https://github.com/tianocore/edk2.git
$ cd edk2
編譯基礎(chǔ)工具
對于Windows系統(tǒng),基礎(chǔ)工具預(yù)先構(gòu)建的文件隨源提供; 但在Ubuntu上,需要自己來構(gòu)建EDKII所需的基礎(chǔ)工具。
$ make -C BaseTools
建立構(gòu)建環(huán)境
edksetup.sh腳本會根據(jù)其中的EDK_TOOLS_PATH的設(shè)置路徑來構(gòu)建環(huán)境。 該腳本會將模板和配置文件復(fù)制到edk2/Conf目錄。
$ . edksetup.sh
設(shè)置構(gòu)建目標(biāo)
要設(shè)置構(gòu)建目標(biāo),要修改conf文件Conf/target.txt,來設(shè)置編譯器版本。
$ nano Conf/target.txt
查找
ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc
替換為
ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
查找
TOOL_CHAIN_TAG = MYTOOLS
替換GCC版本,例如GCC 5版本。
TOOL_CHAIN_TAG = GCC5
查找
TARGET_ARCH = IA32
用64位的'X64'或'IA32 X64'替換它,來構(gòu)建兩種體系結(jié)構(gòu)。
TARGET_ARCH = X64
構(gòu)建MdeModulePkg模塊包
這將構(gòu)建MdeModulePkg和helloworld程序,稍后我們可以在從模擬器啟動UEFI shell時使用該程序,只需鍵入build:
$ build
在配備4GB內(nèi)存的酷睿i5上,制作時間約為兩分鐘。
構(gòu)建完整的系統(tǒng)固件映像(OVMF)
開放式虛擬機固件(或“OVMF”)可用在虛擬機中啟用UEFI。它提供了與虛擬機相關(guān)的庫和驅(qū)動程序。目前OVMF支持QEMU在基于IA32和X86-64的系統(tǒng)上模擬UEFI。您還可以構(gòu)建啟用了源代碼級別調(diào)試的OVMF。
設(shè)置構(gòu)建目標(biāo)
您可以為IA32或X64體系結(jié)構(gòu)構(gòu)建OVMF。在這個例子中,我們將為X64架構(gòu)構(gòu)建OVMF。您需要修改Conf/target.txt,并用正確的dsc文件替換ACTIVE_PLATFORM。
$ nano Conf/target.txt
查找
ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
替換為
ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc
這會將Target Arch設(shè)置為X64,將PEI代碼設(shè)置為X64,將DXE / UEFI代碼設(shè)置為X64。
構(gòu)建OvmfPkg
$ build
在具有16GB RAM的i7上,總體構(gòu)建時間少于30秒。生成的固件映像將位于Build/OvmfX64/DEBUG_GCC46/FV/OVMF.fd中。
如果您希望串行控制臺上的調(diào)試輸出,請使用DEBUG_ON_SERIAL_PORT選項:
$ build -DDEBUG_ON_SERIAL_PORT = TRUE
構(gòu)建帶安全引導(dǎo)支持的OvmfPkg
如果您希望使用Secure Boot構(gòu)建OVMF,則必須遵循CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt中的openssl安裝說明,并使用SECURE_BOOT_ENABLE選項進行構(gòu)建:
$ build -DSECURE_BOOT_ENABLE = TRUE
如果您看到“the required fv image size exceeds the set fv image size”的錯誤,請參閱此郵件列表:http://feishare.com/efimail/messages/20110324-1024-Re__edk2__Error_about_building_OVMF_on_Fedora_8-Bei_Guan.html文章。此問題已在最近的版本中修復(fù)。
在QEMU中運行UEFI
請參閱https://wiki.ubuntu.com/UEFI/OVMFOVMF頁面在qemu下運行OVMF映像。