EDK2环境搭建
一、搭建准备
1.操作系统:windows10/11;
2.编译器: VS2019社区版,找资源,微软更新太快,目前是2022了,但是EDK最高只支持到2019;
3.Python: python3.9.10;
4.Git: 64位Git
5.nasm:nasm 2.16.03,nasm最好用新的,可能会发生nasm版本低导致的错误
6.iasl:iasl
二、软件安装
1.VS2019社区版
运行安装包,继续
图片引用其他博客
最左边可以不用勾,右边两个要勾,!!!选上win10的SDK;
在单个组件中,搜一下cmake,要勾选
安装的路径选择C盘,可以新建一个英文命名的文件夹,不要有空格。第一次没编译过看跟安装路径有关,感觉跟路径没关。新建英文命名不带空格文件夹也是预防一些未知错误。但是一点要安装在C盘,安装在其他盘也会有问题。
以上都选好后安装即可。
2.安装python
电脑上安装其他IDE时也需要python;
勾上最下面的add python to path,选择customize installation,next,选择安装的文件夹,个人习惯安装到C:\python下,方便系统调用;
3.安装Git
除了中间更改自己想要安装的路径,其他的一直next即可;
4.安装nasm
运行安装包,选择安装路径,个人习惯 C:\nasm,其他next即可。添加环境nasm的环境变量NASM_PREFIX C:\nasm\ nasm后面要加“\”,也可能会报错;
5.iasl
解压下载的压缩包,重命名为iasl,放到C盘根目录下(方便调用,后期不用修改配置文件),添加iasl的环境变量;
三、下载EDK2的源码
github:https://github.com/tianocore/edk2
gitee:https://gitee.com/jeady5/edk2
以上两种方式
第一个是github的源码,第二个是gitee移植的仓库
可以克隆或者下载压缩包解压
在克隆github仓库后想进行分支的初始化,一直提示无此文件夹
踩坑:之前未进行分支的初始化,进行下面的编译工具都会提示很多路径下无文件夹,一个个去github的分支找,但是还是会有问题,
gitee的分支初始化正常主要是一部分因为外网的原因,移植到gitee后修改文件的路径即可初始化
克隆gitee库,放在C盘根目录下,在C盘下右键运行git bash here
git clone gitee链接
克隆之后,初始化分支
cd edk2
git submodule update --init
四、编译代码
1.编译Basetools(编译工具)
运行x86_x64/x64_x86的cmd,这是安装完vs2019装的,不用native的,可能会报错 (在另外一台机器上验证是使用native的才可以编译工具,视情况定,不行就换一个cmd)
cd C:\edk2
edksetup.bat //初始化编译环境
如果提示nasm和isal的environment variable is not set,需要配置一下这两个的环境变量;
遇到的错误:初始化命令输入有error是因为cmd运行错了,要使用上图框中的cmd;
初始化后有warning包括clang和cygwin的都可以不用管;
我担心出错,cygwin也安装了,也配置了环境变量
初始化完成后输入 edksteup.bat rebuild //编译工具
下图表示编译成功后在下图路径下生成一个win32的文件夹
2.修改配置文件
edksteup.bat rebuild 完成后不要关闭cmd窗口,后面还要使用
修改下图两个地方分别为X64和VS2019,个人基于64位电脑和2019搭建的,其他环境要做不一样的修改
修改保存后,在执行edksteup.bat rebuild 没关闭的cmd窗口里输入build,成功会显示Done,失败会提示fail,成功后会再edk2根目录下生成一个Build文件夹
遇到的错误:
build的过程报错,上述安装的软件和环境变量都配置好了一般不会出错;
个人遇到:
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路径后加个\
其他报错也可以参考原文
原文链接:https://blog.csdn.net/weixin_45450696/article/details/131529613
五、运行模拟器
编译完成后可以运行模拟器
路径:C:\edk2\Build\EmulatorX64\DEBUG_VS2019\X64
模拟器是路径下的winhost.exe应用,直接在cmd或者双击运行即可
运行成功的界面
参考:
https://blog.csdn.net/qq_41873192/article/details/125861472
https://blog.csdn.net/weixin_45450696/article/details/131529613