OVMF (Open Virtual Machine Firmware ) 旨在支持虚拟机启动的一套edk2 Package。目前支持如下特性:


Current capabilities:* IA32 and X64 architectures* QEMU (0.10.0 or later)- Video, keyboard, IDE, CD-ROM, serial
- Runs UEFI shell
- Optional NIC support.  Requires QEMU (0.12.2 or later)

* UEFI Linux boots* UEFI Windows 8 boots* UEFI Windows 7 & Windows 2008 Server boot (see important notes below!)

由上面可知它支持QEMU模拟器,所以我们可以依靠它来做一些前期项目调试。

常规编译

常规编译方法需要我们配置Conf/target.txt:

 Update Conf/target.txt ACTIVE_PLATFORM for OVMF:PEI arch   DXE arch   UEFI interfaces* OvmfPkg/OvmfPkgIa32.dsc      IA32       IA32           IA32* OvmfPkg/OvmfPkgIa32X64.dsc   IA32       X64            X64* OvmfPkg/OvmfPkgX64.dsc       X64        X64            X64Update Conf/target.txt TARGET_ARCH based on the .dsc file:TARGET_ARCH* OvmfPkg/OvmfPkgIa32.dsc     IA32* OvmfPkg/OvmfPkgIa32X64.dsc  IA32 X64* OvmfPkg/OvmfPkgX64.dsc      X64

然后通过build命令进行编译,生成的文件在$WORKSPACE/Build/*/*/FV 目录。


* OVMF.FD- Please note!  This filename has changed.  Older releases used OVMF.Fv.

* OvmfVideo.rom- This file is not built separately any longer, starting with svn r13520.

接下来,使用qemu加载uefi:


qemu-system-x86_64  -bios  "path/to/OVMF.fd"

脚本编译

OVMF支持使用自带脚本简化编译流程:

So, for example, to build + run OVMF X64:$ OvmfPkg/build.sh -a X64$ OvmfPkg/build.sh -a X64 qemu

按照上面的命令执行,会直接运行qemu来加载生成的uefi固件。

实例

以我的本机为例,本机是Linux amd64系统,安装了GCC4.8编译器,如果我要编译一个X64版本的OVMF UEFI固件,需要配置target.txt如下所示:

 ACTIVE_PLATFORM       = OvmfPkg/OvmfPkgX64.dscTARGET                = DEBUGTARGET_ARCH           = X64TOOL_CHAIN_CONF       = Conf/tools_def.txtTOOL_CHAIN_TAG        = GCC48BUILD_RULE_CONF = Conf/build_rule.txtMAX_CONCURRENT_THREAD_NUMBER = 3

然后进入edk2根目录,执行:

Linux@x86_64: ~/edk2 $ build

UEFI开发与调试---OVMF 固件简介相关推荐

  1. 【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 )

    文章目录 一.代码调试器功能简介 二.Attach 进程 一.代码调试器功能简介 代码调试器功能 : 设置断点 : 无论什么类型的调试器 , 都必须可以设置断点 , 运行到断点处 , 挂起被调试进程 ...

  2. UEFI开发与调试---edk2中的Package

    在开始编写UEFI APP之前,我们需要先对UEFI包和模块的概念有个了解. 在edk2的根目录下,我们可以发现有很多*Pkg命令的目录,这些实际上都是各个不同的包,每个包中都是一组模块的集合,每个包 ...

  3. UEFI开发与调试--edk2中的基础组件

    还记得前面介绍的MdePkg和MdeModulePkg吗?这两个包中会实现UEFI内核中的基础组件,其中就包括了系统表,启动服务表,运行时服务表. 系统表(System Table) 系统表是edk2 ...

  4. UEFI开发与调试---edk2中的应用模块/库模块/驱动模块

    应用模块 应用模块包含标准应用程序模块,shell应用程序模块,以及main应用程序模块 标准应用程序模块 它是所有其他应用程序模块的基础,作为一个模块来说,同样由源文件和工程文件(.inf)组成. ...

  5. UEFI开发与调试---edk2中的Module

    Edk2在设计是按照模块来进行的,其中模块包含有很多种类型,比如最常见的三种:应用程序模块,驱动模块,库模块.每个模块都包含了一个工程元数据文件(.inf)和源文件..inf文件是用来辅助编译的,功能 ...

  6. UEFI开发与调试---QEMU虚拟盘的创建与修改

    支持的文件格式 qemu支持多种类型的文件系统,而最原生的以及最灵活的是qcow2类型了,这种文件系统支持写时复制,加密,压缩以及VM快照. 除了这种文件系统之外,如下类型也是被支持的:raw ,cl ...

  7. UEFI开发探索100 – 《UEFI编程实践》发布啦

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) <UEFI编程实践>发布 1 内容简介 第一部分 UEFI环境搭建及UEFI应用构建 ...

  8. 飞腾FT2000/4 u-boot/UEFI开发环境搭建

    参考 UEFI开发与调试-edk2中子目录介绍 ACP基础--Resource Descriptors for ACPI ubuntu16.04操作系统下的edk2安装 [UEFI实战]如何在OS下获 ...

  9. UEFI开发探索28 – 用Windbg建立UEFI调试环境

    (请保留-> 作者: 罗冰   https://blog.csdn.net/luobing4365) 最近的翻译计划和博客计划严重滞后.一方面是因为有两个案子在推进,业余时间也被占用:另外一方面 ...

  10. UEFI开发探索81- YIE002USB开发板(04 制作HID设备)

    (请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) YIE002USB开发板之制作HID设备-USB系统概述 1 USB规范简介 2 软件工程师眼中 ...

最新文章

  1. Python:urllib2模块的URLError与HTTPError
  2. centos /dev/mapper/cl-root 100% 解决方法
  3. python 编码问题
  4. NYOJ 56 阶乘因式分解(一)
  5. 弹出框页面中使用jquery.validate验证控件
  6. linux mod_ssl源码安装,linux下不重新编译apache添加安装mod_ssl模块和错误的处理方法...
  7. 记一次成功部署kolla-ansible ocata版本过程
  8. 微信和简书输入框文本选择手柄小bug
  9. 一种软阴影的实现方法
  10. 杰控组态软件的“远程连接服务”使用要点
  11. 三菱plc pwm指令_三菱PLC指令分享,看完就会
  12. 爬虫爬出来的数据不全_Web Scraper教程(二)爬虫入门之当当畅销书爬取
  13. 【新国产化】中国云平台能像阿里云一样,成为世界一哥吗?
  14. 怎样把一张图片插入到CAD图纸中呢?
  15. RGB 色值与十六进制色值互转
  16. 计算机基础知识常用口诀,三句口诀!记住大部分常用的电脑快捷键!
  17. 百度天气预报接口使用详细
  18. 1230k倍区间,关于cnt[0]赋值为1的解释
  19. 创新案例分享 | 建设医院绩效管理系统,促进医院健康良性发展
  20. 诺基亚Lumia 920更新后出现屏幕亮度自动调节问题?

热门文章

  1. makefile碰到问题总结
  2. uboot distro_bootcmd 理解
  3. 微信小程序---详情页
  4. 腾讯微云下载慢解决办法
  5. 什么是html阅读,HTML 介绍
  6. 普莱得电器IPO过会:拟募资5.6亿 为杨伟明及韩挺两家族控制
  7. stm32f4产生100k正弦波_STM32_DAC 实验(正弦波_方波_锯齿波_发生器)
  8. php求圆柱体积,认识圆柱体a href=http://ruiwen.com/friend/list.php(教师中心专稿)/a -- 小学数学教学资源网...
  9. 用户故事 | 李兆龙:博观而约取,厚积而薄发
  10. 原理图设计及仿真流程