UEFI 原理與編程 1 - UEFI開發環境EDK2搭建


概述

不同的廠商對UEFI有不同的實現, 一種比較常用的開源實現是EDK2. EDK2是一個遵循UEFI標准和PI標准的跨平台固件開發環境.

 

EDK2支持多種操作系統, 也支持跨平台編譯.

 

Windows下開發環境配置

 

之前在物理機win10上進行安裝, 折騰了一天也沒配好環境, 包括wsl全都試過了, 全部以失敗告終. 這一次直接開了一個Win7的虛擬機來安裝..

 

安裝開發工具

1. 安裝VS 2015 (VS2017亦可, 但感覺VS2015文件小一點 / VS2019在2018的EDK2中無支持, 2019的EDK雖然有支持, 但由於改了很多部分, 網絡上並沒有對應的教程), 微軟把官方的下載鏈接藏得比較深, 可以看這篇文章 https://www.cnblogs.com/yilezhu/p/10857134.html. 另外安裝之前可能需要 Microsoft .NET Framework 4.6.1

2. 安裝Python2.7 https://www.python.org/downloads/release/python-2716/. 新建環境變量PYTHON_HOME,值為C:\Python27\

3. 下載IASL編譯器.  https://acpica.org/downloads/binary-tools

4. 下載NASM. https://www.nasm.us/. 往環境變量PATH中添加C:\UEFI\nasm, 並設置NASM_PREFIX=C:\UEFI\nasm\ (NASM_PREFIX不設置也可以, 但是會報warning. 如果設置必須設置正確, 一旦填錯, 必須把udk2文件夾刪除干凈重來)

5. 下載Openssl. http://wiki.overbyte.eu/arch/openssl-1.1.0g-win32.zip. 往環境變量PATH中添加C:\UEFI\nasm\和C:\UEFI\openssl\

6.下載edk2開發包, 解壓: https://codeload.github.com/tianocore/edk2/zip/vUDK2018 .

 

此時在根目錄下應有這些文件:

 

 

7.生成OPENSSL加密庫。從https://github.com/openssl/openssl/archive/OpenSSL_1_1_0g.zip下載,下載后解壓到edk2\CryptoPkg\Library\OpensslLib中,重命名為openssl.

 

 

8. 預搭建base tools。從https://github.com/tianocore/edk2-BaseTools-win32 並解壓到edk2\BaseTools\Bin,重命名為Win32,注意忽略此步會在接下來的搭建中遇到報錯環境變量PYTHON_HOME的問題。

 

 

 

 

 

配置EDK2開發環境

1 cd .\edk2\
2 .\edksetup.bat

 

之后會在Conf目錄下建立target.txt等文件.

編輯target.txt. 修改第60行為  TOOL_CHAIN_TAG = VS2015 , 之后檢查tools_def.txt, 確保編譯器路徑正確.

 

編譯UEFI模擬器和UEFI工程

1. 編譯UEFI模擬器

1 edksetup.bat rebuild
2 edksetup.bat --nt32
3 build

 

 

之后會看到build成功

 

 

 該過程可能會出現腳本去C:\Program Files\ 下找Windows Kits的情況, 但一般Windows Kits在C:\Program Files(x86)\下, 而C:\Program Files\中並無此文件夾, 故而導致報錯. 此時可以以管理員身份v執行 mklink /j "C:\Program Files\Windows Kits""C:\Program Files (x86)\Windows Kits創建一個軟鏈接.

 

之后:

1 build run

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM