IronHide / BumbleBee与VirtualBox VM。它会通过视频加速传递到物理卡吗?


8

您是否可以通过IronHide运行Windows VM来加速图形卡?我想使用我的视频卡玩游戏/观看蓝光等。


1
我已经用大黄蜂成功运行了Windows vm,但是没有明显的效果,您是否正在寻找更具体的东西?
david.libremone

1
嗯,我想知道的VirtualBox将通过从Windows VM视频加速玩游戏/观看蓝光等
mwjackson

1
我正计划自己测试一下,如果其他人不首先回答,我会让您知道结果-也许将您的问题调整得更具体些?
david.libremone

我对您的要求有些困惑,您是否希望VM使用nvidia GPU进行3D加速?,例如通过VM直接访问图形硬件?
Uri Herrera

1
@jacko,您可能想将此问题发布在forums.virtualbox.org
david.libremone 2011年

Answers:


9

也许在虚拟客户机中的图形和实际主机O / S之间进行解释可能会有所帮助。

首先是基础知识:

虚拟访客中的所有内容都是抽象的-这意味着虚拟访客操作系统中的每个设备和驱动程序都不依赖于实际的主机设备和驱动程序。

给你一个简单的例子。鼠标被视为特定设备-linux内核会看到该设备并允许来宾操作系统使用该设备。该“虚拟设备”通过虚拟化工具-VirtualBox,VMWare,Xen等被映射到实际的物理设备。因此,来宾操作系统无需了解物理鼠标是什么,它只看到虚拟化工具已映射到其上的内容。 。这种方法的价值在于您可以将虚拟来宾移动到不同的主机-由于主机本身没有直接的依赖关系,因此它的运行方式相同。

为了在实践中证明这一点,您可以lsusb同时在主机和来宾上运行-在我的主机上,O / SI具有以下USB设备:

Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0402:9665 ALi Corp. 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

在我的客户机上,oneiric O / SI可以看到以下USB设备-这些与主机不同:

Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

无论Windows还是Linux,任何来宾操作系统都只会看到此虚拟来宾设备。

主机图形与来宾图形

图形相同。

我的主机图形是:

 sudo lshw -class display
  *-display               
       description: VGA compatible controller
       product: Core Processor Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 18
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:41 memory:90000000-903fffff memory:80000000-8fffffff ioport:3050(size=8)

在我的来宾oneiric操作系统上,它可以看到以下图形卡-您可以看到它与主机不同:

sudo lshw -class display
  *-display UNCLAIMED     
       description: VGA compatible controller
       product: VirtualBox Graphics Adapter
       vendor: InnoTek Systemberatung GmbH
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: vga_controller bus_master
       configuration: latency=64
       resources: memory:e0000000-e7ffffff

同样,Windows Guest O / S将只能看到类似的虚拟客户设备。

在VirtualBox的黑暗世界中,您可以手动安装(或在11.10中- 骑师会看到并建议您安装它)的Guest Additions安装其他内核模块(或Windows Guest虚拟机的设备驱动程序)以允许guest 虚拟机O / S增强对您的主机操作系统图形。同样,它不是直接映射-而是可以看到3D加速图形。

如果您的虚拟机内部的应用程序通过OpenGL编程接口(或Windows客户操作系统的DirectX调用)使用3D功能,而不是在软件中模拟它们(这很慢),VirtualBox将尝试使用主机的3D硬件。

我再次强调,来宾操作系统不会看到您的实际图形卡,它只是将来自来宾的OpenGL(或DirectX)调用直接传递给主机硬件进行处理。

在此处输入图片说明

在VirtualBox设置中,您应该更改视频卡内存和3D图形卡设置。然后,您的来宾操作系统会看到带有128Mb RAM的“ 3D加速卡”。主机显卡是否比这更好并不重要-您的来宾操作系统将仅看到此“简单”抽象虚拟显卡。

如前所述,您正在使用Windows Guest O / S-2D复选框适用于您,因为执行了类似的编程接口调用传递

Bumblebee / IronHide是一种/或图形切换机制-您正在使用集成图形或更高容量的NVidia / ATI图形,但不能同时使用这两种图形。

由于更高的可切换图形的OpenGL(或DirectX)功能比集成芯片组要强得多,因此在Guest O / S图形密集型应用程序中,您将看到相对增强的图形性能。但是,这种改进并不像在主机上本地运行相同的应用程序那样引人注目,因为它仍在128MB虚拟访客图形设备的限制内运行。

资源


另外:由于VMware和VirtualBox都需要设置二进制文件才能正常工作,因此我们现在无法在虚拟机中进行大黄蜂(在nvidia卡上渲染)。
allquixotic 2012年

5

https://askubuntu.com/a/85138/38052上方的答案解释了来宾O / S所看到的一切都是某种抽象。虽然这曾经是完全正确的,但我相信情况正在发生变化,并且可能不再完全正确。

一些较新的处理器还支持I / O MMU虚拟化。这些技术在Intel版本中称为Intel VT-d,在AMD版本中称为AMD-Vi。要引用有关x86虚拟化的维基百科文章:

英特尔的I / O MMU虚拟化(AMD-Vi和VT-d)主要文章:IOMMU

输入/输出内存管理单元(IOMMU)使来宾虚拟机能够通过DMA和中断重新映射直接使用外围设备,例如以太网,加速图形卡和硬盘驱动器控制器。有时称为PCI直通。AMD和Intel都发布了规范:

AMD's I/O Virtualization Technology, "AMD-Vi", originally called "IOMMU".
Intel's "Virtualization Technology for Directed I/O" (VT-d).

这听起来很有趣,但是我已经可以预见到一些问题。首先,在Optimus笔记本电脑中,英特尔IGP始终在渲染最终的屏幕输出。我不清楚来宾操作系统是否会驱动IGP。一种想法是,如果可以在来宾运行时运行不带任何图形的主机,则可以使其正常工作,但是我不清楚人们实际上将如何进行此操作。


1

好,我很好奇,所以我尝试了这个。

QEMU和现在的VirtualBox支持将PCI设备传递到来宾计算机。这意味着,如果您有第二张图形卡,则可以将其传递给Linux主机上的Windows来宾,并在虚拟化的Windows环境中获得完整的3D性能(游戏)。具有两个图形卡的台式机就是这种情况。设备管理器将显示“ NVIDIA GTX ... any”,而不是显示“ Virualbox Graphics Adapter”。

擎天柱总是更复杂。我正在ASUS UX501上进行测试。我能够将NVidia芯片传递给Windows guest虚拟机,它在设备管理器中显示为“ 3D Video Controller”。但是我无法安装任何Windows驱动程序来支持它。似乎intel图形的存在是先决条件。

萨朗怀疑是正确的。看起来nvidia芯片不是驱动显示器的“显示适配器”,而是集成英特尔芯片的加速器。它们似乎并不能独立用作两个单独的设备。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.