如何在以 VirtualBox 客户端运行的 Ubuntu 12.10 上使用 NVIDIA GeForce M310?

如何在以 VirtualBox 客户端运行的 Ubuntu 12.10 上使用 NVIDIA GeForce M310?

过去几周一直在玩 Ubuntu 12.10。它以客户机身份运行在托管于 Windows 7 的 Virtualbox 上。Unity 3D 方面遇到了一些挑战。特别是因为直到最近才支持 X11 版本 1.13。从今天起,我们可以下载 Virtualbox 版本 4.2.2,该版本通过客户机添加也支持 X11 版本 1.13。到目前为止,大家的工作都很棒。

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

问题:如何让硬件直接支持 3D 和其他图形,例如 Nvidia GeForce M310

答案1

PCI 直通

PCI 直通是实验性地最近得到支持虚拟盒闭源(普埃尔)版本。但是有几个限制,例如,对于显卡,我们可以从Virtual Box 用户手册

如果 AGP 和某些 PCI Express 卡依赖 GART,则目前不受支持

我无法判断 Nvidia M310 是否存在这种情况,您必须在尝试之前先弄清楚这一点。

为了使 PCI 直通正常工作,我们还需要一块启用了IO管理单元从 BIOS 设置(例如,Intel 为 VT-d,AMD 为 AMD-Vi)。

还有一些其他先决条件需要满足(见Virtual Box 使用手册详情请见):

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

然后,我们可以使用以下命令将 PCI 设备及其bus:device.function属性连接lspci到我们的虚拟机:

VBoxManage modifyvm "VM name" --pciattach <host-bus>:<host-device>.<host-function>@<guest-bus>:<guest-device>.<guest-function>.

在安装此设备的驱动程序之前,请在客户端中查看lspci该设备是否已正确连接。

另请参阅Virtual Box 使用手册以了解进一步的限制。

答案2

截至 2016 年,它已全面实施,但对于 Linux 客户机而言仍是实验性的。

PCI 直通模块作为 VirtualBox 扩展包提供,必须单独安装。有关详细信息,请参阅第 1.5 节“安装 VirtualBox 和扩展包”。

本质上,即使主机没有此特定设备的驱动程序,此功能也允许客户机直接使用主机上的物理 PCI 设备。常规 PCI 和某些 PCI Express 卡均受支持。如果 AGP 和某些 PCI Express 卡依赖 GART(图形地址重映射表)单元编程进行纹理管理,则目前不支持它们,因为它执行的页面重映射操作相当复杂,会干扰 IOMMU。此限制可能会在未来版本中取消。

来源:VirtualBox 手册

相关内容