在Archlinux下編譯EDK2

首先更換更快的源,并更新軟件包

$ 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映像。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 安裝所需的包 獲取EDKII的最新資源 編譯基礎(chǔ)工具 對于Windows系統(tǒng),基礎(chǔ)工具預(yù)先構(gòu)建的文件隨源提供; ...
    龜山島閱讀 972評論 1 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,235評論 2 33
  • dell筆記本uefi+gpt win8系統(tǒng)下安裝win7雙系統(tǒng) 本貼是在dell筆記本靈越5421(其他型號可能...
    五大RobertWu伍洋閱讀 2,829評論 1 1
  • 4.x86 CPU架構(gòu)設(shè)計 4.1.x86硬件需求 對于通用交換機硬件需求,請參閱“交換機硬件需求”章節(jié)描述。 x...
    半天妖閱讀 5,901評論 0 1

友情鏈接更多精彩內(nèi)容