• 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;

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

    [plain] view plain copy
     
    1. source edksetup.sh  
    2. 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

    之后就可以运行了:

    [plain] view plain copy
     
    1. qemu-system-x86_64 -bios OVMF.fd  

    下面是运行的结果:



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

    [plain] view plain copy
     
    1. build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -D DEBUG_ON_SERIAL_PORT  

    然后在使用qemu运行时,需要加入新的参数:

    [plain] view plain copy
     
      1. qemu-system-x86_64 -bios OVMF.fd -serial stdio  
  • 相关阅读:
    反射式光电开关QRE1113
    labview程序性能优化
    labview中小黑点,小红点
    简述时钟周期、机器周期、指令周期的概念及三者之间的关系
    C++中的#和##运算符
    NTC与PTC压敏电阻在电源电路中起的作用
    常用DC-DC;AC-DC电源芯片
    PC817与TL431的配合电路探讨
    React入门
    WebRTC网关服务器单端口方案实现
  • 原文地址:https://www.cnblogs.com/klb561/p/8921920.html
Copyright © 2020-2023  润新知