本人亲测在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\
在开始菜单的visual studio 2019文件夹中打开developer command prompt, pin到taskbar,本文下面所有的命令都是在这个环境中执行的,不能用普通的command prompt来执行
2. windows 10千万不要安装git,因为它会让windows 10的任务栏挂掉,可以在外网用git下载好以后再打包发回内网。
3. 安装python(官网:https://www.python.org)
选择自定义安装,勾选全部内容
安装成功后点击Disable path length limit,然后点击close
安装完毕以后检查系统环境变量,确保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”,勾选全部组件
将安装目录(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
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