UEFI学习二:Intel GOP

一、Intel GOP简介

Intel GOP(Grapshics Output Protocol )是 UEFI 定义的 Pre-OS 显示接口,目标就是提供显示的基本功能。 无论你使用何种显卡,如果想让屏幕在开机过程有所显示,必须遵从这个协议。这次简单介绍一下 Intel 的 GOP。

二、Intel GOP流程

Intel 的GOP 会放在BIOS 中,可以看作 BIOS 的一部分。Intel Release 的 GOP有三部分:

  1. IntelGopDriver: 这是DXE 的GOP Driver
  2. IntelGraphicsPeim: 这是 PEI 阶段的 GOP。用户按下开机键后会希望尽快点亮屏幕看到提示信息,因此在 PEI 阶段点亮屏幕是非常必要的。如果希望上电就能显示,还可以去找屏幕厂商进行定制。
  3. VBTGOP 的配置文件,比如:要求某个端口输出eDP 还是HDMI信号。

BIOS 会在 PEI 阶段 调用IntelGraphicsPeim,然后 DXE 阶段调用IntelGopDriver.efi。和其他的 UEFI 下的Driver一样,这两个文件是C语言编写的,如果由需要可以联系Intel FAE 索要 DEBUG 版本的 GOP。

在OS启动过程中,OS Loader会通过 ExitBootervices()通知 Driver 退出,这时 GOP 会在从系统中卸载。但是 Intel GFX Driver会继续使用 VBT 提供的配置信息(之前的文章提到过如何在 Windows 下查找VBT)。

在 S4 和 S5 的阶段,会调用 GOP。但是 S3 和 ModernStandby 不会调用 GOP。特别是后者,如果遇到问题通常都是 Graphics Driver的问题。

目前用于修改 VBT 进行 GOP 配置的软件是: DisCon (Display Conigureation Tool),上一代的工具是 BMP (至少用了十年以上)。个人感觉这两种没有什么差别。使用的方法都是一个 Binary File 配合一个解释文件(BMP 用的是 BSF ,  DisCon 用的是 XML文件)来使用。特别注意,我感觉目前 DisCon 似乎还不稳定,有时候在解析 XML 配置文件的时候会遇到问题。出现这种问题请检查 DisCon 的版本和 VBT/Json 文件是否匹配。

特别提一下 VBT 一个新功能:LFP PnP ID。使用场景是:当你打算使用一个 VBT 支持多个LFP(Local Front Panel,内置屏幕),比如一个型号的笔记本有多个 SKU,使用了几种不同的屏幕。之前的解决方法是在 BIOS 中放置多个 VBT,然后通过 GPIO 之类的作为 BoardID,在POST过程中Load不同的 VBT。显而易见的是这样会比较麻烦,BIOS 改动较大(作为BIOS工程师,最好的设计就是不要BIOS修改)。另外,还有直接在C 代码中,通过结构体来更改 VBT 数值的方法,这种方法会让接手的人一头雾水:放在BIOS 中的 VBT 和最终 OS 下 Dump 出来的结果不同。因此,在新版的 VBT 中增加了使用 LFP PnP ID 来区分不同Panel 的方法。

  1. 在 Panel #0X 的 PnP ID 中填写你屏幕的 PnP ID
  2. 在开机过程中 GOP ,会从 Panel #01 开始扫描,如果发现有匹配的 PnP ID ,那就会使用对应的 Panel 参数
  3. 对于这个功能,如果 GOP 扫描中没有发现,那么会使用 Panel #01 的设定值;如果Select Panel Type 中没有使用Panel #FF,那么这个功能不会开启。
### 回答1: Linux VBIOS是指Linux系统中用于管理显卡BIOS的工具。在Linux系统中,VBIOS通常存储在显卡的ROM中,Linux VBIOS可以通过读取和修改显卡BIOS来控制显卡的各种参数和功能。Linux VBIOS工具可以用于修改显存大小、时序、电压、频率、风扇控制等参数,以优化显卡性能。常见的Linux VBIOS工具有vga bios utilities(vbetool)和video bios table(vbt)等。 ### 回答2: Linux VBiOS 是什么? Linux VBiOS 是针对Linux操作系统开发的特殊版本的BIOS(基本输入/输出系统)。BIOS是计算机启动时加载的固件,它负责初始化硬件设备,为操作系统提供必要的硬件支持。BIOS也提供了一些基本的输入/输出功能,例如键盘、鼠标、显示器等设备控制。 相比传统的BIOS,Linux VBiOS更专注于为Linux操作系统提供更好的兼容性和性能支持。它主要用于在启动时加载Linux内核,并将硬件设备初始化为Linux所需的状态,以便正常运行操作系统。 Linux VBiOS 的开发目的是提供一个更开放、自由的BIOS替代方案,以便用户能够更好地控制和优化硬件与操作系统的配合。与传统BIOS相比,Linux VBiOS更加灵活、可定制,可以通过修改源代码来适应不同的硬件平台和需求。 由于Linux VBiOS基于Linux系统,因此它可以充分利用Linux操作系统的优势,如开源、安全性高、兼容性好等。同时,Linux VBiOS还可以与其他开源工具和软件集成使用,以提供更多的BIOS功能和扩展性。 总的来说,Linux VBiOS是为Linux操作系统而设计的一种特殊版本的BIOS。它的特点是更加自由、灵活、可定制,并且能够通过与Linux系统的紧密集成,提供更好的兼容性和性能支持。 ### 回答3: Linux VBIOS是指Linux操作系统中的虚拟基础输入/输出系统(Virtual Basic Input/Output System)。VBIOS是一个软件接口,用于管理计算机硬件和操作系统之间的通信,它负责初始化硬件设备、加载引导程序和提供基本的输入/输出功能。 Linux VBIOS是为了提供对虚拟硬件的支持而设计的。在虚拟化环境中,Linux系统可以运行多个虚拟机,每个虚拟机都有自己的独立操作系统和硬件资源。VBIOS充当了虚拟化管理程序和虚拟机之间的桥梁,使得虚拟机可以访问和管理虚拟硬件。 Linux VBIOS为虚拟机提供了类似于物理机的BIOS功能。它可以处理虚拟机的启动过程,加载操作系统的引导程序,并且提供虚拟设备的驱动程序。同时,VBIOS还负责初始化虚拟机的硬件,如虚拟磁盘、网卡和显卡等。 Linux VBIOS的设计可以提高虚拟机的性能和可靠性。它将硬件资源的管理集中在虚拟化管理程序中,减轻了虚拟机的负担,提高了虚拟机的响应速度和资源利用率。此外,VBIOS还提供了安全机制,确保虚拟机之间不会互相干扰,并保护虚拟化环境的安全性。 总之,Linux VBIOS是Linux操作系统中的虚拟基础输入/输出系统,用于管理虚拟机的硬件资源和操作系统之间的通信。它为虚拟机提供了类似于物理机的BIOS功能,并助力于提高虚拟机的性能和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值