前言
在前段时间,自己也在Windows下搭建过几次,但是都卡在一些奇怪的问题上,导致无法完成搭建,这两天自己又尝试搭了几次,终于在今天编译成功了,并且进去了qemu的Shell界面。如下图示。
编译前的准备
首先在编译之前要下载好,EDK2环境需要的TOOL:
- NSAM:NASM下载地址https://nasm.us/.需下载最新版本。 然后将其放在C盘下,文件夹名为NASM。并将此访问地址放入系统环境变量中。如:NASM_PREFIX=C:\NASM\
- IASL:下载地址https://acpica.org/downloads.同NSAM一样,下载解压到C:\ASL。并将此访问地址放入系统环境变量中。
- Python:下载地址:https://www.python.org/.这里我下载的是Python3.7版本。
- VS:我安装的是VS2019社区版本。并且安装的时候要把C/C++/NET的选项全部勾上。
- qemu: 这是虚拟机,可以模拟UEFI程序下的状态。至QEMU官网下载最新安装包安 装,安装完毕后打开安装目录。目录中主要有两部分的文件夹。第一部分是固 件部分;第二部分是QEMU程序部分。
现在,万事俱备,只欠东风了,接下来就是要获取EDK2的代码。
下载地址:Releases · tianocore/edk2 · GitHub
至此环境搭建完毕,下面就是进行编译和运行EDK2了。
EDK2的编译与运行
- 使用VS的窗口编译,这是我使用的是如下图,将路径定位到EDK2文件夹下;
2.运行edksetup.bat rebuild.
获取basetools文件夹中的编译文件,用于后续的程序编译,运行完后,此Win32文件夹中将会出现各种编译工具。如下图:
3.运行edksetup.bat批处理;
4.批处理运行成功后,EDK2文件夹下或出现conf文件夹,进入文件夹后打开target.txt文件,更改其中的参数:
5.再次运行批处理成功后,输入命令Build;
6.如果窗口不报error,显示done即编译成功。
7. 此时在Build文件夹下会生成QEMU虚拟机所搭配的执行文件,即可打开虚拟机。如图所示:
编译出现的问题
1.
: error 7000: Failed to start command
C:\Program Files (x86)\Microsoft Visual Studio 9.0\Vc\bin\nmake.exe /nol
ogo tbuild [c:\edk2\Build\NT32IA32\DEBUG_VS2008x86\IA32\MdePkg\Library\PeiServic
esLib\PeiServicesLib]
build...
: error F002: Failed to build module
c:\edk2\MdePkg\Library\PeiMemoryAllocationLib\PeiMemoryAllocationLib.inf
[IA32, VS2008x86, DEBUG]
解决方法:在target.txt文件中,更改其中的TOOL参数,根据同文件夹下tools_def.txt文件。
2.
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
解决办法:创建一个或者是删除,标记文件下的\c\include路径。
3.
C:\Program’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
NMAKE : fatal error U1077: ‘"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\cl.exe’ : return code ‘0x1’
Stop.
解决办法:更改VS安装路径,安装路径中不要有空格。