OVMF基础
来源:互联网 发布:淘宝中学科学实验室 编辑:程序博客网 时间:2024/06/15 18:08
什么是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.shbuild -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这样就可以有打印了:
注意:
本文使用的环境是Ubuntu16.04版本,其他版本下操作可能有所不同。
本文的环境是在coreboot基础——作为Payload的UEFI的基础上编译的,某些环境的配置可能在该文中已经设置,可以作为参考。
- OVMF基础
- EDK2编译与OVMF编译
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- 基础
- poj 1080 Human Gene Functions
- 二级指针的三种内存模型的整理与分析
- notepad++使用
- UVA 11762 Race to 1
- ios 拨打电话
- OVMF基础
- 数据结构实验之二叉树一:树的同构
- not acceptable according to the request "accept" headers 问题解决
- hadoop fs 命令
- Mac中显示隐藏文件
- SDTU(3374) 数据结构实验之查找二:平衡二叉树
- HDU 1856More is better
- codeforces 702A 水 最长连续上什子序列
- 欢迎界面2秒跳转