Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

share|improve this question
    
The only way is to ditch VBox and install Ubuntu on real hardware as dual boot or with the Windows installer. – mikewhatever Oct 19 '12 at 10:21

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.

share|improve this answer
5  
How about now, a few days to year 2015? Has "PCI passthrough" fully implemented in Virtual Box? – user280121 Dec 27 '14 at 9:19

As of 2016 it is fully implemented but for Linux guests experimental.

The PCI passthrough module is shipped as a VirtualBox extension package, which must be installed separately. See Section 1.5, “Installing VirtualBox and extension packs” for more information.

Essentially this feature allows to directly use physical PCI devices on the host by the guest even if host doesn't have drivers for this particular device. Both, regular PCI and some PCI Express cards, are supported. AGP and certain PCI Express cards are not supported at the moment if they rely on GART (Graphics Address Remapping Table) unit programming for texture management as it does rather nontrivial operations with pages remapping interfering with IOMMU. This limitation may be lifted in future releases.

Source: VirtualBox manual

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.