前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UEFI 原理与编程 1 - UEFI开发环境EDK2搭建

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

作者头像
战神伽罗
发布2020-07-29 15:25:17
6.4K6
发布2020-07-29 15:25:17
举报

概述

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

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

Windows下开发环境配置

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

安装开发工具

1. 安装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\

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

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

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

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

配置EDK2开发环境

代码语言:javascript
复制
1 cd .\edk2\
2 .\edksetup.bat

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

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

编译UEFI模拟器和UEFI工程

1. 编译UEFI模拟器
代码语言:javascript
复制
1 edksetup.bat rebuild
2 edksetup.bat --nt32
3 build

之后会看到build成功

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

之后:

代码语言:javascript
复制
1 build run
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • Windows下开发环境配置
    • 安装开发工具
      • 配置EDK2开发环境
        • 编译UEFI模拟器和UEFI工程
          • 1. 编译UEFI模拟器
      相关产品与服务
      SSL 证书
      腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档