Ubuntu – How to use NVIDIA GeForce M310 on Ubuntu 12.10 running as guest in VirtualBox


Last couple of weeks played around with Ubuntu 12.10. This is running as a guest on Virtualbox hosted at Windows 7. There have been some challenges with the Unity 3D stuff. Particular due to not supporting X11 release 1.13 till very recently. Since today we are able to download Virtualbox version 4.2.2 which has through guest additions also support for X11 release 1.13. SO far great work everybody.

Since Unity now only runs in 3D mode it would be nice to access the graphics card directly from Virtualbox. lshw -c display shows: VGA compatible controller; product: VirtualBox Graphics Adapter.

QUESTION: how to get the 3D and other graphics directly supported by the hardware ie Nvidia GeForce M310

Best Answer

PCI passthrough

PCI passthrough is experimentally supported in recent Virtual Box closed source (PUEL) versions. However there are several limitation, i.e. for a graphics card we can read from the Virtual Box User Manual:

AGP and certain PCI Express cards are not supported at the moment if they rely on GART

I cant tell if this is the case with the Nvidia M310, you will have to figure this out first before you try.

To get PCI passthrough working we also need a motherboard with an enabled IOMMU from BIOS settings (i.e. VT-d for Intel, AMD-Vi for AMD).

There are several additional prerequisites to be met (see Virtual Box Manual for details):

  • Your motherboard has an IOMMU unit.
  • Your CPU supports the IOMMU.
  • The IOMMU is enabled in the BIOS.
  • The VM must run with VT-x/AMD-V and nested paging enabled.
  • Your Linux kernel was compiled with IOMMU support, DMA remapping, and the PCI stub driver.
  • Your Linux kernel recognizes and uses the IOMMU unit.

We can then attach a PCI device with its bus:device.function properties read from lspci to our virtual machine using:

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

See in the guest with lspci if the device was attached properly before installing drivers for this device.

Please also refer to the Virtual Box Manual for further limitations.

Related Question