之前有搭建过一次UDK2的环境,但是因为换了新的工作电脑,所以需要重新搭建一次,刚好使用最新的Tool写一篇搭建edk2的的博客。
这次环境搭建没有出什么奇奇怪怪的问题,大家按照我的步骤做就行。
第一步.下载UDK2环境需要的Tool
当前下载的Tool版本
NSAM:2.16.01
IASL:20230628
Python:3.11.4
Openssl:3.1.1
VS:2019 Community
edk2:202305
1. 安装VS2019社区版本
下载地址:https://visualstudio.microsoft.com/zh-hans/vs/
选择Visual Studio Community 2019版本下载;
安装的时候把 C / C++ / NET 的选项全部勾上;
注意:
1. 目前edk2最新版本的20230628只支持到VS2019;
2. 安装路径最好是不要加入空格,否则编译时有概率会报错
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\cl.exe' : return code '0x1'
2. 安装NASM IASL Python和Openssl
安装NASM
NASM下载地址:https://nasm.us/
安装时路径安装在 C:\nasm 下;
安装IASL
下载地址:https://acpica.org/downloads
下载之后解压到 C:\iasl 下
安装OpenSSL
下载地址:https://github.com/openssl/openssl/releases
下载Zip后缀的Openssl文件;
下载之后解压到 C:\openssl 下
安装Python
下载地址:https://www.python.org/
下载后安装到 C:\Python 下
如果没办法更改安装路径,就勾选自动添加环境变量这个选项;
下载edk2和相关的tool
下载edk2
下载地址:https://github.com/tianocore/edk2/releases?page=1
下载edk2-BaseTools-win32-master
下载地址:https://github.com/tianocore/edk2-BaseTools-win32
第二步. 环境配置
在 此电脑 ==> 属性 ==> 关于 ==> 高级系统设置 ==> 环境变量 中添加以下变量:
IASL_PREFIX=C:\IASL
NASM_PREFIX=C:\NASM
在path变量内添加 C:\openssl
解压edk2-BaseTools-win32-master,将文件名更改为win32,剪切到edk2-edk2-stable202305\BaseTools\Bin路径下
解压openssl-OpenSSL_1_1_0g,将文件夹内的文件放在edk2-stable202305\CryptoPkg\Library\OpensslLib\openssl路径下
注意:解压edk2时edk2-edk2-stable202305\CryptoPkg\Library\OpensslLib\openssl路径文件夹本身就存在,文件夹内无内容
第三步.编译edk2
-
先使用CMD窗口,将路径定位到edk2文件夹下;
-
运行 edksetup.bat 批处理;
-
批处理运行成功后,edk2-stable202305 路径下会出现 conf 文件夹,进入文件夹后打开 target.txt 文件,更改其中的参数:
TOOL_CHAIN_TAG = VS2019
-
使用VS的窗口编译,我这里使用的是:
-
运行批处理 edksetup.bat ,运行成功后输入命令 build ;
-
窗口不报 error,显示 success 即编译通过;
到这里EDK2的环境搭建已经完成啦,第一次搭建环境我花了三四天的时间去找那些error的解决方法, 第二次搭建最新的编译环境竟然只用了半天的时间就OK了! 感谢一下luobin大佬的 <UEFI开发探索22 – 环境搭建3(使用UDK2018搭建)> 的博客, 第一次搭建环境的时候真的节省了我很多的时间,这里附上大佬的博客链接 https://blog.csdn.net/luobing4365/article/details/101018455
报错
这里把这两次环境搭建遇到的错误都贴在博客上,有遇到类似问题的可以尝试一下我的解决方式。
- NMAKE:fatal error U1077.“cl.exe” return code 0xc0000135
产生原因:在安装visual studio的时候没有勾选注册环境变量导致的。
解决办法:在系统环境变量中加入visual studio的安装路径:vs安装路径\VC\Bin,以及vs安装路径\Common7\IDE - NMAKE:fatal error U1077. return code 0x2
产生原因:找不到代码文件中包含的头文件
解决办法:cmd下进入到vs安装路径\VC\Bin下,执行vcvars32,此时会执行vcvas32.bat自动为vs设置环境变量 - python报错
产生原因:识别不到BaseTools-win32
解决办法:添加edk2\edk2-vUDK2018\BaseTools\Bin\win32路径到path中 - ‘“C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\nmake.exe”’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
产生原因:VS相应组件没有安装,路径下没有nmake.exe文件
解决办法:重新安装相应版本的VS镜像或者添加相应的C++组件 - NMAKE : fatal error U1077: ““C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\cl.exe”
return code“0x1” Stop.
产生原因:没有使用VS2015 x86 Native Tools Command Prompt
解决办法:使用兼容x86和X64兼容的命令行 - build.py…
d:\edk2\edk2-master-2019\MdeModulePkg\MdeModulePkg.dec(28): error 000E: File/directory not found in workspace
d:\edk2\edk2-master-2019\MdeModulePkg\Library\BrotliCustomDecompressLib\brotli\c\include
产生原因:找不到路径下的文件夹
解决办法:创建一个或者是删除edk2\edk2-master-2019\MdeModulePkg\MdeModulePkg.dec(28)下的\c\include路径 - Building … d:\edk2\edk2-master-2019\MdeModulePkg\Library\PeiReportStatusCodeLib\PeiReportStatusCodeLib.inf [IA32]
NMAKE : fatal error U1077: "C:\NASMnasm: ش롰0x1
Stop.
产生原因:系统识别NASM下的nasm.exe时识别错误
解决办法:删除系统变量NASM_PREFIX,重新设置或者在NASM_PREFIX路径后加个\ - GenFfs: ERROR 1000: Unknown option
-oi
ע: ļ: d:\edk2\edk2-master-2019\MdePkg\Include\Uefi/UefiGpt.h
ע: ļ: d:\edk2\edk2-master-2019\MdePkg\Include\Uefi/UefiInternalFormRepresentation.h
ע: ļ: d:\edk2\edk2-master-2019\MdePkg\Include\Guid/HiiFormMapMethodGuid.h
NMAKE : fatal error U1077: D:\edk2\edk2-master-2019\BaseTools\Bin\Win32\GenFfs.EXE: ش롰0x2
Stop.
产生原因:在使用新版的edk-master时,因为edk2-BaseTools-win32比较老,新版代码中使用了参数"-oi",旧版不支持这个参数,所以会报错
解决办法:重新编译edk2-BaseTools - ‘C:\Program’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
NMAKE : fatal error U1077: ‘"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\cl.exe’ : return code ‘0x1’
Stop.
产生原因:NMAKE识别不了C:\Program Files (x86)路径中的空格
解决办法:更改VS安装路径,安装路径中不要有空格