UEFI学习(一)-EDK II环境搭建

UEFI_edk2环境搭建


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

环境搭建准备

软件安装

(一) 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盘中的一个文件夹,通过此命令把此文件夹当一个虚拟的磁盘挂载进去。
  • 22
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值