EDK II VS2019 compile on windows 10

1.下载最新的EDK2

https://github.com/tianocore/edk2/releases

下载所有的模块的压缩包,把所有的压缩包解压到一个目录

edk2

2.设置环境变量

开始菜单启动VS2019控制台工具

Developer Command Prompt for VS 2019 注意 BaseTools 只能用x86平台工具编译 其他包可以使用任意平台交叉编译,所有包对工具版本限制不严格

设置以下环境变量(自行修改成工具的实际路径):

set NASM_PREFIX=D:\GreenSoftware\Devel\SDK\Nasm\nasm-2.15.05-win64\ set IASL_PREFIX=D:\GreenSoftware\Devel\SDK\iasl\ set PACKAGES_PATH=D:\dev\edk2\ set PYTHON_HOME=C:\Program Files\Python310\

注意结尾的 反斜杠号 不能少

3.修改生成配置文件

在 edk2 目录下运行 edksetup.bat 生成配置文件

编辑 conf\target.txt

编辑内容如下:

TARGET_ARCH = X64 TARGET = DEBUG TOOL_CHAIN_TAG = VS2019 ACTIVE_PLATFORM = EmulatorPkg/EmulatorPkg.dsc

这里可以不设置,通过参数列表指定 3.生成BaseTools

执行 edksetup.bat rebuild 或在 BaseTools目录下运行 nmake

4.执行edkstup.bat 构建编译环境

  1. 执行 build -D ADD_SHELL_STRING 指令编辑模拟器

edk2\Build\EmulatorX64\DEBUG_VS2019\X64\WinHost.exe

  1. 执行 build -p OvmfPkg/OvmfPkgX64.dsc 指令编译 支持 uefi 的虚拟机的BIOS

6.OVMF制作

OVMF(开放虚拟机固件)是使用于虚拟机上的UEFI固件。EDK2提供了相应制作虚拟机固件的方法

制作OVMF:编译OVMF包,分两种情况 1)编译64位:build过程中使用 build -a X64 -p OvmfPkg\OvmfPkgX64.dsc -t VS2019 输出: edk2\Build\OvmfX64\DEBUG_VS2019\FV\OVMF.fd 2)编译32位:build过程中使用 build -a IA32 -p OvmfPkg\OvmfPkgIa32.dsc -t VS2019 输出: edk2\Build\OvmfIa32\DEBUG_VS2019\FV\OVMF.fd

7.在QEMU虚拟机使用固件OVMF:

1)从qemu官网:https://www.qemu.org/download/ 下载并安装qemu 2)把上述生成的OVMF.fd文件复制到qemu安装目录下,在CMD命令下运行QEMU命令: qemu-system-x86_64.exe -bios OVMF.fd -M pc -m 256 -cpu qemu64 -vga cirrus -serial vc -parallel vc -name UEFI -boot order=dc -hda fat:rw:D:\edkarea -serial file:D:\edkarea\log.txt 运行成功后同样会进入到UEFI shell界面,其中上述命令中fat:rw:D:\edkarea为我们自己创建的在D盘中的一个文件夹,通过此命令把此文件夹当一个虚拟的磁盘挂载进去。 简化版 qemu-system-x86_64.exe -L . –bios .\OVMF.fd -net none

How to run OVMF · tianocore/tianocore.github.io Wiki · GitHub

参数相关说明

本文为原创文章,转载请注明出处!