UEFI入门之EDK II开发环境搭建
EDK II是开源的对UEFI标准的实现,目前主流的IBV(BIOS代码供应商,像AMI、Insyde和Byosoft等)的代码都是基于EDK II做二次开发。本文将介绍在Windows10系统中使用VS2017做工具链,基于tag:edk2-stable201911版本代码搭建UEFI开发环境并能运行BIOS模拟器。
准备工作
1. 下载edk II代码。从github中的edk2仓库下载tag=edk2-stable201911的代码,链接为https://github.com/tianocore/edk2。不同版本的代码依赖的软件版本也不同,搭建步骤也略有区别,edk2-stable201911是目前最新的稳定版代码,本文仅适用于edk2-stable201911版本,之前版本的搭建方式请参考其他的博客。
2.安装Python3。从Python官网或Anaconda下载python3.7及以上版本安装,安装后将安装路径添加到系统变量,并将系统变量添加到环境变量Path中。
3.安装IASL。下载IASL(地址:https://acpica.org/sites/acpica/files/iasl-win-20200110.zip)并解压到C:\ASL 目录下。
4.安装NASM。下载NASM(地址:https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/win64/),安装到C:\nasm目录中。
5. 安装VS2017。
配置开发环境
1. 生成Win32 BaseTools。在代码目录打开CMD,首先运行命令:
cd BaseTools
toolsetup.sh
再返回代码根目录,运行命令:
cd ..
edksetup.bat Rebuild
运行完后在BaseTools\Bin目录下会生成Win32目录,在Conf\目录下回生成配置文件。
2. 编辑配置文件。打开Conf/target.txt文件并编辑:
ACTIVE_PLATFORM = EmulatorPkg/EmulatorPkg.dsc
TARGET = DEBUG
TARGET_ARCH = IA32
TOOL_CHAIN_CONF = Conf/tools_def.txt
TOOL_CHAIN_TAG = VS2017
MAX_CONCURRENT_THREAD_NUMBER = 8
ACTIVE_PLATFORM是由DSC文件确定的需要编译的Pkg,这里默认是EmulatorPkg/EmulatorPkg.dsc。此版本中Windows和Linux系统下的模拟器全统一在EmulatorPkg里,Nt32Pkg和UnixPkg已经被废弃。TARGET可以设置为DEBUG或者RELEASE。TARGET_ARCH在Windows下可以设置为IA32或X64。TOOL_CHAIN_CONF表示编译工具链,根据计算机安装的编译器选择即可。我的计算机安装VS2017,所以就设置为VS2017。MAX_CONCURRENT_THREAD_NUMBER表示编译期间的最大线程数,设置为计算机的线程数即可。
3. 生成模拟器。运行命令:
build
出现下图说明编译已经成功了。
运行模拟器
编译成功后,运行Build\EmulatorIA32\DEBUG_VS2017\IA32目录下的host.exe文件,会出现下图画面:
按F2可以进入Setup界面:
本文的内容就此结束。
UEFI入门之EDK II开发环境搭建相关推荐
- 【官方搭建入门】JEECG 平台开发环境搭建必读
[官方搭建入门]JEECG 平台开发环境搭建必读 下载地址:http://git.oschina.net/jeecg/jeecg 1. 标准开发环境:eclipse + maven + jdk7 + ...
- UEFI学习---EDK II开发环境的搭建
EDK II的开发环境搭建(Windows系统) 一.搭建前的准备工作 二.软件安装 1.安装VS2019 社区版 2.安装Python 3.安装Git 4.安装Nasm 5.安装IASL 6.安装Q ...
- 【Java基础快速入门】概述及开发环境搭建
概述及开发环境搭建 概述 历史 发展历程 运行机制 模块图 环境搭建 程序示例 注释 标识符 概述 历史 SUN:Stanford University Network 1982年成立 发展历程 Oa ...
- 鸿蒙os手机操作设置,华为鸿蒙HarmonyOS手机应用快速入门(一)开发环境搭建
[趋势] 如果没有意外,"万物互联" 将在未来10-20年之内,呈增长式的爆发,所以从现在开始0-5年内是"万物互联"的模式探索期和协议定制期:第5-10年之内 ...
- 【JAVA零基础入门系列】Day1 开发环境搭建
一.安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可. http://www.oracle.com/technetwork/java/javase/downloads/jdk ...
- .NET6入门:1.Windows开发环境搭建
作为.NET的最新版本.NET6长期支持版已经发布,.NET6宣称是迄今为止最快的.NET.那当然不能落下时代的潮流,就让我们跟着文章进入.NET6的世界吧. 1. .NET6SDK下载 Downlo ...
- Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建
1. Kali linux是BT5的晋级版本,用于信息安全.基于Debian7内核.新建虚拟机. 2. 选择默认虚拟机 3. 选择稍后安装操作系统 4.选择Linux Debian7 64位,因为Ka ...
- 一篇文入门微信小程序开发环境搭建
2017年小程序发布以来,经过近5年的发展,微信小程序开发已经日趋成熟.越来越多的商家已经开通了线上的电商小程序,一个是给店铺引流,另一方面也是更好的为顾客服务. 本文利用一定的篇幅讲解一下微信小程序 ...
- [官方Flink入门笔记 ] 三、开发环境搭建和应用的配置、部署及运行
一.Flink 开发环境部署和配置 Flink 是一个以 Java 及 Scala 作为开发语言的开源大数据项目,代码开源在 GitHub 上,并使用 Maven 来编译和构建项目.对于大部分使用 F ...
最新文章
- Python-输入输出
- C++ Primer 5th笔记(chap 16 模板和泛型编程)重载模板和类型转换
- 实验二:进程的创建与可执行程序的加载
- Log4Net ,.net和SQL Server的完美结合
- go build不从本地gopath获取_跟我一起学习go语言,包依赖管理工具go mod
- oracle导入substring,java中substring()和oracle中substr()区别
- springboot配置单独的参数文件
- 即时通讯的企业应用和个人应用的区别
- docker pull 下载一半_Docker三个重要的基本操作,镜像,容量,仓库
- HDU1848 Fibonacci again and again【SG函数】
- c3p0使用 与批量生成
- python解常微分方程龙格库_求解常微分方程组初值问题的龙格库塔法分析及其C代码...
- fabric usage
- iPhone手机屏幕尺寸分辨率一览
- 大学四年软件工程专业的学习经验总结
- 快来直播:坦然面对东方甄选与股价跌宕起伏
- 苹果开发者计划注册流程
- SCAR:Scalable Consensus Algorithm 灵活共识算法
- 在i3wm中修改默认终端
- linux获取网卡协议地址,读取linux下的网络设备的mac地址与发送原始数据包 (2011-11-23 20:11)...