图片版

https://static.someones.cn/images/2419b707555e849e3da531db0c19ca7741db9faeffda9727d1f7a4e583117fe1.png

前言

本文针对Windows系统,使用cmd作为默认shell。

配置开发环境

安装VS2019

vs2019_BuildTools.exe

安装nasm

https://www.nasm.us/pub/nasm/snapshots/latest/win64/nasm-2.17rc0-20240418-installer-x64.exe

安装完成后请检查环境变量”NASM_PREFIX”是否存在,如果不存在则手动设置,变量的值为nasm.exe所在文件夹的绝对路径

1
echo %NASM_PREFIX%

图片图片

获取Edk2最新源代码

1
2
3
4
5
6
# 克隆主仓库代码
git clone https://github.com/tianocore/edk2.git

# 更新子模块代码
cd edk2
git submodule update --init --recursive

(可选)获取C语言标准库代码

以上代码不包含C语言标准库,如果需要使用C语言标准库,可以按照下面方法下载。
克隆edk2-libc仓库,复制AppPkg、StdLib、StdLibPrivateInternalFiles这3个文件夹到Edk2源代码目录。

1
2
3
4
5
6
git clone https://github.com/tianocore/edk2-libc.git

cd edk2-libc

# 变量EDK2_SRC_DIR为代码目录
cp -a AppPkg StdLib StdLibPrivateInternalFiles %EDK2_SRC_DIR%

编译 & 运行

准备工作

  1. 编译基本工具,一般情况下只需要编译一次。

进入代码根目录,在地址栏输入cmd按回车,打开命令窗口,执行以下命令:

1
edksetup.bat

没有报错视为成功

图片

图片

  1. 编译基本工具,一般情况下只需要编译一次。

首先按照步骤1加载开发环境,然后执行以下命令

1
2
cd BaseTools
toolsetup.bat Rebuild

图片

(可选)编译并运行模拟器

首先按照步骤1加载开发环境,然后执行以下命令编译模拟器,下附编译成功图片。可参考EmulatorPkg目录里的Readme.md文件。

1
2
3
4
5
6
7
8
REM 编译模拟器
build -p EmulatorPkg\EmulatorPkg.dsc -t VS2019 -a X64

REM 运行模拟器
REM 跳转到模拟器目录
cd Build\EmulatorX64\DEBUG_VS2019\X64\
REM运行模拟器主程序
WinHost.exe

编译成功

运行模拟器

成功运行

Python错误

如果在“test_xxx”出错,一般是python脚本出错,这种情况推荐直接更换python版本。
不同的代码要求的pyhton版本不一样,暂时没有研究出版本对照表。

常见问题

  • TBD…