1 环境搭建所需工具
- VS2015/2017/2019 //我用的是2017
- EDKII资源包+EDKII-LIBC(C标准库开发包) //EDKII每个版本的支持是不一样的
//我用的是edk2-edk2-stable201911
3.NASM
4.ASL
5.PYTHON
1.1 安装VS2019
勾选安装SDK安装包
安装完成将cl编译器加入环境变量PATH中
路径:D:Program Files (x86)Microsoft Visual Studio2017EnterpriseVCToolsMSVC14.16.27023binHostx64x64
//我是装在了D盘
1.2 安装ASL
下载ASL解压到C:ASL
在环境变量PATH中添加路径
下载地址:Windows Binary Tools | The ACPI Component Architecture Project
1.3 安装NASM
下载NASM安装到C:NASM
在环境变量中新增
NAME_PREFIX
下载地址:Index of /pub/nasm/releasebuilds
1.4 下载EDKII开发资源包
Git下载的开发资源包不包含baseTool中的win32工具,以及OPENSLL库
Win32工具可以使用rebuild指令自己生成创建
OPENSLL库需要自己下载导入到D:edk2CryptoPkgLibraryOpensslLibopenssl 中
下载地址:GitHub - tianocore/edk2: EDK II
找到对应的stable201911 版本
1.5 下载EDKII-LIBC
EDKII-LIBC 可以理解是C标准库的库支持包
下载以后直接解压到EDK的目录中即可
包含有StdLibPrivateInternalFiles,StdLib,AppPkg这三个包
下载地址:GitHub - tianocore/edk2-libc: Port of libc to EDK II with applications that depend on libc
1.6 安装Python3.x
只要是3.0以上的版本都支持
安装完成将Python目录在环境变量中创建
PYTHON_HOME
二、搭建虚拟机测试环境
2.1进入到EDK文件目录中,在地址栏输入CMD并运行
PS1:没有构建之前的目录
edksetup.bat rebuild //因为没有提前添加win32文件夹和工具 这里可以重新构建
//提示没有这个文件夹,提示之后会重新构建
2.2 提示如下界面即为构建成功 Bin文件夹下会多出win32的目录
工具构建完成之后生成配置文件
//继续CMD 输入指令
edksetup.bat //生成配置文件
//配置文件目录在 edk/Conf目录下
2.3 会在目录下生产一个target和一个tools_def文件
target文件中包含了build的信息
①默认编译包名称
②编译生成的模式 Debug/Realse
③编译生成的程序位数 32/64 (IA32/X64)
④编译器版本号 VS2013-2019以及老版本VS都支持 (我是用的VS,所以只列举出VS相关)
tools_def中包含了编译器的版本路径等相关信息
//2017版本 将配置文件修改为如下
//target 参数解析 ACTIVE_PLATFORM = EmulatorPkg/EmulatorPkg.dsc //默认build的包路径 TARGET = DEBUG //编译的版本是发布还是调试 TARGET_ARCH = IA32 //程序是多少位 32/64 IA32-->32 X64-->64 TOOL_CHAIN_TAG = VS2017 //编译器版本 //我是2017
三、准备工作做好编译虚拟机
在CMD中输入Build指令 (不要关闭刚刚的CMD 如果关闭了 要重新执行1.3的步骤)
edk:> build
编译时间会长一些,耐心等
PS1:
有的教程是使用edksetup --nt 新的资源包不支持该指令 直接使用edksetup.bat 就可以了
虽然直接使用edksetup.bat会初始化数据 但是只要生产了target配置文件就不会覆盖
下次打开的时候直接edksetup.bat
//正确的样子
//生产的虚拟机文件在
C:edk2BuildEmulatorIA32DEBUG_VS2015x86IA32WinHost.exe
//疑问1 为什么是在EmulatorIA32
Q: tar配置文件第一个就是默认构建的包 这里是包名+exe位数
//运行即可
//出现该界面即为搭建完成



