[vfio-users] Bluescreen on Guest OS graphics driver installation

Nicolas Roy-Renaud nicolas.roy-renaud.1 at ens.etsmtl.ca
Fri May 13 23:59:22 UTC 2016


Ah, great! I was waiting for someone to test those instructions.

Looks like adding the PCI root port is a common mistake here, I really 
should mention it somewhere. Same thing about the CPU model, I should 
probably reccomand that people use host-passthrough before they scroll 
down further and go with core2duo instead right at the start.

Looks like it all went pretty well aside from that, though, which is great!

- Nicolas

On 2016-05-13 19:16, Okky Hendriansyah wrote:
> On Sat, May 14, 2016 at 3:32 AM, <christopher at padarom.io 
> <mailto:christopher at padarom.io>> wrote:
>
>     Hello guys,
>
>
> Hi Christopher,
>
>     I'm pretty new to VFIO and GPU passthrough. I have set everything
>     up now according to the "PCI Passthrough via OVMF" guide on the
>     ArchLinux wiki, but have run into some issues that I couldn't get
>     a solution for anywhere.
>     The relevant part of my setup is as follows:
>     Intel i5 4690K
>     WindForce GTX 660 Ti
>     AsRock Z97M Anniversary Mainboard
>     Host OS: Arch Linux (Linux 4.5.4-1-ARCH)
>     Guest OS: Windows 10 64-Bit Home
>     I have set up the VM via virt-manager and installed it onto a RAW
>     image that's on one of my SSDs (50GB).
>     The IOMMU group that's relevant for VFIO is this one:
>     IOMMU group 1
>     00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v3/4th
>     Gen Core Processor PCI Express x16 Controller [8086:0c01] (rev 06)
>     01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104
>     [GeForce GTX 660 Ti] [10de:1183] (rev a1)
>     01:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio
>     Controller [10de:0e0a] (rev a1)
>     I set up my vfio.conf accordingly:
>     # cat /etc/modprobe.d/vfio.conf
>     options vfio-pci ids=10de:1183,10de:0e0a,8086:0c01
>
>
> You just have to pass your GPU PCI IDs here, do not attempt to pass 
> the PCI bridge! So skip the *8086:0c01* and just pass *options 
> vfio-pci ids=10de:1183,10de:0e0a*. After updating this config, make 
> sure to regenerate kernel image by issuing *sudo mkinitcpio -p linux*, 
> assuming that you already put all VFIO modules in 
> */etc/mkinitcpio.conf* as per Arch Linux Wiki.
>
>     And it initialized correctly:
>     # dmesg | grep -i vfio
>     [    0.309866] VFIO - User Level meta-driver version: 0.3
>     [    0.323490] vfio_pci: add [10de:1183[ffff:ffff]] class
>     0x000000/00000000
>     [    0.336838] vfio_pci: add [10de:0e0a[ffff:ffff]] class
>     0x000000/00000000
>     [    0.336845] vfio_pci: add [8086:0c01[ffff:ffff]] class
>     0x000000/00000000
>     I passed both 01:00.0 and 01:00.1 to my VM and when booting it up
>     it shows up on my secondary monitor that's connected to my
>     graphics card. As a CPU I used the "core2duo" model.
>
>
> If you do not have issues using *host* model in plain QEMU script or 
> *host-passthrough* if using *virt-manager*, I think it is preferrable 
> to use that instead of *core2duo*. Since the guest can see your exact 
> CPU model on the host.
>
>     Side question: I can't start my VM with 00:01.0 attached, but
>     thought I had to as it's in the same IOMMU group. Do I even have
>     to add it to my vfio.conf then?
>
>
> No, you just have to passthrough your GPU PCI IDs, not the PCI Bridge.
>
>     The problem I'm having is installing the driver for the graphics
>     card. My display resolution is stuck at something like 640x480. I
>     have tried installing 365.19 and 364.72, after about 5% progress
>     my windows crashes into a bluescreen with the error
>     "SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (nvlddmkm.sys)", no matter
>     whether I install it in GeForce Experience, directly through the
>     installer or the device manager.
>     I have also tried uninstalling the original driver with DDU, which
>     didn't help either.
>
>
> Please try to skip the PCI Bridge first and use the host or 
> host-passthrogh model in your CPU config. Oh and do not forget to hide 
> KVM CPUID and use Hyper-V Vendor ID to hide virtualization from NVIDIA 
> driver. I have encountered that kind of exception message when 
> upgrading to Windows 10 and to Windows 10 Threshold 2 and I worked 
> around it by switching the CPU model temporarily to *core2duo*, apply 
> DDU and revert it back to *host* again.
>
>     GPU-Z correctly identifies my GPU as a GK104, but it (and my
>     device manager) both only show "Device" as it's name. I don't know
>     whether that is problematic or not.
>     Does anyone have any ideas how to fix this?
>     Sorry for the lengthy post, but looking forward to any and all
>     answers, thanks!
>
>
> Best regards,
> Okky Hendriansyah
>
>
> _______________________________________________
> vfio-users mailing list
> vfio-users at redhat.com
> https://www.redhat.com/mailman/listinfo/vfio-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160513/82d8b9a8/attachment.htm>


More information about the vfio-users mailing list