告别踩坑!Windows10下用VS2019+EDK2搭建UEFI开发环境(附完整配置流程与QEMU联动)

张开发
2026/6/17 12:28:03 15 分钟阅读
告别踩坑!Windows10下用VS2019+EDK2搭建UEFI开发环境(附完整配置流程与QEMU联动)
告别踩坑Windows10下用VS2019EDK2搭建UEFI开发环境附完整配置流程与QEMU联动UEFI开发环境的搭建一直是许多开发者头疼的问题尤其是在Windows10系统下使用VS2019和EDK2的组合。本文将为你提供一份完整的避坑指南从环境准备到最终测试确保你能顺利搭建开发环境并实现QEMU联动。1. 环境准备与工具安装在开始之前我们需要确保所有必要的工具和软件都已正确安装。以下是必备工具的清单Visual Studio 2019这是EDK2官方支持的最新版本不要尝试使用VS2022或更高版本。Python 3.7建议使用3.7版本因为某些工具可能对新版本支持不佳。NASM用于汇编代码编译。IASLACPI编译器。EDK2UEFI开发的核心框架。注意所有工具的安装路径最好使用默认设置特别是VS2019和Python这样可以避免许多路径相关的问题。1.1 Visual Studio 2019安装要点安装VS2019时需要特别注意以下组件MSVC v142 - VS2019 C x64/x86生成工具必须Windows 10 SDK (10.0.18362.0)必须C CMake工具可选但推荐# 验证VS2019安装是否成功 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat amd64 cl如果看到编译器版本信息说明安装成功。1.2 Python和NASM配置Python安装时务必勾选Add Python to PATH选项。NASM安装后需要将其bin目录添加到系统PATH中# 验证NASM安装 nasm -v2. EDK2环境配置EDK2是UEFI开发的核心框架其配置过程相对复杂需要特别注意以下几点。2.1 获取EDK2源代码建议使用git克隆EDK2仓库而不是直接下载zip包git clone https://github.com/tianocore/edk2.git cd edk2 git submodule update --init2.2 初始化EDK2环境运行edksetup.bat初始化环境edksetup.bat这会生成必要的配置文件包括target.txt和tools_def.txt。2.3 修改配置文件根据你的实际安装路径可能需要修改以下文件target.txt示例修改ACTIVE_PLATFORM EmulatorPkg/EmulatorPkg.dsc TARGET DEBUG TARGET_ARCH X64 TOOL_CHAIN_TAG VS2019tools_def.txt关键修改# 搜索DEFINE NASM_PREFIX并修改为你的NASM安装路径 DEFINE NASM_PREFIX C:\NASM\3. 环境变量设置正确的环境变量设置是成功编译的关键。以下是必须设置的环境变量变量名示例值说明NASM_PREFIXC:\NASM\NASM安装路径PYTHON_HOMEC:\Python37Python安装路径IASL_PREFIXC:\ASLIASL工具路径VS2019_PREFIXC:\VS2019...\14.29.30133VS2019工具链路径可以在命令提示符中临时设置这些变量或者将其添加到系统环境变量中set NASM_PREFIXC:\NASM\ set PYTHON_HOMEC:\Python374. 编译与测试4.1 首次编译使用以下命令进行首次编译edksetup.bat rebuild如果一切顺利你应该能看到Build Done的消息。4.2 常见问题解决问题1中文系统输入问题如果遇到无法输入或移动窗口的问题尝试切换为英文输入法安装英文语言包控制面板 区域 管理 更改系统区域设置问题2路径相关问题如果出现路径错误检查所有工具是否安装在默认路径环境变量是否设置正确配置文件中路径是否正确5. VS2019集成开发为了提升开发效率我们可以将EDK2项目集成到VS2019中。5.1 创建VS项目打开VS2019选择继续但无需代码文件 新建 从现有代码创建项目选择Visual C项目类型添加UEFI文件类型*.fdf;*.dsc;*.dec;*.inf;*.uni5.2 配置生成命令在项目属性中配置以下生成命令call edksetup.bat rebuild build %15.3 调试配置设置调试命令为生成的WinHost.exe路径Build\EmulatorX64\DEBUG_VS2019\X64\WinHost.exe6. QEMU联动测试QEMU提供了更完整的硬件模拟环境适合进行更全面的测试。6.1 准备QEMU环境下载QEMU并解压到EDK2根目录创建QemuDisk文件夹用于虚拟磁盘创建setup_qume.bat脚本set filename%date:0,4%%date:5,2%%date:8,2%_%time:0,2%-%time:3,2%-%time:6,2%%_DEBUG.log qemu-system-x86_64.exe -bios Build\OvmfX64\DEBUG_VS2019\FV\OVMF.fd -hda fat:rw:QemuDisk -net none -debugcon file:DebugLog%filename% -global isa-debugcon.iobase0x4026.2 编译QEMU专用固件创建QUMEbuild.bat脚本call edksetup.bat rebuild build -p OvmfPkg\OvmfPkgX64.dsc运行此脚本将生成适用于QEMU的固件文件OVMF.fd。7. 自动化脚本优化为了提高效率我们可以创建几个实用的批处理脚本VSbuild.bat- 用于常规开发编译echo off call edksetup.bat build -p EmulatorPkg/EmulatorPkg.dsc -a X64 -t VS2019QEMU_run.bat- 一键启动QEMU测试echo off set EDK2_PATH%~dp0 set QEMU_PATH%EDK2_PATH%Qemu set BIOS_PATH%EDK2_PATH%Build\OvmfX64\DEBUG_VS2019\FV\OVMF.fd %QEMU_PATH%\qemu-system-x86_64.exe -bios %BIOS_PATH% -hda fat:rw:%EDK2_PATH%QemuDisk -m 2048 -net none在实际项目中我发现将这些脚本与VS2019的外部工具功能结合使用可以极大提升开发效率。例如可以将QEMU_run.bat添加为VS2019的一个外部工具这样就能直接从IDE启动测试环境。

更多文章