在centos7上编译EDK2

libvirt 使用UEFI 设置 edk2-ovmf 英特尔EFI开发工具包II (edk2)的子项目,所以在edk2 源码中也能找到 ovmf 部分,ovmf 使UEFI支持Ia32和X64虚拟机。2、OVMF_CODE 是 bootloader 镜像文件,而 OVMF_VARS 是保存OVMF_CODE 中变量的文件;2、UEFI:虚拟机XML 会使用OVMF_CODE.secboot.fd 和 OVMF_VARS.fd 文件去启动。1、UEFI:虚拟机XML 会使用OVMF_CODE.fd 和 OVMF_VARS.fd 文件去启动。 阅读详情

环境

centos7

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

edk2源码地址

地址:mirrors / tianocore / edk2 · CODE CHINA

下载发行版本:edk2-stable202108 · mirrors / tianocore / edk2 · CODE CHINA

下载【资源】内的一个和【其他】内的前7个

编译

1、将下载的edk2-edk2-stable202108.tar.gz解压

tar -xzvf edk2-edk2-stable202108.tar.gz

2.将下载的【其他】7个zip包复制到解压的后的文件夹edk2-edk2-stable202108中

3.进入edk2-edk2-stable202108文件夹解压【其他】七个软件包

4.下载nasm和iasl和编译EDKII所需的基本工具。

For MS Windows, prebuilt binaries of the base tools are shipped with the source; on Ubuntu the base tools required for building EDKII need to be built first.

$ yum install nasm iasl
$ make -C BaseTools

5. 建立构建环境

You need to set EDK_TOOLS_PATH and set up the build environment by running the edksetup.sh script provided in the source. This script will copy template and configuration files to edk2/Conf directory.

$ . edksetup.sh

6.修改Conf/target.txt文件

$ vim Conf/target.txt

Find

 ACTIVE_PLATFORM       = Nt32Pkg/Nt32Pkg.dsc 

and replace it with

  ACTIVE_PLATFORM       = OvmfPkg/OvmfPkgX64.dsc 

Find

 TOOL_CHAIN_TAG        = MYTOOLS 

and replace it with your version on GCC here for example GCC 4.6 will be used.

 TOOL_CHAIN_TAG        = GCC48

Find

 TARGET_ARCH           = IA32 

and replace it with 'X64' for 64bit or 'IA32 X64' to build both architectures.

 TARGET_ARCH           = X64 

注:根据实际情况进行修改 TOOL_CHAIN_TAG为本环境的GCC版本。

7.Build OvmfPkg

执行如下命令

$ build

On an i7 with 16GB RAM the total build time is less than 30 seconds.

The firmware image produced will be located in Build/OvmfX64/DEBUG_GCC46/FV/OVMF.fd.

If you'd like debug output on the serial console, use the DEBUG_ON_SERIAL_PORT option:

$ build -DDEBUG_ON_SERIAL_PORT=TRUE

8.生成的固件路径为:/OvmfX64/DEBUG_GCC46/FV/OVMF.fd

编译完毕的OVMF.fd文件:OVMF1124.fd-Linux文档类资源-优快云下载

CentOS 7下EDK2 UDK2018搭建UEFI引导环境与ESP启动验证 UEFI 启动流程的核心是固件按 GPT 分区表找到 ESP 分区,并在 BDS 阶段加载 PE32+ 格式的 BOOTx64.EFI。EDK2/TianoCore 作为开源 UEFI 开发环境,通过 BaseTools 把源码构建为 OVMF 固件、UEFI Shell 和最小 EFI 应用,便于验证引导服务表、文件系统与驱动加载。掌握这条链路,对操作系统实验、固件开发、虚拟机及 U 盘启动排查都有直接价值。围绕 CentOS 7、UDK2018、target.txt 配置、OVMF/Shell/Hell 阅读详情

相关推荐

手写UEFI引导程序:从EDK2环境搭建到U盘启动盘实战

计算机启动流程是操作系统运行的基石。传统BIOS固件因16位实模式、MBR分区大小限制等问题,在应对现代大容量存储与快速启动需求时日渐吃力,而UEFI(统一可扩展固件接口)通过GPT分区表、PE/COFF镜像格式以及Boot Manager机制,实现了更灵活、更安全的引导方式。理解UEFI引导原理,是内核开发、固件定制和Linux启动排错的关键基础。借助Intel开源的TianoCore EDK2框架,开发者可以在Linux环境下搭建交叉编译工具链,编译生成UEFI Shell并制作可启动U盘。从配置tar

weixin_34161083的博客 339

Centos7 编译OVMF 记录

最近在忙活BIOS PXE相关部分,所以从github上找了edkII的源码坐下尝试。 这里记录下VMware虚拟机centos7上编译ovmf的过程 1.ovmf源码下载 github可以直接找,也可以用码云导入后再下载,这里不详细介绍。我是拷贝了一份别的机器上的代码。 2.BaseTool编译 2.1 make clean 2.2 yum...

melo_fang的博客 969

CentOS 7+GCC 4.8+UDK2018搭建UEFI/EDK2开发环境与启动U盘

UEFI(统一可扩展固件接口)是现代平台替代传统BIOS的启动规范,EDK2则是其开源参考实现。其启动原理可概括为:固件读取GPT分区表,定位FAT32格式的ESP分区,并从EFI/BOOT/BOOTX64.EFI这一默认回退路径加载PE/COFF应用。对固件与驱动开发者而言,稳定可复现的编译环境直接决定调试效率;虚拟机固件替换、UEFI Shell调试和U盘启动实验都依赖这条链路。围绕CentOS 7、GCC 4.8与UDK2018的版本对齐,先编译BaseTools,再生成OVMF.fd与Shell.e

weixin_29194693的博客 228

centos7环境搭建

1、ping www.baidu.com报name or service not known https://blog.youkuaiyun.com/qq_34532187/article/details/82145944?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-Blog...

wuli13141516的博客 376

CentOS7+UDK2018:EDK2 UEFI环境搭建与Shell引导

UEFI 是替代传统 BIOS 的固件接口标准,EDK2 则是其开源参考实现;理解模块描述、平台配置、工具链标签与 PE32+ 产物之间的关系,是搭建可复现引导开发环境的基础。通过 BaseTools 编译、target.txt 指定 GCC48/X64、再将 Shell.efi 或自定义应用放入 GPT 磁盘的 ESP 分区,可让固件按默认路径完成加载。其技术价值在于把编译、分区、固件类型与启动项串成可验证链路,减少黑屏和“文件存在却执行失败”的排查成本。该流程适用于 CentOS7 上的 UDK2018

weixin_29170327的博客 268

UEFI引导程序开发环境搭建:EDK2与ESP分区实战

UEFI引导程序开发涉及固件、分区与编译工具链的协同。其核心原理是固件从GPT分区表的ESP分区加载PE格式的EFI应用。技术价值在于实现操作系统与硬件间的标准化启动接口,应用场景包括系统引导、固件调试与嵌入式开发。搭建EDK2开发环境需注意工具链版本与子模块依赖,制作可引导U盘则需正确创建ESP分区并放置BOOTx64.EFI。本文围绕UEFI引导程序实现,详解从环境配置到虚拟机验证的完整流程,助你避开常见陷阱。

weixin_29188043的博客 310

kvm显卡透传(centos)

一、硬件条件 首先要确定主板和CPU都支持虚拟化技术,在BIOS将VT-d、VT-x设置成enable。 以Intel为例: VT: Intel Virtualization Technology VT-d: Intel VT for Directed I/O 双显卡支持,一块主机用,另一块虚拟机用(一块集显,一块独立理论可以,未测试)。 二、检查支持选项 a、确认内核是否...

胡铁威的博客 1万+

EDK2 UDK2018环境搭建与UEFI引导程序开发排错实战

UEFI是替代传统BIOS的现代固件接口,引导时从GPT磁盘的ESP分区(FAT32)查找EFI/BOOT/BOOTx64.EFI并加载PE/COFF应用。EDK2是开发UEFI固件、驱动与应用的开源框架,UDK2018对应以make和BaseTools为核心的经典构建体系。掌握该工具链可生成Shell.efi、OVMF.fd等产物,用于虚拟机启动、U盘引导修复和固件实验。工程实践中,需在CentOS 7上对齐GCC48、BaseTools与源码子模块,按GPT+ESP+FAT32规范部署BOOTx64.E

weixin_29190651的博客 220

centos中openstack不支持UEFI,报错uefi not supported: uefi不受支持

UEFI不受支持,日志报错uefinotsupported: uefi不受支持,需要修改源码 安装ovmf及win10镜像见之前文章:https://blog.youkuaiyun.com/hutiewei2008/article/details/85986652 计算节点compute /usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.p...

胡铁威的博客 3057

UEFI引导程序实战:从EDK2环境到内核启动完整实现

从传统BIOS到UEFI的演进中,引导程序(Boot Loader)成为操作系统启动的关键环节,其开发涉及PE/COFF镜像格式、UEFI系统表、调用约定等底层机制。面对这类需求,EDK2作为功能完整的UEFI开发环境,通过dsc、inf、fdf描述文件自动完成镜像构建,大幅降低开发门槛。而UEFI引导还依赖GPT分区表与ESP系统分区,它们定义了固件寻找引导镜像的路径,是制作启动介质的前提。该技术广泛用于自制操作系统、嵌入式固件调试和虚拟化验证场景。本文沿着从搭建EDK2编译环境、配置target.txt

weixin_33816946的博客 392

centOS迅雷下载地址及安装图解

提供centOS六个版本的下载地址,从centOS-6.2到centOS-7,以及超级详细的安装图解,从零开始学centOS的安装。

KVM 虚拟机 XML 配置详解:从底层原理到多架构实战

KVM虚拟化环境中,libvirt域XML配置文件是定义虚拟机硬件的核心配置文件。文章分析了XML文件的底层原理和关键配置技巧:1) XML作为硬件抽象层,实现声明式配置和跨平台兼容;2) 配置文件的生命周期管理,包括存储位置和常用命令;3) 核心配置字段详解,涵盖域定义、操作系统引导、CPU内存优化、设备配置等。特别针对不同架构(x86_64/aarch64/riscv64)的配置差异进行了对比,并详细解析了磁盘和网络设备的PCI地址分配规则,为虚拟化环境配置提供了实用参考。

tianyuanwo的专栏 548

TwinCAT 3 实战:手把手教你用PLC和C++读写第三方伺服驱动器的CoE参数

本文详细介绍了在TwinCAT 3环境中通过PLC和C++两种技术路线实现对第三方伺服驱动器CoE参数的精准操控。从环境准备到具体实现,包括硬件配置、核心函数使用及性能优化策略,为工程师提供了全面的实战指南。特别针对CoE参数访问的效率和稳定性问题,给出了实用的调试技巧和异常处理方案。

weixin_33743248的博客 446

Linux CentOS7 gcc版本更换为5

解决方法是将 mpc 、 gmp 和 mpfr 目录加到环境变量中,在 /etc/profile 文件末尾加上: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib ,之后运行 source /etc/profile。回到正题,以下是我的方法,尽可能简单详细,安装版本为 gcc-5.3.0。

jsg140的博客 1113

FPGA新手避坑指南:手把手教你搞定RTL8211千兆网PHY的时序配置(附Verilog代码)

本文详细解析了FPGA与RTL8211千兆网PHY芯片的时序配置问题,重点介绍了TXDLY/RXDLY引脚设置、FPGA发送端和接收端的Verilog实现,以及调试与验证的完整流程。通过硬件电路设计和代码示例,帮助开发者解决网络连接不稳定、丢包等常见问题,提升千兆网通信的稳定性。

weixin_28732953的博客 543

高德地图JSAPI中旋转Marker点标签图片时候,且不旋转lable内容方法。

高德地图JSAPI中旋转Marker点标签图片时候,且不旋转lable内容方法

weixin_42960380的博客 2500

5分钟搭建Ventoy开发环境:从0到1编译工具链全指南

你是否还在为Ventoy源码编译环境配置而头疼?本文将带你5分钟搭建完整开发环境,掌握从依赖安装到一键编译的全流程,让开源项目二次开发不再困难。 ## 开发环境概览 Ventoy作为新一代可启动USB解决方案,其编译环境依赖众多开源项目。官方推荐使用CentOS 7.8 x86_64系统进行开发,建议在虚拟机中搭建测试环境以避免影响生产系统。 [![Ventoy项目结构](https://r...

gitblog_00892的博客 492

RH850从0搭建Autosar开发环境【6】- Davinci Configurator之CanIf模块配置详解(下)

RH850从0搭建Autosar开发环境【6】- Davinci Configurator之CanIf模块配置详解(下)

weixin_42412049的博客 2585

15分钟极速部署Ventoy开发环境:一站式Docker解决方案

Ventoy是一款革命性的开源启动U盘工具,它彻底改变了传统启动盘制作方式。通过Ventoy,您无需反复格式化U盘,只需将ISO/WIM/IMG/VHD(x)/EFI文件复制到U盘中即可启动。这款强大的工具支持x86 Legacy BIOS、IA32 UEFI、x86_64 UEFI、ARM64 UEFI和MIPS64EL UEFI等多种架构,兼容1200+操作系统镜像文件。 ## 🚀 为什么

gitblog_00176的博客 850

n8n智能体开发:Microsoft Outlook 节点

使用 Microsoft Outlook 节点可以自动化 Microsoft Outlook 工作流程,并将其与其他应用程序集成。n8n 内置支持多种 Microsoft Outlook 功能,包括创建、更新、删除和获取文件夹、邮件及草稿等操作。

王国平的博客 570

FP16、BF16、INT8、INT4精度模型加载所需显存以及硬件适配的分析

本文主要介绍了FP16、INT8、INT4精度模型加载占用显存大小的分析,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 模型加载显存占用大小 3. 不同精度是否与硬件适配

herosunly的博客 23万+

3步搞定Ventoy开发环境:Docker镜像极速部署全攻略

想要快速搭建Ventoy开发环境吗?Ventoy作为一款革命性的多系统启动盘制作工具,其开发环境配置一直是个技术难题。本文将为你揭秘如何通过Docker容器化技术,在3个简单步骤内完成Ventoy开发环境的完整部署!🚀 Ventoy是一款创新的可启动USB解决方案,它允许用户直接将ISO文件复制到USB驱动器并启动,无需反复格式化。对于开发者来说,快速搭建一个稳定的Ventoy开发环境至关重要

gitblog_01088的博客 799

Node-RED系列(二二):使用dashboard搭配echarts制作漂亮的面板

在node-red中dashboard 是一个很常用的模块,其中它有一个chart节点可以用来制作一些图表,比如柱状图,折线图,饼图,但其中的图表并不是很美观,而且可配置项非常的少。 于是就有很多小伙伴找我做一套比较好看的图表面板,在对比了一下几个图表库,我选中了echarts。 不仅美观大方,而且非常容易集成,配置。下面先来看一下我做的效果。这里是直接做了四个折线图,第一个折线图有动态效果,第二个折线图是一个多线条的折线图,第三个折线图是在一个图例显示两个折线图。第二第三都可以用于数据对比。 第四个折线

知无涯 1万+

Ventoy 混合 ISO 快速指南:一次生成 UEFI/BIOS 双启动的多系统启动镜像

Ventoy 能把 UEFI 引导与 BIOS 引导打包进同一个 ISO,让你用一张光盘镜像或一个 U 盘承载多个系统。本教程面向第一次接触镜像制作的普通用户,带你走通从源码构建到菜单定制的完整路径,最终产出一个同时支持两种引导模式的 VentoyLiveCD 镜像。 [![Ventoy 混合 ISO 启动背景图,展示 Ventoy 品牌标识与水墨风引导界面](https://raw.gitco

gitblog_00150的博客 517

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

centos7 配置coreboot编译环境 以及编译问题解决

本文的主要目的是搭建 coreboot 编译环境,并解决其中出现的问题

php教程_php视频教程_网页代码_php学习_phpcms_php安装 1085

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: 解决redhat7.4忘记密码的问题
下一篇: 配置qemu支持UEFI启动
五个饺子馆
博客等级 码龄10年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值