什么是OVMF

什么是OVMF

The Open Virtual Machine Firmware (OVMF) project aims to support firmware for Virtual Machines using the edk2 code base. More information can be found at:

http://www.tianocore.org/ovmf/

OVMF可以在如下的网站下载:

https://github.com/tianocore/edk2

下载到的是一个edk2的完全版本,其中的OvmfPkg可以用来生成OVMF二进制。

OVMF编译

Ubuntu下的编译:

为了能够顺利编译,需要有以下的几个操作:

  1. 进入BaseTools,生成编译工具,使用命令:make;

  2. 下载nasm和iasl,使用命令:apt install nasm iasl;

之后返回主目录,使用下面的命令进行编译:

source edksetup.sh  
build -p OvmfPkg/OvmfPkgX64.dsc -a X64  

编译后的文件可以在Build目录下找到。

Windows下的编译:

首先需要安装VS,可以使用Visual Studio Community 2015,它有免费的版本就可以编译UEFI。

安装Community的时候需要注意安装的过程中需要添加如下的配置,否则编译UEFI时会报错:

其它还需要安装ASL和nasm编译器,这就是两个exe,不过需要放置到正确的位置(位置由Conf下的tools_def.txt决定)。

另外,在GitHub上下载的代码没有提供Windows下的UEFI需要使用的工具(就是Linux里用make编译出来的),需要自己下载。

https://code.csdn.net/jiangwei0512/edk2-udk2017.git中有以上的Windows工具和ASL、nasm等,可以直接拿来用。

需要将ASL放到C目录下。(也可以不换,不过需要修改Conf下的tools_def.txt文件,比较麻烦)

编译的时候打开Windows Shell,然后进入UEFI目录,运行Edk2Setup.bat,然后执行Build就可以编译OVMF了。

OVMF运行

这里使用QEMU来运行OVMF。

所以首先需要下载QEMU:apt install qemu

之后就可以运行了:

 qemu-system-x86_64 -bios OVMF.fd  

这里有个问题,就是没有UEFI的打印,为了能够有打印,首先需要添加编译选项并重新生成二进制:

build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -D DEBUG_ON_SERIAL_PORT
然后在使用qemu运行时,需要加入新的参数:

qemu-system-x86_64 -bios OVMF.fd -serial stdio  

总结:OVMF是一个固件,可以在虚拟机上运行的edk2包,运行后就是那个shell界面。
在这里插入图片描述

编译生成 OVMF 是指通过 ed2k 来获得 OVMF 源代码,并将其编译成可执行文件的过程。 首先,我们需要通过 ed2k 下载 OVMF 的源代码。ed2k 是一种文件传输协议,可以在网络上找到对应的资源。我们可以使用 ed2k 客户端软件来下载 OVMF。打开 ed2k 客户端,粘贴 OVMF 的 ed2k 链接,然后开始下载。 下载完成后,我们需要解压缩 OVMF 的源代码。可以使用压缩软件(如 WinRAR)将下载的文件解压缩到一个目录中。 接下来,我们需要打开命令行终端,并进入到解压缩后的 OVMF 源代码目录。 在命令行中输入编译命令来生成 OVMF。具体的编译命令可能因操作系统和编译器而不同。常见的编译命令包括 make、gcc、cmake 等。我们可以查阅 OVMF 的文档或官方网站来获取准确的编译命令。 根据编译命令的要求,执行相应的编译命令,等待编译过程完成。编译过程可能需要一定的时间,取决于计算机性能和源代码的复杂度。 一旦编译完成,我们可以在指定的目录中找到生成的 OVMF 可执行文件。该文件就是编译生成的 OVMF。 最后,我们可以将生成的 OVMF 可执行文件用于相应的应用,如虚拟机管理器(例如 QEMU、VirtualBox)中来运行 UEFI 镜像。 总结来说,编译生成 OVMF 需要下载 OVMF 源代码,解压缩,进入命令行终端,执行编译命令,等待编译完成,并获取生成的 OVMF 可执行文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值