EDK2源码下载及环境搭建
一、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中更改
EDK2源码下载及环境搭建相关推荐
- build怎么调试 react_React源码下载-本地环境搭建
前几天有小伙伴和我聊天,谈到现在前端面试越来越难,动不动就是xxx原理,有没有看过xx源码之类的问题, 之后就问我应该怎么来学习现在主流框架的源码,于是有了这一篇文章. 说到使用react那很简单 r ...
- ffmpeg编译gb28181_RTSP/GB28181协议/海康SDK/Ehome协议视频上云网关EasyCVR视频平台在linux环境下ffmpeg源码单步调试环境搭建...
目前TSINGSEE青犀视频研发的视频上云服务平台EasyCVR已经可集成海康EHome私有协议,并且在前文中我也跟大家讲过EHome协议的配置和调用流程,有兴趣的可以阅读一下:配置及协议介绍.Eho ...
- 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★
文章目录 一.Android 进程注入工具开发系列博客 二.Android 进程注入工具 源码下载编译 三.逆向环境搭建 四.使用注入工具进行逆向操作 1.获取远程进程号 2.注入工具准备 3.注入动 ...
- Disconf介绍,源码下载,环境准备,安装,disconf-web使用和配置介绍,项目中进行配置,项目案例运行
1.disconf介绍 Distributed Configuration Management Platform(分布式配置管理平台)专注于各种 分布式系统配置管理 的通用组件 / 通用平台,提供统 ...
- Mycat源码篇 : 起步,Mycat源码阅读调试环境搭建
在研究mycat源码之前必须先把环境搭建好.这篇文章的目标就是搭建mycat源码调试环境.环境主要包括: git jdk maven eclipse mysql 这里假设你知道上面的知识点.我们搭建的 ...
- 4.2.10 Kafka源码剖析, 阅读环境搭建, broker启动流程, topic创建流程, Producer生产者流程, Consumer消费者流程,
目录 4.1 Kafka源码剖析之源码阅读环境搭建 4.1.1 安装配置Gradle 4.1.2 Scala的安装和配置 4.1.3 Idea配置 4.1.4 源码操作 4.2 Kafka源码剖析之B ...
- Elasticsearch源码解析:环境搭建
在之前学习Redis的过程中,我就是一边通过文档/视频学习,一边阅读源码.我发现两种方法可以相辅相成,互相补充.阅读文档可以帮助我们快速了解某个功能,阅读源码有助于我们更深入的理解这一功能的实现及思想 ...
- Spring5源代码研究01:源码导入与环境搭建(完美无错误)
为了阅读分析Spring 5源代码,需要搭建环境将源代码导入到本地.我们使用IntelliJ IDEA作为IDE工具来分析源码.网上有很多教程要么太老,要么没有经过实践验证,要么不完美报一堆错误. 本 ...
- AOSP 安卓源码-ubuntu开发环境搭建
VM及Utuntu安装 Vmware安装/Ubuntu安装 系统安装 Vmware环境配置 安装Vmware-tools: tar -xf xxx.tar.gz sudo ./vmwa ...
最新文章
- 入职后发现公司是外包全职_我如何通过全职工作,伴侣和3岁的双胞胎男孩打造产品...
- 高通msm8994手动提升性能脚本
- 完整的url以及同源跨域处理
- 硬件基础:理解串口通信以及232,485,422常见问题
- memcached client for java api,Memcached Client Forjava API
- rdd数据存内存 数据量_Spark 性能优化(二)——数据倾斜优化
- gcc(g++)头文件搜索路径与库文件搜索路径(转载)
- [转]诺顿最新升级ID
- 数据结构与算法经典问题解析 Java语言描述pdf
- BT文件分享服务器,bt是什么意思服务(bt资源库)
- Java 给PPT添加动画效果(预设动画/自定义动画)
- 全网最全斗音短视频新老账号起号技巧
- vue获取浏览器的指纹码
- Vulkan_Shader—天空盒原理及源码
- 实操石英钟改5V充电器供电
- C++中 itoa 和 atoi 的用法
- 每天一例多线程[day18]-----ThreadPoolExecutor
- 一篇让你熟练掌握Java常用工具包(全网最全)
- 易飞ERP客户问题集合之一
- c#调用华为北向接口--HTTPS
热门文章
- php月份转英文缩写,将日期转换成时间戳 strtotime
- python安装报错error: pybind11 2.10+ requires MSVC 2017 or newer
- linux环境下java输出乱码,linux java 输出乱码问题
- Java微信开发(通过java程序获取用户个人信息)
- Excel中如何制作双斜线表头和倾斜表头?简单到两步就搞定
- cocos creator微信棋牌小游戏 幼麟棋牌服务端分析笔记
- c语言实现图书借阅系统
- 机器学习实践—基于Scikit-Learn、Keras和TensorFlow2第二版—第9章 无监督学习技术(Chapter9_Unsupervised_Learning_Techniques)
- PAT乙级练习题1030 完美数列
- mysql错误1146解决方法