[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] Making VGA passthrough work

Hi Paul,

The lspci will always list the hardware even once passed to pciback, it still exists in Dom0 but its drivers should no longer be loaded.

Assuming you are using the xl toolstack with 4.2, have you tried running `xl pci-assignable-list`? ÂDoes it print the devices you passed to pciback?

If not then your pciback module is not working at boot time. ÂIf you want it working at boot time you can roll your own kernel or rebuild the initramfs with the modules xen installed.

Alternatively Xen 4.2 offers xl commands `xl pci-assignable-add` and `xl pci-assignable-remove`, which should attempt to automatically dislodge the card from Dom0 at run-time. ÂIf that works you could just add a script at boot time instead of rebuilding either initramfs or the kernel.

You may still need to connect to Windows via SDL or VNC to install the drivers before you get video output, unless Windows automatically installs them, but I don't know how Windows Server will react to being passed a device at run-time.

If you want a mostly up to date reference you should try my comprehensive xen tutorial, it was written for Debian and Xen 4.2 unstable, but the kernel building instructions and a few others are still mostly accurate for the stable revisions. ÂHowever, I have never tried simply rebuilding the initramfs, so I don't have instructions for that.

Also, if you haven't yet you should read the xen 4.2 man pages, they are very helpful for configuring machines.

Hope that helps,


On Fri, Mar 22, 2013 at 1:03 PM, Paul Stimpson <paul@xxxxxxxxxxxxxxxxxxxx> wrote:

I'm using Xen 4.2.0 built against a stock Ubuntu 12.04 (3.2.0-29-generic kernel) with a Windows Server 2008 R2 guest. PCI passthrough works flawlessly with a regular(non-GPU) card. The machine has 2 AMD/ATI FirePro V5900 cards and I now need to attach one of them to the Windows guest as its main monitor.

I'm finding getting this working a challenge and conscious the instructions I've got from the wiki all mention Xen 4.0.0 so I don't know if they're still accurate.

Each card presents itself as 2 PCI devices: a VGA controller and a sound card that provides the audio output on the HDMI sockets. I therefore have 4 devices:
04:00.0 : VGA device
04:00.1 : Sound card
05:00.0 : VGA device
05:00.1 : Sound card
Firstly, I'm not sure how to tell which is the primary and which is secondary card as I swapped which was the primary in the BIOS to make the layout of the back panel and the cabling more logical.

So far, I've discovered:
I appear (according to the wiki) to be running the wrong PCI backend as kern.log contains a number of lines that say "xen-pciback: backend is vpci"

That there is no entry in /boot/config-3.2.0-29-generic for either "CONFIG_XEN_PCIDEV_BACKEND_PASS" or "CONFIG_XEN_PCIDEV_BACKEND_VPCI"- Do these mean I need to roll my own kernel?

I added the 04:00.0 and 04:00.1 to the options in /etc/modprobe.d/pciback.conf but they are still visible if I do an lspci on the host. Does this mean I've done something wrong?

I added the following to the guest .conf file:

(it already has a pci line in it for the other cards, so I added the non-GPU part of the card there)


The Windows guest is definitely booting. There is loads of HD activity and the web services it provides are visible across xenbr0.

Both monitors start up. One displays the host's desktop 9as expected) but the other shows a black text-mode screen containing what looks like startup messages from the host. Note that I haven't installed the catalyst drivers in Windows yet (I'd assumed it would default to using the Firepro as a standard VGA and I could load the real drivers later.

What do I need to do to get the right backend in and make the passthrough work please?


Xen-users mailing list

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.