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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章