参考书籍:UEFI编程实践

安装开发工具

可自行选择其他版本,此处使用VS2019

安装VS2019

  1. 安装路径可自定义;
  2. 勾选:使用C++的桌面开发
  3. 勾选:C++ Clang工具(最开始没有安装,导致编译MdeModulePkg一直报错)
  4. 其他项目自选

安装 Python27

也可以安装新版python,实测python38/python39没问题

  1. 打开python-2.7.15.msi安装文件,点击Next;
  2. 找到Add python.exe to path 点击前面的×,选择Will be installed on local hard drive
  3. 点击Advanced 勾选Compile .py files byte code after installation
  4. 继续安装,直到完成

NASM

下载完成之后,解压 并 改名 至

C:\nasm

IASL

下载完成之后,解压 并 改名 至:

C:\ASL

环境变量

系统变量 -> Path 下添加:

C:\Python27\
C:\ASL
C:\nasm

系统变量 下新建:

PYTHON_HOME=C:\Python27
CLANG_BIN=VS2019安装路径\2019\Professional\VC\Tools\Llvm\x64\bin\

EDKII

在C盘根目录下面新建目录:C:\UEFI,进入此目录,右键 “GIT Bash Here”,执行如下指令下载EDKII:

git clone https://github.com/tianocore/edk2.git
git clone https://github.com/tianocore/edk2-libc.git

(下载可能会失败,多试几次,或者开启VPN下载)
完成之后会在C:\UEFI目录下面生成 \edk2 和 edk2-libc

配置开发环境

更新submodule:

GIT Bash进入C:\UEFI\edk2 目录,执行如下指令:

git submodule update --init

执行完这次操作之后,以后更新submodule时,就不用添加–init,直接执行 git submodule update 。
(下载可能会失败,多试几次,或者开启VPN下载;submodule的控制文件位于edk2.gitmodules)

编译 BaseTools

  1. 进入C:\UEFI\edk2 目录,执行如下指令:
edksetup.bat Rebuild


2. 编译好的工具在:C:\UEFI\edk2\BaseTools

设置开发工具路径

为方便后续开发,设置如下脚本 以配置环境变量,内容如下:
C:\UEFI\mybuild.bat

cmd /k "set WORKSPACE=%CD%&&set EDK_TOOLS_PATH=%CD%\edk2\BaseTools&&set CONF_PATH=%CD%\edk2\conf&&set PACKAGES_PATH=%CD%\edk2;%CD%\edk2-libc&&edk2\edksetup.bat"

设置EDKII配置文件:

配置文件位于:C:\UEFI\edk2\Conf,分别是 target.txt 和 tools_def.txt

  1. C:\UEFI\edk2\Conf\target.txt (确保TOOL_CHAIN_TAG正确)
ACTIVE_PLATFORM       = EmulatorPkg/EmulatorPkg.dsc
TARGET                = DEBUG
TARGET_ARCH           = IA32
TOOL_CHAIN_CONF       = Conf/tools_def.txt
**TOOL_CHAIN_TAG        = VS2019**
  1. C:\UEFI\edk2\Conf\tools_def.txt
    主要确定工具路径,如果使用默认路径安装VS2015则不用更改路径(如果安装的其他版本,则确认对应版本的路径)

编译指令

前面环境配置完之后,以后重新运行edk2只用运行以下指令,不用重复执行上面步骤

编译前准备:

C:\UEFI,双击脚本文件:

mybuild.bat

然后直接输入编译指令即可

编译环境已准备,输入指令编译模块:

c:\UEFI>build -p ***模块路径*** -t VS2015x86 -a IA32example1:编译 EmulatorPkg 模块(edk2\EmulatorPkg\EmulatorPkg.dsc):
build -p edk2\EmulatorPkg\EmulatorPkg.dsc -t VS2015x86 -a IA32example2:编译 Hello.inf 包(AppPkg\Applications\Hello\Hello.inf)
build -p edk2-libc\AppPkg\AppPkg.dsc -a X64 -m edk2-libc\AppPkg\Applications\Hello\Hello.inf -b DEBUG

BUILD 常用参数

模拟器运行 .efi 文件

编译EmulatorPkg 模块-模拟器模块:

edk2\EmulatorPkg\EmulatorPkg.dsc

运行模拟器:

C:\UEFI\Build\EmulatorIA32\DEBUG_VS2015x86\IA32\WinHost.exe

将 .efi 程序 放到 WinHost.exe 目录,进入 shell 之后即可在当前目录找到 .efi 程序

EDK2从搭建到运行相关推荐

  1. UEFI开发探索97 – EDK2模拟器搭建网络环境

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) EDK2模拟器搭建网络环境 1 搭建EDK2开发环境 1)工具安装 2)下载代码库 3)更新子模 ...

  2. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

    上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Fe ...

  3. ubuntu下php服务器搭建_Ubuntu服务器下搭建php运行环境的方法

    本文实例讲述了Ubuntu服务器下搭建php运行环境的方法.分享给大家供大家参考,具体如下: 安装 Apache2: sudo apt-get install apache2 安装PHP模块: sud ...

  4. CentOS7安装wdCP面板,快速搭建web运行环境(图文详解)

    文章目录 1. wdCP简介 2. 安装过程 2.1 源码安装 2.1.1 ssh登录服务器 2.1.2 源码的下载.解压.安装 2.1.3 软件安装目录 2.2 进入后台管理 3.wdCP面板的卸载 ...

  5. 安装python环境与运行_专栏G|轻松学Python01:Python环境搭建与运行

    原标题:专栏G|轻松学Python01:Python环境搭建与运行 | Cora编撰 | 和[PM10分男人]一起成长 Python是一个开源且功能强大的解释型语言,应用领域比较广泛,如今越来越受重视 ...

  6. 漫游Kafka实战篇之搭建Kafka运行环境

    原文地址:http://blog.csdn.net/honglei915/article/details/37564329 Kafka视频教程同步首发,欢迎观看! 接下来一步一步搭建Kafka运行环境 ...

  7. JDK+Tomcat搭建JSP运行环境--JSP基础

    一.搭建JSP运行环境之前需要了解的基本知识 配置JSP运行环境之前,我们需要了解JSP的运行机制.只有了解JSP运行机制后,我们才能知道为什么要搭建JSP运行环境?如何去搭建JSP运行环境?为什么要 ...

  8. 如何搭建html运行环境,搭建真实的运行环境2019.4.22

    1.搭建真实运行环境步骤 ①先下载phpstudy软件 ②按照安装步骤进行phpstudy安装,安装后启动服务,点击<其它选项菜单>里面的<My HomePage>选项,正常显 ...

  9. idea搭建可运行Servlet的Web项目[maven]

    idea搭建可运行Servlet的Web项目[maven] 1. new Project File > new > Project- 2. 填写 GroupID\ArtifactID Gr ...

最新文章

  1. 菜鸟也学DW做ASP
  2. maven package自己主动部署包
  3. android中到webservice用法
  4. open live writer
  5. Spark API 详解(转)
  6. Adobe Edge Animate –获取鼠标位置及跟随鼠标功能实现
  7. PAT甲级1005 字符串的处理
  8. python-unittest学习2--生成报告
  9. Ubuntu安装显卡驱动详细步骤
  10. ROS 机器人操作系统:概述
  11. 用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker...
  12. Matlab查看像素坐标
  13. Hibernate 的检索策略
  14. 1.4 数列极限概念的推广
  15. python2打包pyQT5
  16. py实现外星人入侵(二次开发)——3.随机生成外星人和方向
  17. 2840页的计算机毕业论文!德州奥斯汀华人博士究竟写了啥?
  18. 文本识别(自然语言处理,NLP)
  19. Python3.6官方文档下载
  20. java能盗号吗_CVE-2017-8759漏洞新利用:Java Keylogger盗号木马分析

热门文章

  1. STM32CubeMX-SPI+DMA 驱动 2812 灯带
  2. 单片机串口通信的多字节传输
  3. mysql simpleconsumer_SimpleMessageListenerContainer:Consumer raised exception
  4. 微信公众号修改业务域名、JS接口安全域名、网页授权域名
  5. 计算机科学与技术哪个方向好就业前景,【计算机科学与技术】专业就业前景以及未来的就业方向...
  6. linux硬盘速度测试方法
  7. ubuntu18.0安装搜狗输入法无法显示中文
  8. 【成像】【4】产生连续波Terahertz辐射
  9. 解读BLM业务领先模型中的业务设计
  10. 有道云笔记同步IT笔试面试资源