UEFI 原理与编程 1 : UEFI开发环境EDK2搭建

概述

不同的厂商对UEFI有不同的实现, 一种比较常用的开源实现是EDK2. EDK2是一个遵循UEFI标准和PI标准的跨平台固件开发环境.

EDK2支持多种操作系统, 也支持跨平台编译.

Windows下开发环境配置

之前在物理机win10上进行安装, 折腾了一天也没配好环境, 包括wsl全都试过了, 全部以失败告终. 这一次直接开了一个Win7的虚拟机来安装..

安装开发工具

2. 安装VS 2015 (VS2017亦可, 但感觉VS2015文件小一点 / VS2019在2018的EDK2中无支持, 2019的EDK虽然有支持, 但由于改了很多部分, 网络上并没有对应的教程), 微软把官方的下载链接藏得比较深, 可以看这篇文章 https://www.cnblogs.com/yilezhu/p/10857134.html. 另外安装之前可能需要 Microsoft .NET Framework 4.6.1

2. 安装Python2.7 https://www.python.org/downloads/release/python-2716/. 新建环境变量PYTHON_HOME,值为C:\Python27\

3. 下载IASL编译器.  https://acpica.org/downloads/binary-tools

4. 下载NASM. https://www.nasm.us/. 往环境变量PATH中添加C:\UEFI\nasm, 并设置NASM_PREFIX=C:\UEFI\nasm\ (NASM_PREFIX不设置也可以, 但是会报warning. 如果设置必须设置正确, 一旦填错, 必须把udk2文件夹删除干净重来)

5. 下载Openssl. http://wiki.overbyte.eu/arch/openssl-1.1.0g-win32.zip. 往环境变量PATH中添加C:\UEFI\nasm\和C:\UEFI\openssl\

4.下载edk2开发包, 解压: https://codeload.github.com/tianocore/edk2/zip/vUDK2018 .

此时在根目录下应有这些文件:

5.生成OPENSSL加密库。从https://github.com/openssl/openssl/archive/OpenSSL_1_1_0g.zip下载,下载后解压到edk2\CryptoPkg\Library\OpensslLib中,重命名为openssl.

6. 预搭建base tools。从https://github.com/tianocore/edk2-BaseTools-win32 并解压到edk2\BaseTools\Bin,重命名为Win32,注意忽略此步会在接下来的搭建中遇到报错环境变量PYTHON_HOME的问题。

配置EDK2开发环境

1 cd .\edk22 .\edksetup.bat

之后会在Conf目录下建立target.txt等文件.

编辑target.txt. 修改第60行为  TOOL_CHAIN_TAG = VS2015 , 之后检查tools_def.txt, 确保编译器路径正确.

编译UEFI模拟器和UEFI工程

1. 编译UEFI模拟器

1 edksetup.bat rebuild
2 edksetup.bat --nt323 build

之后会看到build成功

该过程可能会出现脚本去C:\Program Files\ 下找Windows Kits的情况, 但一般Windows Kits在C:\Program Files(x86)\下, 而C:\Program Files\中并无此文件夹, 故而导致报错. 此时可以以管理员身份在C:\Program Files\下执行 mklink /j "Windows Kits" "C:\Program Files(x86)\Windows Kits", 创建一个软链接.

之后:

1 build run

原文地址:https://www.cnblogs.com/acdzh/p/11588387.html

时间: 2024-11-08 21:52:40

UEFI 原理与编程 1 : UEFI开发环境EDK2搭建的相关文章

Java知多少(5) Java开发环境的搭建

要进行Java开发,首先要安装JDK(Java Development Kit,Java开发工具箱). JDK 是一系列工具的集合,这些工具是编译Java源码.运行Java程序所必需的,例如JVM.基础类库.编译器.打包工具等.不论是什么样的 Java 应用服务器,都是内置了某个版本的 JDK,因此掌握 JDK 是学好 Java 的第一步. JDK所提供的部分工具: java编译器:javac.exe java解释器:java.exe java文档生成器:javadoc.exe java调试器:

开发环境——基于RHEL 6.8开发环境的搭建

开发环境--基于RHEL 6.8开发环境的搭建 本文讲述了基于RHEL 6.8操作系统搭建开发环境,主要安装了GCC 4.9.3.Qt 5.7.Apache 2.4.25.MySQL 5.6.35.本文同时适用于在Linux主机无互联网环境下搭建开发环境,只需要将所需安装包下载后拷贝到Linux主机即可. 一.RHEL6.8安装 1.RHEL 6.8下载 下载RHEL 6.8安装包:rhel-server-6.8-x86_64-dvd.iso 2.RHEL 6.8安装 安装过程中选择Develo

Android开发环境的搭建

(我果然在作死的道路上越走越远了...) 花了一下午的时间搭建了Anroid开发环境,来说说搭建的过程: 首先,百度! 网上关于Android开发环境搭建的教程有很多,但许多都很杂乱,而且时间久远已经不是很准确了. 浏览了众多教程,贴两个个人觉得较不错的教程地址: 1.http://blog.csdn.net/fl_xin/article/details/39472019 2.http://wenku.baidu.com/link?url=noSH3FDTfaZRe59RTFtuemi-6155

Ubuntu 14.04下java开发环境的搭建--3--Tomcat及MySQL的安装

前面两篇文章,已经说明了JDK和Eclipse 的安装方法,下面简单说一下,Tomcat及MySQL的安装方法. Tomcat的安装. 在合适的地方解压apache-tomcat-6.0.39.tar.gz cd /opt/DevelopTools sudo mkdir server cd server sudo cp /home/home/下载/apache-tomcat-6.0.39.tar.gz /opt/DevelopTools/server sudo tar -zxvf apache-

android笔记1——开发环境的搭建

Long Long ago...已经成为了历史,我还是要说出一个真相:早年前,那时候,android还不被大众所认知的时候,当然开发者也没不像现在那样趋于饱和状态.一位大牛前辈,也是我的学长,那时候我还在上大学.前辈告诫我有时间得去看看android开发,那时候的自己,年轻.冲动.不畏惧,毅然地选择了java服务端开发,放弃了学习android开发. 时隔数年的今天,因为公司业务项目的发展,我还是得去做android开发工作...虽然这几年间断断续续的看了些android开发,但是将成为历史的今

从svn签下代码以及集成开发环境的搭建详细过程

在经过几次的从svn上签下来代码的经历之后,终于总结出了详细的步骤 在upupw/htdocs下建立新的文件夹(此处根据你服务器的根目录而变),此处为bpb1027 ,再右键,选择SVN Checkout 填入内网或外网访问SVN的地址,后面要加个/trunk(主干开发) SVN 主干(trunk).分支(branch ).标记(tag)的不同 trunk:是用来做主方向开发的,一个新模块的开发,这个时候就放在trunk,当模块开发完成后,需要修改,就用branch. branch:是用来做并行

Perl开发环境的搭建--windows

Steps Summary: 1. 下载安装文件 2. 点击文件进行安装 3. 设置环境变量 4. 测试安装是否成功 以在win8上安装Active perl 5.22 为例 Details: 1. 下载安装文件 1) way1: 自己安装编译器,再安装Perl模块,再进行编译,安装. 这种方法的好处是可以编译安装所有的模块 2) way2: 下载已经编译好的perl模块直接进行安装 只能安装定义好的模块.但是编译好的模块一般包含了日常所需的功能.初学者最好使用第二种方法进行安装 以active

Linux平台下Java_Android开发环境的搭建

Linux 平台下安装JDK .Eclipse .Android SDK 说明 开发工具需自行去下载,此处就不再累述 该教程安装环境为 Ubuntu 14.04 x64 其他Linux操作方式基本相同 设计文件修改部分,请先备份要修改的文件,避免操作失误导致不能还原 Liunx 平台下区分大小写,输入文件名或路径建议复制避免不必要的错误 部分操作涉及root权限,为了避免麻烦 请直接使用 root权限操作 开启root权限: 1. sudo su root 2. 后面的提示中输入用户密码 安装

【2014】【辛星】【php】【秋季】【1】php开发环境的搭建

**************************什么是开发环境*********************** 1.我们学习PHP,是使用它来做web用的,通俗理解,就是做网站. 2.网站的运行需要一定的条件,比如它需要服务器.数据库等环境,当然还需要一个操作系统来支撑他们的运行. 3.我们在学习阶段,就需要模拟这个网站的运行环境,但是我们是在开发阶段,也就是所谓的"开发环境". *****************搭建环境前的选择***************************