2

I have done a secondary GPU passthrough to a Linux domU, but I don't know how to output Xorg from the secondary GPU.

The dom0 is using an Intel integrated graphics card. I am passing through an AMD 6450 to domU, as it there were two mentions of it here:
https://wiki.xenproject.org/wiki/Xen_VGA_Passthrough_Tested_Adapters

Short list of what I did:

  1. Enabled VT-d in motherboard BIOS
  2. Added intel_iommu=on to dom0 GRUB
  3. Blacklisted modules of GPU and it's audio subsystem
  4. modprobe xen-pciback
  5. xl pci-assignable-add _______ for both GPU and it's audio subsystem
  6. Added the two PCI IDs to the Xen configuration file: pci = [ '_____', '_____' ]
  7. Booted and installed Linux in the domU

When I boot, after the above steps, I get one error message:
libxl: error: libxl_pci.c:1151:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01.00.0
Despite the above error, when I run lspci -nnk on the domU, it shows the GPU and audio sub-device, including these lines:
Kernel driver in use: radeon
Kernel driver in use: snd_hda_intel
Also, of course, a line for the primary domU virtual GPU:
Kernel driver in use: cirrus

Then, if I connect a VGA or DVI cable from the passed through GPU to the monitor, the monitor stays on (green power button) with a dark grey screen. Whereas usually, when the monitor detects no input, it just goes straight to standby (orange power button). So there is some kind of GPU output.

If I startx and run xrandr through VNC, there doesn't seem to be any sign of the physical monitor, it seems there is only the virtualized VNC/cirrus monitor.

If I add gfx_passthru=1 to the configuration file, it always fails at boot. The first error message that appears when I add gfx_passthru=1 is:
libxl: error: libxl_dm.c:1302:libxl__build_device_model_args_new: unable to detect required gfx_passthru_kind

Before I ever used virtualisation, to switch output from primary/secondary graphics card to the other, I would usually just change the settings in the BIOS, and Linux would follow. So Xorg + domU is very different territory for me.

Does anyone know how I can output Xorg through the secondary GPU in the domU, after this point ? Various GPU passthrough guides online only cover Windows.

UPDATE

After StrongBad's response, I have moved from an Arch domU to a Debian 8.8 from the Debian wiki domU, as fglrx is not in the official Arch repos anymore.

However, unlike the Arch domU, the Debian domU has no mysterious dark grey monitor output with always-on green power button, when the passed through GPU is connected to the monitor.

Nonetheless, I did the following:

  1. Installed fglrx
  2. Ran sudo aticonfig --initial
  3. Added the four lines to /etc/xorg.conf from the Debian wiki

However, when I run startx from a VNC TTY, it just crashes. The first error message in Xorg.0.log states:
(EE) fglrx(0): Failed to open CMMQS connection

1

It looks like you are pretty far along. I more or less successfully got secondary VGA passthrough working with Xen 4.4.0 (and a few later versions). I had trouble with version 4.7, but never really tried to debug it. If I recall correctly, in my working system, I also got an error like:

libxl: error: libxl_pci.c:1151:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01.00.0

While trying to get secondary passthrough working I asked a question on the Xen list. I had two issues that I could never solve. The first is that the TTYs are on the primary device so I cannot see any boot messages and can only use an X session. The second issue was I could only use the proprietary catalyst drivers. It looks like you are trying to use the Radeon drivers, so that might be your issue.

I am pretty sure gfx_passthru=1 is only for primary passthrough so you probably do not want it. I asked on the Xen mailing list what the difference between primary and secondary passthrough, apart from a lot of pain, is. The response was:

The only advantage of passing the interface as primary (and FWIW I have never actually seen this work) is that in that case you get to see the SeaBIOS POST screen and the domU OS boot progress before it loads the GPU

  • OK I will give fglrx a try and see what happens. I hadn't thought of that making a difference, thank you for the tip ! – j-deer Jun 7 '17 at 19:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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