【edk2 】【00】【windows环境搭建】
1. 下载edk2官方源码
git clone git@github.com:tianocore/edk2.git
cd edk2 & git submodule update --init --recursive
- 最近【2024.09.29】github访问比较慢,可能需要梯子加速,或者找国内的官方镜像
2. 安装编译工具
- python3
- iasl,添加路径到系统变量
IASL_PREFIX=xxx
- nasm,添加路径到系统变量
NASM_PREFIX=xxx
- 下载
https://github.com/tianocore/edk2-BaseTools-win32
,重命名为win32
放到BaseTools\Bin目录下
- 下载
http://www.cygwin.com/setup-x86_64.exe
,添加路径到系统变量CYGWIN_HOME=xxx
- 将vs的clang工具链路径添加到系统变量,例如我的是
CLANG_BIN=D:\VisualStudio\Software\VC\Tools\Llvm\x64\bin\
- 将vs工具链路径添加到系统变量,例如
VS2019_PREFIX=D:\VisualStudio\Software\VC\Tools\MSVC\14.39.33519\
3. 尝试编译edk2工程
- 执行
edksetup.bat
,这一步会在Conf路径下生成tools_def.txt和target.txt
- 修改Conf\target.txt
TARGET_ARCH = X64
...
TOOL_CHAIN_TAG = VS2019
# *_*_*_ASL_FAMILY = INTEL
#
# *_*_*_ASL_PATH = D:\IASL\iasl.exe
#
####################################################################################
#
# Microsoft ACPI Source Language Compiler (Template)
#
####################################################################################
# *_*_*_ASL_FAMILY = MSFT
#
# *_*_*_ASL_PATH = D:\IASL\asl.exe
- 执行
edksetup.bat rebuild
- 打开vs的编译命令行
Developer Command Prompt for VS2022
,然后进Conf文件夹,执行build
命令,正常就可以进行编译了,编译完成可以看到如下打印:
Fd File Name:FV_RECOVERY (e:\edk2\Build\EmulatorX64\DEBUG_VS2019\FV\FV_RECOVERY.fd)
Generate Region at Offset 0x0
# Region Size = 0x580000
Region Name = FV
Generating FVRECOVERY FV
####
Generate Region at Offset 0x580000
Region Size = 0xC000
Region Name = DATA
Generate Region at Offset 0x58C000
Region Size = 0x2000
Region Name = None
Generate Region at Offset 0x58E000
Region Size = 0x2000
Region Name = DATA
Generate Region at Offset 0x590000
Region Size = 0x10000
Region Name = None
GUID cross reference file can be found at e:\edk2\Build\EmulatorX64\DEBUG_VS2019\FV\Guid.xref
FV Space Information
FVRECOVERY [49%Full] 5767168 (0x580000) total, 2864176 (0x2bb430) used, 2902992 (0x2c4bd0) free
- Done -
Build end time: 01:22:00, Sep.30 2024
Build total time: 00:01:21