UEFI模拟环境搭建——windows+EDKII

目录

0 说明

1 安装软件

1.1 VS2019的安装

1.2 Python的安装

1.3 IASL的安装

1.4  NASM的安装

1.5 git的下载

2 EDKII的下载

3 配置环境


0 说明

       个人感觉UEFI的环境搭建非常复杂,在经过很长一段折磨后,终于还是搭建成功,写下来记录一下,同时如果可以的话,也希望给其他小伙伴带来一些帮助。要搭建UEFI的环境,需要下载一些必要的依赖文件:VS2019、Python、NASM、IASL、Git,下面就看下具体步骤吧。

参考资料:(非常感谢以下大佬的博客)

本文只是作为笔记使用,不作为商业用途,侵删。

UEFI——Windows10+VS2019 EDKII环境搭建_iasl下载-CSDN博客

UEFI学习---EDK II开发环境的搭建_edk2-CSDN博客

【UEFI】Windows和Linux下的环境搭建_uefi环境搭建-CSDN博客

UEFI原理与编程(二)UEFI开发环境搭建

环境:

Windows 10

1 安装软件

1.1 VS2019的安装

这里我使用的是VS2019,其实也可以选用其他的,相差不大应该都行,但是注意不要超过VS2019,因为EDKII支持的最高版本就到VS2019。

下载链接:Visual Studio 2019 再分发 | Microsoft Learn

下载之后,安装即可。

按照下图选择即可。

之后按照步骤正常安装即可。

对了,VS 2019的安装路径最好是默认的。(其实不是默认的我也没试过,参考其他人写的)

1.2 Python的安装

现在一般都是使用python3了,具体版本应该都差不多。

Download Python | Python.org

我下载的是python 11。安装python时,注意直接选择添加至环境变量,这样不用自己配置环境变量。

1.3 IASL的安装

IASL只需要下载解压,不用安装。

https://www.intel.com/content/www/us/en/developer/topic-technology/open/acpica/download.html

我放在了C盘下,C:\ASL\

1.4  NASM的安装

NASM的版本要在2.15以及以上。

Index of /pub/nasm/releasebuilds/2.15.05/win64

下载后管理员安装即可,没有什么特别注意的,有的话就注意下安装路径就行。我这里也是在C:\NASM\

1.5 git的下载

下载对应系统的git(这里是以windows 10为例)

Git - Downloading Package

2 EDKII的下载

下载git后,右键就可看到多出有关git的选项:

为了下载EDKII,我在C下创建了文件夹edk2pro。(C:\edk2pro)

进入C:\edk2pro右键打开Open Git Bash here。

下载源码:

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

这里可能会出错,大多数都是网络原因,可以多尝试几遍(如果还不行就只能换源或者(呃...))

之后进入edk2文件夹:(C:\edk2pro\edk)

$ cd edk2
$ git submodule update --init

这里给git也可能失败。同样大多数都是网络原因,可以多尝试几遍(如果还不行就只能换源或者(呃...))。

3 配置环境

这步是最麻烦、最容易出错的。

首先把python、NASM、IASL添加到用户变量里面。

找到设置——搜索高级系统设置——点击环境变量——点击用户变量path——点击编辑——添加路径即可。(有的时候要求最好要带上“ \ ”,其实不太明白这里是不是重要的,只能在编译时都试试╮(╯▽╰)╭)

如果不行可以在这里再添加下:

运行edksetup.bat(如果不行先运行edksetup.bat rebuild)

我这里是先运行edksetup.bat会报错,说没有Win32,我只好运行edksetup.bat rebuild就没事了,反正就是在运行edksetup.bat和运行edksetup.bat rebuild间不断调,最好能运行成功。具体我不太明白。╮(╯▽╰)╭

之后找到edk2\Conf,下有target.txt和tools_def.txt。

target.txt:

一般tools_def.txt不用修改。

注意以下路径:

之后就可以运行edksetup.bat rebuild

运行完后build,done即为成功。

如果这里出错,可以先配置下环境:

# 这样设置只作用于本次cmd
set PYTHON_HOME=C:\python311   # 全是我下载的路径,修改为自己路径
set NASM_PREFIX=C:\NASM\
set IASL_PREFIX=C:\ASL\
set VS2019_PREFIX= VS2019路径(写到...MSVC\14.16.27023就行)

如果以上不行,那就重启电脑,之后打开cmd,先配置环境,再edksetup.bat rebuild,再build即可。

4 运行实例代码HelloWorld

再build后就可以在...edk2\Build\EmulatorX64\DEBUG_VS2019\x64下找到WinHost.exe,点击运行。

注意这里打开后,可能没法进行操作,主要是因为输入法的问题,我们需要下载英语输入法,之后切换后再次运行。

设置——时间和语言——语言

应用后切换:

再次点击WinHost.exe,输入fs0,输入HelloWorld.efi:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2660094.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv8训练自定义数据集和运行参数解读

1、YOLOv8深度学习环境搭建及安装 1.1. Yolov8介绍 设置操作类型 YOLOv8模型可用于各种任务,包括检测、分割和分类。这些任务的不同之处在于它们产生的输出类型和它们要解决的特定问题。 **检测:**检测任务涉及识别和定位图像或视频中感兴趣的对象或区域。YOLO模…

0基础学习VR全景平台篇第132篇:曝光三要素—快门速度

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 经过前面两节课的学习我们认识了曝光三要素中的感光度和光圈,这节课我们将一同去了解影响曝光的最后一个要素——快门速度。 (曝光三要素:感光度、光圈、…

所有逐个位置相加的方法

989. 【加法模板】秒杀所有逐位相加 参考教程

算法设计与分析 | 矩阵连乘

题目描述 一个n*m矩阵由n行m列共n*m个数排列而成。两个矩阵A和B可以相乘当且仅当A的列数等于B的行数。一个N*M的矩阵乘以一个M*P的矩阵等于一个N*P的矩阵,运算量为nmp。 矩阵乘法满足结合律,A*B*C可以表示成(A*B)*C或者是A*(B*C),两者的运算…

CSS 纵向扩展动画

上干货 <template><!-- mouseenter"startAnimation" 表示在鼠标进入元素时触发 startAnimation 方法。mouseleave"stopAnimation" 表示在鼠标离开元素时触发 stopAnimation 方法。 --><!-- 容器元素 --><div class"container&q…

JavaSE50题:26. (数组练习题)使奇数位于偶数之前

概述 调整数组顺序使得奇数位于偶数之前&#xff0c;调整之后&#xff0c;不关心大小顺序。 如数组&#xff1a;{1,2,3,4,5,6} 调整后可能是&#xff1a;{1&#xff0c;5&#xff0c;3&#xff0c;4&#xff0c;2&#xff0c;6} 方法 定义 left 和 right&#xff0c;二者分别…

K8S结合Prometheus构建监控系统

一、Prometheus简介 Prometheus 是一个开源的系统监控和警报工具&#xff0c;用于收集、存储和查询时间序列数据。它专注于监控应用程序和基础设施的性能和状态&#xff0c;并提供丰富的查询语言和灵活的告警机制1、Prometheus基本介绍 数据模型&#xff1a;Prometheus 使用时…

48道Linux面试题

本博客将汇总 Linux 面试中常见的题目&#xff0c;并提供详细的解答。 文章目录 1、绝对路径用什么[符号表](https://so.csdn.net/so/search?q符号表&spm1001.2101.3001.7020)示&#xff1f;当前目录、上层目录用什么表示&#xff1f;主目录用什么表示? 切换目录用什么命…

【MyBatis-Plus】进阶之乐观锁、悲观锁逻辑删除分页和查询构造器的使用

目录 一、乐观锁、悲观锁 1、什么是乐观锁和悲观锁 ①乐观锁&#xff08;Optimistic Locking&#xff09;: ②悲观锁&#xff08;Pessimistic Locking&#xff09;: ③实现方式 2、乐观锁和悲观锁的区别 ①乐观锁&#xff08;Optimistic Locking&#xff09; ②悲观锁&…

【JavaEE】多线程(6) -- 定时器的使用及实现

目录 定时器是什么 标准库中的定时器的使用 实现定时器 定时器是什么 Java中的定时器是一种机制&#xff0c;用于在预定时间执行某个任务。它允许开发人员在指定的时间间隔内重复执行任务&#xff0c;或在指定的延迟之后执行任务。定时器是Java提供的一种方便的工具&#xf…

图分割算法之贪心算法

1 贪心算法的思想 Linear Deterministic Greedy partitioning (LDG)考虑在分割的时候将邻居结点放置在一起&#xff0c;以减少切割边。它采用贪心算法将一个结点放置在包含其邻居最多的子图中&#xff0c;同时保证每个子图的结点负载均衡&#xff0c;整个算法流程图如下其中 C …

单文件超过4GB就无法拷贝到U盘?这个你一定要知道

前言 随着现在科技发展&#xff0c;小伙伴们所使用的数据也越变越大。还记得WindowsXP流行的时候&#xff0c;XP的镜像文件仅为几百MB大小。 但是现在随便一个系统就有可能超过4GB。 如果单个文件超过4GB就有可能没办法拷贝进U盘&#xff0c;在这里就需要给小伙伴们普及一下U…

用ChatGPT挑选钻石!著名珠宝商推出-珠宝GPT

根据Salesforce最新发布的第五版《互联网购物报告》显示&#xff0c;ChatGPT等生成式AI的出现、快速发展&#xff0c;对零售行业和购物者产生了较大影响。可有效简化业务流程实现降本增效&#xff0c;并改善购物体验。 著名珠宝商James Allen为了积极拥抱生成式AI全面提升销售…

vue2使用svg图片

1、安装依赖包&#xff1a; npm install svg-sprite-loader --save-dev 2、新建assets/icons/svg中放置svg图片和index.js文件 svgo.yml文件 index.js import Vue from vue import SvgIcon from /components/SvgIcon// svg component// register globally Vue.component(sv…

antd中DatePicker禁选范围如何设置

1、解决日期禁选问题 在官方api中也提到&#xff0c;可以设置disabledDate来实现日期的禁选 语法&#xff1a; js中定义disabledData函数 const disabledDate (current) > { 设置禁选范围 } 在DatePicker 标签中引入 同时我们要知道antd是默认使用moment.js来实现日期格式…

【ES】es介绍

倒排索引&#xff08;Inverted Index&#xff09;和正排索引&#xff08;Forward Index&#xff09; 正排索引是一种以文档为单位的索引结构&#xff0c;它将文档中的每个单词或词组与其所在的文档进行映射关系的建立。正排索引通常用于快速检索指定文档的内容&#xff0c;可以…

Python列表数据处理全攻略(三):常用内置方法轻松掌握

文章目录 引言Python列表常用内置方法count()功能介绍语法示例注意事项 index()功能介绍语法示例注意事项&#xff1a; insert()功能介绍语法示例注意事项总结 结束语 引言 亲爱的读者&#xff0c;你好&#xff01;Python的列表在数据结构中占据着核心地位&#xff0c;对于学习…

k8s-cni网络 10

Flannel vxlan模式跨主机通信原理 在同一个节点上的pod 流量通过cni网桥可以直接进行转发&#xff1b; 在需要跨主机访问时&#xff0c;数据包通过flannel(隧道) 知道另一边的mac地址&#xff0c;就可以拿到另一边的ip地址&#xff0c;然后构建常规的以太网数据包&#xff0c;…

github登录需要双因素认证(Two-factor authentication)

前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 github登录需要双因素认证&#xff08;Two-factor authentication&#xff09; 今天登录github发现需要绑定双因素才能够登录 我们…

具有权威性的工信部证书怎么考

工信部证书的考试流程如下&#xff1a; 选择正规报考机构&#xff1a;选择一家权威的培训机构或考试中心&#xff0c;确保其具有相应的资质和经验。 提交个人报考资料&#xff1a;根据考试机构的要求&#xff0c;提交相关的个人报考资料&#xff0c;如身份证、学历证明、工作…