ubuntu1604下搭建UEFI开发环境图解

ubuntu1604下搭建UEFI开发环境图解

本机器环境
本机器环境

1.EKD2开发环境简介和下载

    EDK2全称为“uEFI Development Kit”,是intel开源的一套符合UEFI标准的实现,点击进行下载 ,这个开源项目,版本众多,今天选用vUDK2018这个tag进行演示,主要这个版本有AppPkg和OptionRomPkg文件夹开发方便
在这里插入图片描述
也可以通过svn进行下载,svn路径是http://svn.code.sf.net/p/edk2/code/branches(推荐)
在这里插入图片描述

2. 安装gcc编译环境并且编译BaseTool

2.1 安装gcc编译环境

sudo apt-get install build-essential uuid-dev iasl git gcc-5 nasm python3-distutils

关于Ubuntu的build-essential有什么作用的问题,请点击我

2.2 编译BaseTool,生成所需的工具软件

#到解压的EDK2根目录执行
sudo make -C BaseTools

3.source edksetup.sh 生成build配置文件

在这里插入图片描述
可以在Conf/targe.txt中修改build编译选项,也可以在build的时候加入参数进行编译

3.1 修改target.txt内容

//运行模拟器的时候配置成EmulatorPkg/ EmulatorPkg .dsc (模拟器只能在IA32下使用,不建议使用)
//运行虚拟机的的时候配置成OvmfPkg/OvmfPkgX64.dsc(64位)或者OvmfPkg/OvmfPkgIa32.dsc(32位)
ACTIVE_PLATFORM       = EmulatorPkg/ EmulatorPkg .dsc 
TARGET                = DEBUG
TARGET_ARCH           = X64   //如果是32位则写成IA32
TOOL_CHAIN_TAG        = GCC5
MAX_CONCURRENT_THREAD_NUMBER = 4  #我的机器上支持多线程
BUILD_RULE_CONF = Conf/build_rule.txt

    也可在build的时候加入参数,这个时候可以忽略修改target.txt内容,可以不修改target.txt内容(不推荐用命令行,太麻烦)

  • p PLATFORMFILE: 目标平台描述文件
  • a TARGETARCH: 目标平台X64/IA32
  • b BUILDTARGET: 可选项(DEBUG, RELEASE, NOOPT),将只编译dsc文件中特定的模块
  • m MODULEFILE: 编译目标module
  • t TOOLCHAIN : 使用目标编译器编译
  • n THREADNUMBER : 多线程编译
  • D MACROS: Macro格式: “Name [= Value]”,传入宏定义

3.2 编译UEFI模拟器和运行

build
build run

Note:如果用以前的项目的时候build可能会找不到路径,这是因为用了以前的配置,这个时候可以改下edk2\Conf下的BuildEnv.sh 的工具的路径。
在这里插入图片描述

4. QEMU虚拟机中使用OVMF(虚拟机固件)

    QEMU是目前广泛使用的计算机仿真器和虚拟机。在QEMU虚拟机中,用户可以使用自定义的固件,利用这个特性我们可以测试OVMF.
    OVMF(open Virtual Machine Fireware,开放虚拟机固件)是用于虚拟机上的UEFI固件。在开发过程中,我们需要不断地测试所开发的产品。在模拟器中测试非常方便,但是模拟器功能有限,并且模拟器只能支持32程序(X64的机器上build run的时候失败)。另外,在真实的UEFI环境中,测试又往往比较繁琐。在虚拟机中测试无疑是一种方便,快捷的方式,它既能较好地模拟真实环境,又可以做到快速方便。EDK2提供了制作虚拟机固件的方法,成为OVMF。

4.1 安装 QEMU虚拟机

sudo apt-get install qemu

查看QEMU支持的CPU架构
在这里插入图片描述

4.2 制作OVMF

编译OVMF包
ACTIVE_PLATFORM配置成OvmfPkg/OvmfPkgX64.dsc(64位)或者OvmfPkg/OvmfPkgIa32.dsc(32位cpu)
然后进行执行

build

编译后的固件为edk2/Build/OvmfX64/DEBUG_GCC5/FV\的OVMF.fd文件
在这里插入图片描述

4.3 运行OVMF

//到OVMF.fd目录运行
qemu-system-x86_64 -bios OVMF.fd

在这里插入图片描述

输入exit后
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 当你在Ubuntu上选择2K分辨率时,出现黑屏的问题可能有几个原因。首先,您需要检查您的显卡是否支持2K分辨率。一些较旧或较低端的显卡可能无法处理较高的分辨率,导致黑屏问题。 其次,您需要确保您的显示器支持2K分辨率。如果您的显示器不支持该分辨率,那么选择2K分辨率时可能会导致黑屏。 另外,您可能遇到了驱动程序问题。在Ubuntu上,正确的显卡驱动程序对于正确处理高分辨率非常重要。您可以尝试更新或重新安装显卡驱动程序,以解决这个问题。 最后,检查您的显示器连接是否正常。确保HDMI、DVI或DisplayPort连接稳定,并正确连接到计算机和显示器。不正确或损坏的连接可能导致黑屏问题。 总结起来,如果在Ubuntu上选择2K分辨率时出现黑屏问题,您应该先检查您的显卡和显示器是否支持该分辨率,然后确保驱动程序和显示器连接正常。如果问题仍然存在,您可能需要寻求技术支持或进一步的调试。 ### 回答2: 当使用Ubuntu操作系统并选择2K分辨率时出现黑屏问题可能有多种原因。首先,我们需要确定系统和硬件是否支持2K分辨率。如果您的计算机显示器和显卡支持2K分辨率,那么我们可以尝试以下解决方法: 1. 更新显卡驱动程序:在Ubuntu中,一些显卡驱动程序可能不会默认支持2K分辨率。通过更新显卡驱动程序,我们可以获取更好的兼容性和支持。 2. 修改显示设置:在Ubuntu设置中,您可以尝试修改显示器的设置。打开系统设置,进入“显示”选项卡,并选择2K分辨率作为首选设置。您还可以尝试调整刷新率和屏幕旋转来解决问题。 3. 检查显示器连接:确保您的显示器正确连接到电脑。检查显示器连接线是否松动或损坏,并确认连接正确。 4. 检查显示器配置:有时,显示器本身的配置也可能导致问题。通过显示器的菜单选项或按钮,检查和调整显示器的配置和显示模式。 5. 启用“nomodeset”选项:在Ubuntu启动时按下Shift键,进入启动选项。然后选择相关选项,并在“nomodeset”选项处按下Enter键。这将禁用显卡和屏幕的默认驱动程序,可能解决黑屏问题。 如果上述方法仍然无法解决问题,那么问题可能涉及到更深层次的软件或硬件兼容性问题。建议您在Ubuntu官方论坛或社区中咨询其他用户,并寻求更具体的解决方案。 ### 回答3: 当在Ubuntu中选择2k分辨率时,黑屏问题可能是由于以下几个原因引起的: 1. 显卡驱动问题:Ubuntu可能没有正确识别或安装您的显卡驱动,导致在高分辨率下无法正常显示。一种解决方法是尝试更新显卡驱动,您可以通过软件更新或者官方显卡厂商网站获取最新驱动并进行安装。 2. 显卡兼容性问题:某些显卡可能不支持2k分辨率,或者不支持在Ubuntu下工作。在这种情况下,您可以尝试降低分辨率以适应您的显卡。 3. HDMI或者DP连接问题:如果您使用的是HDMI或者DisplayPort接口连接显示器,那么可能是连接出现了问题。您可以尝试重新插拔连接线,或者更换一根新的连接线。 4. 显示器设置问题:可能是由于不正确的显示器设置导致的。您可以尝试进入系统设置,查看显示器选项,并确保选择了正确的分辨率和刷新率。 5. 其他硬件问题:黑屏问题还可能与其他硬件故障相关,如电源问题、显示器本身的故障等。您可以尝试连接显示器到其他设备上进行测试,或者尝试使用其他显示器连接到您的计算机上。 总之,解决Ubuntu选择2k分辨率黑屏问题需要逐步排查可能的原因,并逐一尝试解决方法。如果问题无法解决,建议向技术支持寻求帮助,以获得更专业和详细的指导。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值