UEFI学习(一)-EDK II环境搭建
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提供了相应制作虚拟机固件的方法。下面介绍如何编译和使用虚拟机固件。
- 制作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文件 - 在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环境搭建相关推荐
- 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 ...
- OpenCV学习1--介绍与环境搭建
OpenCV学习1--介绍与环境搭建 PS:安装过程中的一些总结和教训 安装文件夹里的V11对应的是VS2012版本,V14对应的是VS2015版本,所以使用VS2012的人可能无法使用opencv3 ...
- Ionic 学习笔记之-痛彻心扉的环境搭建
Ionic 学习笔记之-痛彻心扉的环境搭建 最近在学习Ionic 做多平台的应用.跨平台应用.就是用html写的界面.js实现逻辑. 在学ionic之前选了各种跨平台APP开发框架.最后选择了ioni ...
- OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...
- 深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动
前几天把刚拿到了2台GPU机器组装好了,也写了篇硬件配置清单的文章--<深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装>.这两台也在安装Ubuntu 16.04和108 ...
- UEFI入门之EDK II开发环境搭建
EDK II是开源的对UEFI标准的实现,目前主流的IBV(BIOS代码供应商,像AMI.Insyde和Byosoft等)的代码都是基于EDK II做二次开发.本文将介绍在Windows10系统中使用 ...
- [UEFI开发] Linux Ubuntu EDK2环境搭建
UEFI开发EDK2环境搭建(Ubuntu - Linux X86_64) UEFI是什么? 开发系统环境的选择--Linux 正文 安装工具 1.获取EDK 2代码 2.修改配置文件 3.编译Bas ...
- PHP开发学习-Apache+PHP+MySQL环境搭建
我现在开始php的学习之旅啦! 入门:开发环境搭建 组件版本: apache2.2.22 下载地址:http://httpd.apache.org/ php5.4.11 下载地址:http://win ...
- SSM框架的搭建学习(1)---MyBatis的环境搭建
SSM(Spring+SpringMVC+MyBatis)框架为当今最为流行的WEB开发框架之一,基本上涉及数据库的一些增删改查操作都可以借用此框架,本尊此前接的一个小公司关于楼宇空调监控指标的项目就 ...
最新文章
- 关于大XML文件与大节点处理(System.Xml.XmlTextReader)
- url-pattern配置
- Chapter10:观察者模式
- python以某种编码进行打印_如何在一场面试中展现你对Python的coding能力?
- thinkjs-定时任务
- 特殊用法(AHB写)
- easyui的datagrid的editor为combobox,根据每个row的属性的不同,如何动态的设置每个row的combobox的url...
- linux内存布局的内核实现--用户空间的映射方式
- php 还原mysql_PHP备份/还原MySQL数据库的代码
- 物业费管理系统c语言作业,c语言物业管理系统.doc
- intel c语言面试题,Intel的一道C语言笔试题
- Linxu终端远程协助工具termpair
- cnzz.php,CNZZ站长统计代码报错解决方法
- tersorrt安装_pytorch/mxnet模型tensorrt部署
- vue与C#实现自定义表单审批流程构建-后端
- C语言写的学生管理系统
- 【Unity】UI或3D场景自动设置渐变色背景
- Oracle数据库安装配置
- win2008找不到无线网络
- (附源码)springboot菠萝大学课室预约系统分析与设 毕业设计641656