UEFI開發與除錯 edk2中子目錄介紹

2021-08-20 21:13:00 字數 2448 閱讀 2470

mdepkg

全稱為「module development environment package」,這是乙個特殊的package,包含了用於開發乙個module所需要的最小環境。乙個module可能也會依賴於其他的package,但是所有modules必須依賴於mdepkg。

mdemodulepkg

此包提供符合uefi/pi工業標準的模組,也提供該標準相關的開發環境,ppis/protocols/guids和依賴庫。

armpkg

提供arm架構相關的protocols,屬於arm平台上的通用**。

armplatformpkg

arm開發板相關的uefi**,包含arm平台上通用的一些元件,重複利用這些組建會令arm平台的不同板型之間的移植變得更加容易。

basetools

該包提供編譯相關的工具用於edk和edk2,比如:autogen, build, gensec, genfv, genfw, genrds工具。

beagleboardpkg

beagleboard是乙個便宜並且靈活的單板電腦,玩過開發板的同學應該都了解過,基於omap3530 soc (arm cortex tm-a8)處理器的開發板。這個包裡是對此開發板的支援**。

corebootmodulepkg

coreboot原本和uefi/bios是競爭關係,但是現在coreboot也逐漸向uefi標準靠攏,目前依靠此包可以輕鬆從coreboot啟動到uefi,coreboot support modules包含了如下**:用來解析coreboot table的**,報告儲存器/io資源的**,安裝acpi table和smbios table 到efi系統表中的**。它位於uefi環境和hardware的中間層。

用來載入上層uefi環境的中間層,hardware->coreboot->corebootpayloadpkg->uefi->hlos

cryptopkg

uefi定義了hlos(high level os)和平台韌體之間的介面,多個安全特性也在2.2版本之後加入其中,此包是用來提供加密支援的。

duetpkg

開發者使用的uefi模擬器,能夠在bios機器上模擬uefi環境。duet 是基於legacy bios 提供了uefi模擬器,提供了在傳統bios系統上的uefi環境。

edkcompatibilitypkg

edk相容包提供庫和標頭檔案用來使能在uefi2.0+framework0.9x模式下的edk編譯。

edkshellpkg, edkshellbinpkg

edk shell開發包以及乙個官方的edk shell實現,這兩個包已經在被shell 2.x逐漸取代了。

shellpkg,shellbinpkg

shell 2.x版本開發包以及乙個官方的uefi shell 實現。

emulatorpkg

emulator虛擬環境,用來取代nt32pkg和unixpkg,可以跨平台編譯執行的乙個虛擬器。

nt32pkg

乙個win環境下的uefi虛擬器,不能用語載入實際的os,只能用來除錯uefi**。已經逐漸被emulator取代。

unixpkg

乙個類unix作業系統下的uefi虛擬器,已經逐漸被emulator取代。

ovmfpkg

ovmf是用來給虛擬機器提供uefi支援的包,可以使用qemu和kvm來引導ovmf韌體,並進一步引導hlos。

omap35xxpkg

omap35xxpkg是texas instrument omap35xx平台支援包。

optionrompkg

這個包的目的是為了提供option rom image支援的,如果要編譯pci相容的option rom image,需要依賴此包。

securitypkg

提供了四種安全相關的特性:tpm, user identification (uid),secure boot, authenticated variable

stdlib, stdlibprivateinternalfiles

stdlib提供了標準庫的udk實現,stdlibprivateinternalfiles包是用來給stdlib使用的,不能用作其他引用。

ueficpupkg

提供相容uefi的cpu模組和庫。

sourceleveldebugpkg

用來提供debug支援的包。

signedcapsulepkg

提供了乙個簽名校驗方案,用來支援安全公升級和恢復。

pcatchipsetpkg

這個包提供了符合pcat標準器件的介面和實現。

fatpkg, fatbinpkg

fat支援包。

參考:

搭建UEFI除錯環境

需要的軟體包如下 本文在windows7x64上測試,安裝windows sdk作為編譯器 安裝.net framework 4 安裝windows sdk v7.1 給ovmfpkg新增noopt的target,2016 7 16的edk2需要修改,以後的edk2更新了應該不需要。執行編譯命令 b...

EDK32 NT32pkg 編譯和除錯

edk32 nt32pkg提供了在windows下 uefi bios的能力,對於初學者學習framework有很大的幫助。另外順便一提的是,linux下也有類似的unixpkg,提供用gcc編譯 gdb除錯的 包。進入今天的實驗 開啟cmd,進入c edk2執行edksetup.bat 然後執行b...

Linux C 程式開發與除錯

g 與 gcc的關係 linux的gcc和g 的區別 用gcc編譯c 檔案 anyway,還是用g 吧 假設有乙個原始檔為main.cc include int main int args,char argv std cout e 表示預處理完就結束 源 共五行 預處理完 g s hello.ii ...