如何在Ubuntu 12.10上使用NVIDIA GeForce M310作为VirtualBox中的guest虚拟机运行?

最近几周玩了Ubuntu 12.10。 这是在Windows 7上托管的Virtualbox上作为访客运行的.Unit 3D内容存在一些挑战。 特别是由于直到最近才支持X11版本1.13。 从今天开始,我们可以下载Virtualbox版本4.2.2,它通过添加客户端也支持X11版本1.13。 每个人都做得很棒。

由于Unity现在只能在3D模式下运行,因此直接从Virtualbox访问显卡会很不错。 lshw -c displayVGA compatible controller; product: VirtualBox Graphics Adapter VGA compatible controller; product: VirtualBox Graphics Adapter

问题:如何获得硬件直接支持的3D和其他图形,即Nvidia GeForce M310

PCI passthrough

PCI passthrough在最近的Virtual Box 闭源 (PUEL)版本中得到了实验支持。 但是有一些限制,即对于我们可以从Virtual Box用户手册中读取的图形卡:

如果它们依赖于GART,目前不支持AGP和某些PCI Express卡

我不知道Nvidia M310是否属于这种情况,你必须先尝试一下才能尝试。

为了让PCI直通工作,我们还需要一个带有从BIOS设置启用的IOMMU的主板(即用于Intel的VT-d,用于AMD的AMD-Vi)。

还有几个额外的先决条件(有关详细信息,请参阅Virtual Box手册 ):

  • 你的主板有一个IOMMU单元。
  • 您的CPU支持IOMMU。
  • IOMMU在BIOS中启用。
  • VM必须使用VT-x / AMD-V运行并启用嵌套分页。
  • 您的Linux内核是使用IOMMU支持,DMA重映射和PCI存根驱动程序编译的。
  • 您的Linux内核识别并使用IOMMU单元。

然后我们可以将PCI设备及其bus:device.function属性从lspci读取到我们的虚拟机,使用:

 VBoxManage modifyvm "VM name" --pciattach :.@:.. 

在为此设备安装驱动程序之前,如果设备已正确连接,请在guest lspci

有关进一步的限制,请参阅Virtual Box手册 。

截至2016年,它已完全实现,但对于Linux客户实验。

PCI passthrough模块作为VirtualBox扩展包提供,必须单独安装。 有关更多信息,请参见第1.5节“安装VirtualBox和扩展包”。

实质上,即使主机没有此特定设备的驱动程序,此function也允许guest虚拟机直接在主机上使用物理PCI设备。 支持普通PCI和一些PCI Express卡。 如果它们依赖于GART(图形地址重映射表)单元编程进行纹理管理,则目前不支持AGP和某些PCI Express卡,因为它会在页面重新映射干扰IOMMU时进行非常重要的操作。 在将来的版本中可能会取消此限制。

来源: VirtualBox手册