調試筆記-系列文章目錄
調試筆記-20240516-Windows-使用VS2019編譯edk2(上)
文章目錄
- 調試筆記-系列文章目錄
- 調試筆記-20240516-Windows-使用VS2019編譯edk2(上)
- 前言
- 一、安裝開發工具
- 1. 安裝 VS2019
- 2. 安裝 Python 3.10
- 3. 安裝 iASL
- 4. 安裝 NASM
- 二、準備 EDK2 源代碼
- 1.從 github 下載
- 2. 從 gitee 下載
- 三、編譯測試模擬器
- 1. 配置項目
- 2. 編譯基本工具
- 3. 編譯測試模擬器
- 4. 運行測試模擬器
- 總結
前言
本文介紹了在 Windows 平臺上搭建 edk2 開發環境的步驟,為研究 QEMU 的UEFI 支持提供實驗基礎。
本文讀者需要具備 Windows 平臺的開發經驗,并對 QEMU 系統仿真有一定的使用經驗。
實驗使用的電腦如下:
CPU:
Intel Core i5 8265U
操作系統:
Microsoft Windows 10 Professional (x64), Version 22H2, Build 19045.4412
一、安裝開發工具
1. 安裝 VS2019
下載地址:https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/history#installing-an-earlier-release
選擇 BuildTools
下載后運行,選擇 “使用C++的桌面開發”
我的安裝路徑是:D:\VS\2019\BuildTools
安裝完成后,在系統變量中添加
CLANG_BIN=D:\VS\2019\BuildTools\VC\Tools\Llvm\x64\bin\
注意目錄 bin 最后的 “”
2. 安裝 Python 3.10
主頁:https://www.python.org/
選擇最新的穩定版本下載安裝即可。
我的安裝目錄是:D:\Python\Python310\
安裝完成后,在添加系統變量
PYTHON_HOME=D:\Python\Python310
3. 安裝 iASL
下載地址: https://www.intel.cn/content/www/cn/zh/developer/topic-technology/open/acpica/download.html
選擇 “Windows Binary Tools”
下載后解壓安裝到 D:\iASL\ 目錄中
并在環境變量中添加
IASL_PREFIX=D:\iASL\
注意目錄 iASL 后的 “\”
4. 安裝 NASM
主頁: https://www.nasm.us/
下載地址: https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/win64/
下載后安裝到 D:\NASM\ 目錄中
并在環境變量中添加
NASM_PREFIX=D:\NASM\
注意目錄 NASM 后的 “\”

使用命令
git clone https://gitee.com/david921518/mingw-edk2.git mingw-edk2
或直接下載 zip 打包文件
下載解壓后,需要對項目的子模塊初始化,在 edk2 根目錄下執行命令
cd mingw-edk2git submodule update --init
此倉庫為我在 Windows MSYS2 環境中的工作倉庫,同步更新開發中遇到的各種問題,建議使用此倉庫來練習。
三、編譯測試模擬器
1. 配置項目
啟動 VS2019 的開發者命令行窗口,進入 edk2 項目的根目錄。
注意,此處我們使用 VS2019 的開發者命令行窗口而不是直接用 Windows 自帶的命令行窗口,這樣可以省去配置環境變量的步驟。當然,如果有興趣了解 VS2019 為我們設置了怎樣的環境變量,你也可以用 Windows 自帶的命令行工具一步一步添加缺少的環境變量。
運行命令,配置 EDK2 的編譯設置。此命令在每一次新開 VS2019 開發者命令行窗口都需要執行一次,在窗口未退出前執行一次后不需要再執行。
edk2setup.bat
執行此命令后會在 Conf\ 目錄中生成項目配置文件。
其中 target.txt 是我們重點關注的。
打開 target.txt 文件,確認以下設置
TARGET = DEBUG
...
TARGET_ARCH = X64
...
TOOL_CHAIN_TAG = VS2019
2. 編譯基本工具
在 edk2 的根目錄下,執行命令
cd BaseToolsnmake
執行成功,顯示如下:
3. 編譯測試模擬器
在 edk2 的根目錄下,執行命令
build
執行成功,顯示如下:
4. 運行測試模擬器
在運行模擬器前,需要將鍵盤切換到英文鍵盤,如下圖:
在 edk2 的根目錄下,執行命令
cd Build\EmulatorX64\DEBUG_VS2019\X64\
進入測試模擬器的生成目錄
執行以下命令啟動模擬器
WinHost.exe
在 UEFI 的 shell> 環境中運行命令
fs0:
這樣 UEFI shell 就切換到主機的 Build\EmulatorX64\DEBUG_VS2019\X64\ 目錄下了。
在 UEFI shell 中運行命令
dir
可以列出當前目錄的文件信息,如下圖:
最后運行命令
reset
退出模擬器。
總結
以上搭建了 EDK2 在 Windows 上使用 VS2019 進行開發的環境,并生成了第一個 EFI 模擬器程序。