Windows系统UEFI开发环境搭建

本人亲测在Windows 10和Windows Server 2016上均可以搭建UEFI开发环境,下面是搭建过程。

1. edk2官方文档支持的vs版本最高只到vs2019,并不支持vs2022,经过测试也发现用vs2022确实不能build成功

    安装Visual studio community 2019 (下载地址:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=16)

    只需要选择 Desktop development with C++ 组件,其它组件都不用选。C++组件中要手动勾上C++ Clang tools,其它的保持默认状态即可   

安装完毕以后找到clang,在系统环境变量中添加CLANG_BIN=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\Llvm\x64\bin\

Windows系统UEFI开发环境搭建_第1张图片

在开始菜单的visual studio 2019文件夹中打开developer command prompt, pin到taskbar,本文下面所有的命令都是在这个环境中执行的,不能用普通的command prompt来执行

2. windows 10千万不要安装git,因为它会让windows 10的任务栏挂掉,可以在外网用git下载好以后再打包发回内网。

3. 安装python(官网:https://www.python.org)

    选择自定义安装,勾选全部内容

Windows系统UEFI开发环境搭建_第2张图片

    安装成功后点击Disable path length limit,然后点击close

Windows系统UEFI开发环境搭建_第3张图片

安装完毕以后检查系统环境变量,确保Path里面包含有Python的安装目录

添加系统环境变量 PYTHON_HOME=C:\Program Files\Python310

3. 安装nasm(官方文档:https://github.com/tianocore/tianocore.github.io/wiki/Nasm-Setup)

    下载安装文档:  

    (外网可从官网下载)https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-installer-x64.exe

    或者

    (内网可从这高速下载)aria2c -o nasm-2.15.05-installer-x64.exe -x 3 -s 12 "https://bzc.idealand.xyz:8600/dl/nasm-2.15.05-installer-x64.exe/dl" "http://tool.idealand.xyz/nasm-2.15.05-installer-x64.exe" "http://108.60.212.227/Files/Software/nasm-2.15.05-installer-x64.exe" "https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-installer-x64.exe"

    右击nasm-2.15.05-installer-x64.exe,以管理员身份运行,选择“install for anyone”,勾选全部组件

Windows系统UEFI开发环境搭建_第4张图片

Windows系统UEFI开发环境搭建_第5张图片

 

将安装目录(C:\Program Files\NASM\)添加到系统环境变量Path

设置系统环境变量 NASM_PREFIX=C:\Program Files\NASM\,目录路径的结尾一定要加\,否则设置无效

4. 安装配置IASL(官方文档:https://github.com/tianocore/tianocore.github.io/wiki/Asl-Setup)

    (外网可从官网下载)  https://acpica.org/sites/acpica/files/iasl-win-20220331.zip

  (内网高速下载)  aria2c -o iasl-win-20220331.zip -x 3 -s 12 "https://bzc.idealand.xyz:8600/dl/iasl-win-20220331.zip/dl" "http://tool.idealand.xyz/iasl-win-20220331.zip" "http://108.60.212.227/Files/Software/iasl-win-20220331.zip" "https://acpica.org/sites/acpica/files/iasl-win-20220331.zip"

    下载后解压缩,重命名为ASL, 一定要放在C:\ASL,否则可能会没法编译,这是因为conf/tools_def.txt中出现了C:\ASL\iasl.exe

5. 安装CYGWIN,这一步是可选的,不安装cygwin也可以编译成功,大家可以放心跳过这一项,直接到 6. 下载edk2

官网:https://www.cygwin.com/

下载地址:https://www.cygwin.com/setup-x86_64.exe

安装完毕以后,在系统环境变量中添加CYGWIN_HOME=C:\cygwin64\

6. 下载edk2及其子模块

    (外网用git下载)git clone --recursive https://github.com/tianocore/edk2

    (内网高速下载)aria2c -o edk2.zip -x 4 -s 12 "http://tool.idealand.xyz/edk2.zip"  "https://bzc.idealand.xyz:8600/dl/edk2.zip/dl" "http://108.60.212.227/Files/Software/edk2.zip"   

下载完毕后解压缩到自己的代码文件夹,我的是C:\code\UEFI\edk2  

7. 用下面的命令编译BaseTools,注意,在新增和修改环境变量以后要重新启动developer command prompt,否则修改的变量是不生效的。

    C:\code\UEFI\edk2> edksetup.bat Rebuild

   

8. 用下面的命令配置edk2

C:\code\UEFI\edk2> edksetup

9. 编译模拟器

首先使用Win+Space将输入法切换到英文输入法,据说这个会对模拟器的运行有影响。

打开edk2/Conf/target.txt文件进行编辑,修改以下内容:
------------------------------

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

------------------------------

运行下面的命令
C:\code\UEFI\edk2>  build

build成功以后会显示done

双击运行 \edk2\Build\EmulatorX64\DEBUG_VS2019\X64\WinHost.exe 

Windows系统UEFI开发环境搭建_第6张图片

 

参考资料:

1. UEFI tianocore官方文档
https://github.com/tianocore/tianocore.github.io/wiki
https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II
https://github.com/tianocore/tianocore.github.io/wiki/Windows-systems

2. UEFI学习---EDK II开发环境的搭建(2022-7-22)

https://www.pudn.com/news/62da52ce864d5c73ace41c1f.html

3. windows下efi编译环境配置(EDK2)

https://blog.csdn.net/zhuhuibeishadiao/article/details/113441936

4 EDK2从搭建到运行(2022-08-03)

https://blog.csdn.net/csdnlnp/article/details/125580838

5. UEFI学习(一)-EDK II环境搭建(2021-09-09)

https://blog.csdn.net/weixin_42951246/article/details/120200733

6 使用VS2019配置EDK2安装教程(2021-09-16)

https://blog.csdn.net/qq_34719392/article/details/120325700

你可能感兴趣的:(c++,windows,visual,studio)