UEFI_edk2环境搭建

  • UEFI_edk2环境搭建
    • 环境搭建准备
    • 软件安装
      • (一) vs2019安装
      • (二)Python安装
      • (三)IASL、NASM安装
      • (四)edk2的选择与安装
    • 环境变量配置
    • target.txt修改
    • edk2编译
    • OVMF制作和使用

UEFI_edk2环境搭建


本文选用edk2进行对UEFI的学习,首先先安装edk2,需要搭建相应环境

环境搭建准备

  • Nasm 下载地址:https://www.nasm.us/pub/nasm/releasebuilds/2.15.02/win64/
  • ASL Compiler 下载地址:https://acpica.org/sites/acpica/files/iasl-win-20200717.zip
  • Python 3.7 下载链接:https://www.python.org/downloads/windows/
  • edk2 下载地址:https://github.com/tianocore/edk2/tags
  • win10 x86_64位
  • vs2019 下载链接:https://visualstudio.microsoft.com/zh-hans/downloads

软件安装

(一) vs2019安装

进入Visual Studio Installer后选择需要的组件进行安装

(二)Python安装

python的安装过程需要注意要勾选:Add Python 3.x to PATH

(三)IASL、NASM安装

对于iasl,nasm的安装最好直接安装到c盘,因为edk2中conf/tools_def.txt下有对这两个有指定好的路径,不然就需要自己去修改

(四)edk2的选择与安装

在edk2的github官网https://github.com/tianocore/edk2中看到的edk2是不包括子模块的此时直接下载的zip是不完整的。编译起来是有问题的,而在官网中最下方有提到如何下载完整的edk2。这里需要下载git版本控制工具进行操作,clone下edk2.git后进行submodule update --init后可获得完整edk2

环境变量配置

每台电脑去编译的edk2的时候可能会出现不同的报错问题,但只要是不缺东西,通常都是环境变量没配置好,编译过程找不到相关文件的报错,这就需要自己手动去找去改,以下是个人的一下环境配置仅作参考,还没了解清楚edk2编译的过程,我经过了很多报错,都是用下面的配置去解决的,有些可能其实没用上的也列出来了。

  • VS2019_PREFIX ---- 自己路径下\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\
  • PYTHON_FREEZER_PATH----自己路径下\ AppData\Local\Programs\Python\Python37\Scripts
  • PYTHON_HOME----C:\Users\刘付明泉\AppData\Local\Programs\Python\Python37\
  • BASE_TOOLS_PATH----C:\edk2\BaseTools\
  • CLANG_BIN----C:\clang\bin\
  • CONF_PATH----C:\edk2\Conf
  • CYGWIN_HOME----C:\cygwin64\
  • EDK_TOOLS_BIN----C:\edk2\BaseTools\Bin\Win32
  • EDK_TOOLS_PATH----C:\edk2\BaseTools
  • IASL_PREFIX----C:\ASL\
  • NASM_PREFIX----C:\NASM\
  • PACKAGES_PATH----C:\edk2
  • WINSDK10_PREFIX----C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0

target.txt修改

选择什么编译工具,输出版本,选择编译的平台,以及是使用32位还是64位的配置都是在edk2中conf/target.txt中修改的

edk2编译

  • 使用cmd控制台进入到EDK 2源码根目录后执行

    C:\edk2>edksetup.bat rebuild
    
  • 成功无报错后执行

    C:\edk2>build
    

当出现done则表示编译成功,将会在edk2中build文件夹相应平台中生成相应的文件

以EmulatorIA32为例,build通过后在build文件夹中会生成相应的EmulatorIA32文件夹,里面存放着该平台对应的生成结果。

进入到C:\edk2\Build\EmulatorIA32\DEBUG_VS2019\IA32文件夹可以在文件列表中发现生成了一个名为
WinHost.exe的可执行文件,双击运行后如下:

至此edk2开发环境搭建完毕!

OVMF制作和使用

OVMF(开放虚拟机固件)是使用于虚拟机上的UEFI固件。EDK2提供了相应制作虚拟机固件的方法。下面介绍如何编译和使用虚拟机固件。

  1. 制作OVMF:编译OVMF包,分两种情况
    1)编译64位:build过程中使用
    build -a X64 -p OvmfPkg\OvmfPkgX64.dsc
    2)编译32位:build过程中使用
    build -a IA32 -p OvmfPkg\OvmfPkgIa32.dsc
    编译成功后会在edk2\Build\OvmfIa32\DEBUG_VS2019\FV\目录下生成OVMF.fd文件
  2. 在QEMU虚拟机使用固件OVMF:
    1)从qemu官网:https://www.qemu.org/download/ 下载并安装qemu
    2)把上述生成的OVMF.fd文件复制到qemu安装目录下,在CMD命令下运行QEMU命令:
    qemu-system-x86_64.exe -bios “OVMF.fd” -M “pc” -m 256 -cpu “qemu64” -vga cirrus -serial vc -parallel vc -name “UEFI” -boot order=dc -hda fat:rw:D:\edkarea -serial file:D:\edkarea\log.txt
    运行成功后同样会进入到UEFI shell界面,其中上述命令中fat:rw:D:\edkarea为我们自己创建的在D盘中的一个文件夹,通过此命令把此文件夹当一个虚拟的磁盘挂载进去。

UEFI学习(一)-EDK II环境搭建相关推荐

  1. DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu)

    DL之IDE:深度学习之计算机视觉开发环境搭建的详细流程(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow_gpu) 目录 1.安装nvidia驱动 2.安装CUDA ...

  2. OpenCV学习1--介绍与环境搭建

    OpenCV学习1--介绍与环境搭建 PS:安装过程中的一些总结和教训 安装文件夹里的V11对应的是VS2012版本,V14对应的是VS2015版本,所以使用VS2012的人可能无法使用opencv3 ...

  3. Ionic 学习笔记之-痛彻心扉的环境搭建

    Ionic 学习笔记之-痛彻心扉的环境搭建 最近在学习Ionic 做多平台的应用.跨平台应用.就是用html写的界面.js实现逻辑. 在学ionic之前选了各种跨平台APP开发框架.最后选择了ioni ...

  4. OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...

  5. 深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动

    前几天把刚拿到了2台GPU机器组装好了,也写了篇硬件配置清单的文章--<深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装>.这两台也在安装Ubuntu 16.04和108 ...

  6. UEFI入门之EDK II开发环境搭建

    EDK II是开源的对UEFI标准的实现,目前主流的IBV(BIOS代码供应商,像AMI.Insyde和Byosoft等)的代码都是基于EDK II做二次开发.本文将介绍在Windows10系统中使用 ...

  7. [UEFI开发] Linux Ubuntu EDK2环境搭建

    UEFI开发EDK2环境搭建(Ubuntu - Linux X86_64) UEFI是什么? 开发系统环境的选择--Linux 正文 安装工具 1.获取EDK 2代码 2.修改配置文件 3.编译Bas ...

  8. PHP开发学习-Apache+PHP+MySQL环境搭建

    我现在开始php的学习之旅啦! 入门:开发环境搭建 组件版本: apache2.2.22 下载地址:http://httpd.apache.org/ php5.4.11 下载地址:http://win ...

  9. SSM框架的搭建学习(1)---MyBatis的环境搭建

    SSM(Spring+SpringMVC+MyBatis)框架为当今最为流行的WEB开发框架之一,基本上涉及数据库的一些增删改查操作都可以借用此框架,本尊此前接的一个小公司关于楼宇空调监控指标的项目就 ...

最新文章

  1. 关于大XML文件与大节点处理(System.Xml.XmlTextReader)
  2. url-pattern配置
  3. Chapter10:观察者模式
  4. python以某种编码进行打印_如何在一场面试中展现你对Python的coding能力?
  5. thinkjs-定时任务
  6. 特殊用法(AHB写)
  7. easyui的datagrid的editor为combobox,根据每个row的属性的不同,如何动态的设置每个row的combobox的url...
  8. linux内存布局的内核实现--用户空间的映射方式
  9. php 还原mysql_PHP备份/还原MySQL数据库的代码
  10. 物业费管理系统c语言作业,c语言物业管理系统.doc
  11. intel c语言面试题,Intel的一道C语言笔试题
  12. Linxu终端远程协助工具termpair
  13. cnzz.php,CNZZ站长统计代码报错解决方法
  14. tersorrt安装_pytorch/mxnet模型tensorrt部署
  15. vue与C#实现自定义表单审批流程构建-后端
  16. C语言写的学生管理系统
  17. 【Unity】UI或3D场景自动设置渐变色背景
  18. Oracle数据库安装配置
  19. win2008找不到无线网络
  20. (附源码)springboot菠萝大学课室预约系统分析与设 毕业设计641656

热门文章

  1. Unity3D制作3维立体小游戏
  2. 航班查询接口调用介绍
  3. 【关于四足机器人那些事】足端轨迹规划-复合摆线轨迹
  4. 50个BA分析工具第二个-Balanced ScoreCard
  5. 表格页面html代码怎么写,设置表格标题的html的代码怎么写
  6. 口红会染唇是什么意思_最强科普!口红、唇膏、唇釉、染唇液究竟区别在哪?...
  7. 3分钟教你如何在Word里快速制作单斜线和多斜线表头
  8. VSCode已经设置过为中文但变成英文的解决办法
  9. 第8章 面向对象编程(中级部分)
  10. 微信H5页面分享案例模版