I've continued experimenting with GTX 980 passthrough with Arch Linux. I 
noticed that the xf86-video-nouveau does NOT in fact have Maxwell support. One 
would think otherwise looking at their Feature Matrix here: 
https://nouveau.freedesktop.org/wiki/FeatureMatrix/
NV110 is the Maxwell family (GTX 980 including). But the mode-setting driver 
can be used instead, so *I finally got GTX 980 PT working in Arch Linux*:

Add this file to  /etc/X11/xorg.conf.d/20-nouveau.conf
```
Section "Device"
  Identifier "NVidia Card"
  Driver "modesetting"
  BusID "PCI:0:5:0"
EndSection
```

Note that the PCI address is the address that the GPU has inside the VM (use 
lspci IN the vm to find out that).  Also "pci_msitranslate=0" has to be set in 
VM configuration, otherwise VM will hang when X is started.

This is tested with Arch linux (up to date 8.7.2016), with Linux 4.6.3-1-ARCH, 
modesetting and X versions 1.18.3.

-----

Ok, now that it's proven that newer Nvidia cards CAN in fact be passed through 
in Xen, I tried the official NVidia binary driver, but it failed with error 
message "The NVIDIA GPU at PCI:0:5:0 is not supported by the 367.27 NVIDIA 
driver".

I think that's the proprietary driver refusing to work when it detects that 
it's running under hypervisor (the Code 43 issue in Windows). Since KVM has for 
a while supported hiding both the "KVMKVMKVMKVM" signature (with "-cpu kvm=off" 
flag) as well as the Viridian hypervisor signature ("-cpu hv_vendor_id="..." 
flag), and currently there's no such functionality in Xen, I patched  it in 
quite similar way to what Alex Willimson did to KVM.

Attached is a patch for Xen 4.6.1 that spoofs Xen signature ("XenVMMXenVMM" to 
"ZenZenZenZen") and Viridian signature ("Microsoft Hv" to "Wetware Labs") when 
"spoof_xen=1" and "spoof_viridian=1" are added VM configuration file.

The signatures are currently hard-coded, and currently there's no way to modify 
them (beyond re-compiling Xen), since HVMLoader also uses a hard-coded string 
to detect Xen and there's no API (understandably) to change that signature in 
real-time.

WARNING! In case you try the patch, you MUST re-compile and install also 
core-libvirt (in addition to vmm-xen) packages. Otherwise starting all DomUs 
will fail! You have been warned :)

-----------------

With this patch, the *NVidia binary driver (version 367.27) works also on Arch 
Linux* :)

However this was not enough on Windows 7 and 8.1 VMs (driver version 368.39) 
still announce Error 43 :(

I would love if others could test this as well. Maybe the Windows driver uses 
some other functionality to check for hypervisor, or maybe it's not a spoofing 
issue at all.

More investigation coming in..




-- 
You received this message because you are subscribed to the Google Groups 
"qubes-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to qubes-users+unsubscr...@googlegroups.com.
To post to this group, send email to qubes-users@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/qubes-users/716e4cc4-548e-4cb0-8f75-82894cd29eef%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to