首先更換更快的源箭启,并更新軟件包
$ 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ǔ)工具
對(duì)于Windows系統(tǒng),基礎(chǔ)工具預(yù)先構(gòu)建的文件隨源提供; 但在Ubuntu上,需要自己來構(gòu)建EDKII所需的基礎(chǔ)工具粹舵。
$ make -C BaseTools
建立構(gòu)建環(huán)境
edksetup.sh腳本會(huì)根據(jù)其中的EDK_TOOLS_PATH的設(shè)置路徑來構(gòu)建環(huán)境钮孵。 該腳本會(huì)將模板和配置文件復(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程序赵刑,稍后我們可以在從模擬器啟動(dòng)UEFI shell時(shí)使用該程序,只需鍵入build:
$ build
在配備4GB內(nèi)存的酷睿i5上场刑,制作時(shí)間約為兩分鐘般此。
構(gòu)建完整的系統(tǒng)固件映像(OVMF)
開放式虛擬機(jī)固件(或“OVMF”)可用在虛擬機(jī)中啟用UEFI。它提供了與虛擬機(jī)相關(guān)的庫和驅(qū)動(dòng)程序牵现。目前OVMF支持QEMU在基于IA32和X86-64的系統(tǒng)上模擬UEFI铐懊。您還可以構(gòu)建啟用了源代碼級(jí)別調(diào)試的OVMF。
設(shè)置構(gòu)建目標(biāo)
您可以為IA32或X64體系結(jié)構(gòu)構(gòu)建OVMF瞎疼。在這個(gè)例子中科乎,我們將為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
這會(huì)將Target Arch設(shè)置為X64,將PEI代碼設(shè)置為X64太抓,將DXE / UEFI代碼設(shè)置為X64空闲。
構(gòu)建OvmfPkg
$ build
在具有16GB RAM的i7上,總體構(gòu)建時(shí)間少于30秒腻异。生成的固件映像將位于Build/OvmfX64/DEBUG_GCC46/FV/OVMF.fd中进副。
如果您希望串行控制臺(tái)上的調(diào)試輸出,請(qǐng)使用DEBUG_ON_SERIAL_PORT選項(xiàng):
$ 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選項(xiàng)進(jìn)行構(gòu)建:
$ build -DSECURE_BOOT_ENABLE = TRUE
如果您看到“the required fv image size exceeds the set fv image size”的錯(cuò)誤,請(qǐng)參閱此郵件列表:http://feishare.com/efimail/messages/20110324-1024-Re__edk2__Error_about_building_OVMF_on_Fedora_8-Bei_Guan.html文章机打。此問題已在最近的版本中修復(fù)矫户。
在QEMU中運(yùn)行UEFI
請(qǐng)參閱https://wiki.ubuntu.com/UEFI/OVMFOVMF頁面在qemu下運(yùn)行OVMF映像。