UEFI--01.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
  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值