tf卡无法格式化-如何打开注册表编辑器

intel 显卡驱动
2023年4月4日发(作者:火炬之光中文)

Intel显卡分配原理

朋友们,感觉是时候说,Intel显卡设备(IGD)目前在中可用了,而且将成为即将到来的

QEMU2.7发行版本的一部分。sourcetree上已经有了相当详细的文档,大家可以看下。其中描述

了两种模式,传统模式和通用直通(UPT)模式,两者各有利弊。哪种模式更适合你取决于你的硬

件。

UPT模式只适用于boardwell和更新的处理器,而传统模式适用于SandyBridge及其之后的处理器。

如果你的处理器比SandyBridge更老,别用了,它不会为你工作的。如果你不清楚这些陌生名字的

意义,到Wikipedia和Ark看看。

高层次的概括就是,传统模式很像我们支持的GeForce,IGD想要成为虚拟机中主要的、独占的显卡

设备。而且,虚拟机中IGD地址必然在PCI00:02.0,目前只有Seabios支持,以及只有440FX芯片组

支持(不是Q35),IGD设备必须是主要的主机显卡设备,主机需要运行在v4.6或者更高版本的内核

上。明确地分配主机的主显卡,有点和我们的GPU分配策略大相径庭。

但是我们依赖于运行IGD视频ROM,同样也就是依赖于VGA和强加大部分以上的需求(添加

CONFIG_VFIO_PCI_VGA到需求列表)。我已经看到支持UEFI的IGDROM,也就是为什么

OVMF(开放虚拟机固件)没有支持,但可能在OVMF中会支持CSM(兼容性支持模块)和一些的

额外代码。

传统模式工作在Linux和Windowns客户机(如果你愿意也可以是其他)。i915驱动深受通用视频驱

动问题的困扰,也就是解绑和重新绑定IGD到驱动上的时候,有时整个系统会崩溃。我个人是将

i915驱动列入黑名单来避免这种情况。当然一些人已经发现尝试用独立的GPU来完成,大量的驱动

准备投入到设备中保持控制台工作。我见过的主要的驱动是vesafb和efifb,哪个用在你的系统上取

决于你的主机防火墙设置,传统的BIOS还是UEFI。

关闭这些配置,只要简单添加video=vesafb:off或者video=efifb:off到内核命令行(不确定用哪

个?两个都试一下吧,video=vesafb:off,efifb:off)。首先你要注意的是,当你用已经列入黑名单

的i915驱动启动一个IGD系统,更多基础的帧缓存驱动关闭,就意味着在grub之后,你在显卡上得

不到任何东西。为此,我使用一个串行控制台,或许你更喜欢盲目运行,寄希望于系统启动可以ssh

远程登录。

如果你按照这个过程,可以在你的libvirtXML简单地创建一个,像这样:

而且,分配IGD设备(总是00:02.0)到地址00:02.0是必要的。删除

一切都能神奇地工作。警告一下,我最新的CPU是Broadwell,我已经说过这要skylake工作,但是

IGD几乎不是标准化的,每个新的实现似乎都会调整一些东西。

一些人可能会好奇为什么它不能工作在Q35上,这就引出了对UPT模式的探讨;IGD不是个独立的

GPU,但是”集成“不仅仅意味着GPU嵌入到系统中,这里是指GPU是附加在系统上。这就是为什

么IGD分配没有“只是工作”,为什么你需要一个通过vfio和BIOS支持暴露某些区域的主机内核,

以及它需要一个特定的地址等等。

其中一个需求是视频ROM实际关心设备在PCI地址00:1f:0,即ISA/LPC桥上的一些属性。Q35在那

个位置有着它自己的桥,我们不能因为兼容性就简单地修改桥的ID。因此桥和Q35冲突,意味着

IGD分配不能工作在Q35上。也就意味着PCI地址00:1f:0不能使用在440FX机器上。

UPT就是这样。Intel深知IGD的发展使得它难于处理设备分配。为了应付这个问题,软件和硬件上

都要做出了改变来助力IGD更友好地分配。好消息,对吗?首先,在UPT模式下,IGD作为虚拟机的

次要显卡,没有VGA模式支持(顺便说一句,传统模式下x-vga=on自动添加到QEMU)。

事实上,默认情况下UPT模式不支持任何类型的输出。你问这有什么用?在模拟显卡和你可以建立镜

像的IGD之间,你有一个远程能力、硬件加速显卡虚拟机。另外,如果你添加可选选项x-igd-

opregion=on到vfio-pic设备,可以得到物理显示输出,但是需要你的主机运行v4.6或更新的内核

以及即将到来的QEMU2.7,而没有输出的UPT可能已经工作相当长的一段时间了。

UPT模式对IGD的PCI地址没有要求,但是要注意,大多数虚拟机的防火墙、SeaBIOS或者OVMF,

定义主显卡为最低PCI地址的那张。通常这不是问题,但是某些人可能会创建疯狂的配置。你依然需

要完成上述的黑名单和视频禁用,否则就冒险从主机绑定和解绑i915驱动,赌一把看它会不会每次

都崩溃。

UPT听起来不错,除了为什么opregion可选?事实证明,如果你想要制作上面提到的镜像,以及用

opregion开启物理输出的话,你真的需要一个显示器连接到设备,否则你的应用程序不能得到硬件

加速。如果IGD没有任何输出,那么放心地使用硬件加速,别管什么物理连接。但是读者如果需要这

个功能(类似于x-vga=on),应该知道怎么创建包装脚本,添加这个额外的选项。我不认为Intel真

的想要支持这种混杂模式,才加了实验性的x-可选前缀标签。

对于UPT模式的多一个收获,intel似乎另有期待,我尝试用UPT运行linux客户机,但是没有成功。

只是先走一步,仅在这一点上也是为了你的windowns客户机。

还有就是,笔记本的显示功能应该正常,我相信开关输出也可以,但是在笔记本上工作不方便,因

为你没有可用的串行控制台。要注意,当你使用input-linux绑定到笔记本键盘和鼠标(不是触控式

的IME),我不知道怎么使热键工作,这是个大麻烦。一些IGD驱动在分配时会在主机上产生DMAR

错误,尤其是每台主机首次开机。

不用过于紧张,尤其是显示初始化之前如果它停止了。这似乎是在一个不能访问BIOS设置的页表的

IOMMU上下文时,重置IGD引起的。除非是不断地打印,否则它们多半是可以被忽略的。如果你有

一些比SandyBridge更老的硬件,并希望它们能派上用场,即便被告知应该停止的情况下也要继续

尝试,对不起,SandyBridge有了一些硬件改进,我还没有对更老的设备做任何测试,也真的不想

为这些过时的硬件支持额外的代码。此外,这些相当老的硬件,无论如何你都需要一个升级的理

由。

有了这些支持,我切换到桌面系统后,主机从U盘启动,之前的裸机fedora安装使用IGD虚拟化,运

行在我创建好的GeForce虚拟机上。试一下吧,祝你好运。

更多推荐

intel 显卡驱动