如何在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 display
: VGA 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手册