EDK2源码下载及环境搭建

2 篇文章 1 订阅

一、EDK2源码下载

上一片笔记中已经下载了git工具这里用git工具来下载edk2源码及编译工具
首先从github中将edk文件导入到我们的gittee仓库中再从我们的gitee仓库中下拉到我们的本地仓库(本地计算机)

1.edk2工具从github中导入到gitee仓库中

点击https://github.com/tianocore
点击后如下图搭建EDK2环境我们所需要的工具有edk2 、edk2-platforms 、edk2-libc

在这里插入图片描述

这里已edk2为例导入到我们的gittee仓库
双击edk2 会显示如下界面,点击code复制工具链接
在这里插入图片描述
然后回到我们的gitee仓库点击+选择从github或gitlab中导入仓库,将刚刚复制的链接复制到git仓库URL中后直接点击导入,则将edk2导入到了我们的gitee仓库中
在这里插入图片描述
“注意!!! 在github下复制的链接要和gitee中所需要的协议相同,用http协议”
我们还需要用到第三方的库用同样的方法从github中导入到gitee中,并不需要下拉到本地仓库,下面是第三方库的链接。
https://github.com/openssl/openssl
https://github.com/ucb-bar/berkeley-softfloat-3.git
https://git.cryptomilk.org/projects/cmocka.git
https://github.com/kkos/oniguruma
https://github.com/google/brotli

2.将edk2工具下拉到本地仓库

在git下点击我的仓库会发现我的仓库中已经有了我们需要的edk2工具
在这里插入图片描述
点击EDK2后点击克隆选择SSH复制链接,打开git bash shell 输入命令:git clone
“刚刚复制的仓库的地址” 加粗字体为刚刚复制的仓库地址
这步是从我们的远程仓库中下载edk2源码下载到我们的本地仓库也就是我们的电脑中
注意!!! edk2下载的路径为我们打开git bash shell 的路径
用同样的方法将其他两个edk2工具下载下来。

更新.gitmodule(子模块)文件,将第三方库加载到我们的edk2项目中。

这一步是为了在edk2中使用第三方库,没有第三方的库在编译时会报错
打开edk2文件下的.gitmodule文件,找到我们gitee对应的仓库的网址将url修改为我们自己仓库的地址
在这里插入图片描述
注意链接格式可能是http可能是ssh按照默认格式更改
最后在edk2目录下打开git bash shell 输入命令git submodule updata --init(修改后更新子模块)
等待一段时间后,输入gitee的用户名(不是邮箱)和密码即可更新成功。

二、 环境准备

1.安装c编译器 ,这里安装visual studio 2019

在官网下载后安装时选择C++ 桌面版的包 ,安装时可自定义安装路径,安装的IDE Package 尽量安装在同一路径下,Tools默认路径为c盘 想更改的话删除注册表下的Vs的路径。

2.安装IASL编译器

IASL用于编译.asl文件。.asl文件为高级配置和电源接口的源文件。
安装时可自定义

3.python

安装时要将add to path勾选上,配置环境变量,否则需要手动添加python的环境变量
安装时可自定义

4.安装NASM

官网版本库:https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D
下载地址:https://www.nasm.us/pub/nasm/releasebuilds/2.15.02/win64/
安装时可自定义

三、修改环境变量

1.添加nasm的环境变量
在这里插入图片描述
2.添加python环境变量(安装python时添加了可忽略)
在path添加python路径
在这里插入图片描述
3.添加iasl路径(也可修改edk2目录下的工具定义文件tools_def.txt路径)
在path路径下添加iasl路径

四、 修改配置文件

1.编译base tools(编译工具)

在edk文件下打开shell输入初始化命令:

edksetup.bat    //初始化编译环境 
edksetup.bat rebuild  这个步骤把build 命令加入到环境变量中,并且生成默认的conf文件

2.修改配置文件

(1)修改配置文件(target.txt)
在edk2目录下的conf文件中,打开target.txt修改下面的属性选项属性名=属性选项 如果没有将base tools 文件中的target。txt文件复制到conf文件中,

TARGET_ARCH = X64                         // 修改属性选项为X64 根据电脑属性配置
TOOL_CHAIN_TAG = VS2019                   //  编译器选项 这里安装是VS2019的编译器

这两个个选项根据自己安装的工具配置。其他属性选项默认即可
(2)修改工具文件(tools_def.txt)如果在环境变量中添加了path可忽略此步骤
接着修改tools_def.txt文件 将iasl工具添加到文件中,打开edk2路径下的tools_def.txt文件搜索VS_2017__ASL_PATH属性名将属性选项更改为iasl.exe所在的路径
在这里插入图片描述
路径后必须加上.exe文件否则编译时报错

五、编译

1.再次编译base tools 更新target文件并生成build命令

进入edk2文件下打开cmd依次输入如下命令

edksetup.bat rebuild  
edksetup.bat
build

等待编译成功后会显示如下信息:
在这里插入图片描述
至此环境已搭建完毕

六、 运行模拟环境

build命令结束后在edk2\Build\EmulatorX64\DEBUG_VS2019\X64路径下编译生成的模拟虚拟环境wenhost.exe
在这里插入图片描述

双击执行
在这里插入图片描述
在这里插入图片描述

build一些参数及选项说明

build -p $WORKSPACE/EmulatorPkg/EmulatorPkg.dsc -a X64 -b DEBUG -t GCC5 -D BUILD_64 -D UNIX_SEC_BUILD -n 3
option说明:
-p PLATFORMFILE:// 目标平台描述文件 包文件
-a TARGETARCH: //目标平台X64/IA32
-b BUILDTARGET: //可选项(DEBUG, RELEASE, NOOPT),将只编译dsc文件中特定的模块  
-m MODULEFILE: //编译目标module
-t TOOLCHAIN : //使用目标编译器编译
-n THREADNUMBER :// 多线程编译
-D MACROS: Macro格式:// "Name [= Value]",传入宏定义

build 命令 默认编译可在target中更改

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值