Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Another GTX 970 GPU passthrough issue

Featured Replies

Hi all,

 

Just got my GTX 970 and setup a Win10 gaming VM.  For some reason, my USB keyboard wouldn't work in console, so I initially had the VNC driver attached to the system to install Win10.  Got Win10 all installed, installed my GTX 970, and then set it to passthrough w/ the Nvidia audio device.  Well, I installed the drivers and now the GTX 970 won't start.  It's still using the MS Display Driver, but when I check the properties of the GTX 970 or the HD Audio controller, I've got a code 10.  I went to try to pass through the vbios, but after going through all EVGA Nvidia GTX 970's, it doesn't seem that there is one for my card (VEN_10DE&DEV_13C2&SUBSYS_39753842).  It's weird that I'm getting output on my display, but for some reason the Nvidia drivers just don't want to load.

 

I currently have

 append pcie_acs_override=downstream libata.force=noncq iommu=pt vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot

in my syslinux.cfg, but only previously had

append pcie_acs_override=downstream iommu=pt initrd=bzroot

in there before, but still not working.

 

My BIOS is OVMF and machine type of Q35-2.3.

 

Here is my XML

 

<domain type='kvm'>
  <name>Win10 Gaming</name>
  <uuid>392ae47d-5ac1-14d6-4c3a-454945b9df4a</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>16777216</memory>
  <currentMemory unit='KiB'>16777216</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>10</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='2'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='4'/>
    <vcpupin vcpu='4' cpuset='5'/>
    <vcpupin vcpu='5' cpuset='6'/>
    <vcpupin vcpu='6' cpuset='7'/>
    <vcpupin vcpu='7' cpuset='8'/>
    <vcpupin vcpu='8' cpuset='9'/>
    <vcpupin vcpu='9' cpuset='10'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-2.3'>hvm</type>
    <loader type='pflash'>/usr/share/qemu/ovmf-x64/OVMF-pure-efi.fd</loader>
  </os>
  <features>
    <acpi/>
    <apic/>
    <kvm>
      <hidden state='on'/>
    </kvm>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='10' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/disks/VM_SSD/Win10 Gaming/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:d7:28:95'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Win10 Gaming.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x81' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x81' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
      </source>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x07' function='0x0'/>
    </memballoon>
  </devices>
</domain>

 

Attached is my diagnostics.  In my signature is my current setup. Any help would be greatly appreciated!!!

 

PS: I just ran DDU to try to uninstall/reinstall the drivers and I noticed that the MS Display Adapter was in a code 10 too (not sure if that was just reading that the Nvidia GTX 970 was in code 10 or what)

tower-diagnostics-20160630-1903.zip

Hi all,

 

Just got my GTX 970 and setup a Win10 gaming VM.  For some reason, my USB keyboard wouldn't work in console, so I initially had the VNC driver attached to the system to install Win10.  Got Win10 all installed, installed my GTX 970, and then set it to passthrough w/ the Nvidia audio device.  Well, I installed the drivers and now the GTX 970 won't start.  It's still using the MS Display Driver, but when I check the properties of the GTX 970 or the HD Audio controller, I've got a code 10.  I went to try to pass through the vbios, but after going through all EVGA Nvidia GTX 970's, it doesn't seem that there is one for my card (VEN_10DE&DEV_13C2&SUBSYS_39753842).  It's weird that I'm getting output on my display, but for some reason the Nvidia drivers just don't want to load.

 

I currently have

 append pcie_acs_override=downstream libata.force=noncq iommu=pt vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot

in my syslinux.cfg, but only previously had

append pcie_acs_override=downstream iommu=pt initrd=bzroot

in there before, but still not working.

 

My BIOS is OVMF and machine type of Q35-2.3.

 

Here is my XML

 

<domain type='kvm'>
  <name>Win10 Gaming</name>
  <uuid>392ae47d-5ac1-14d6-4c3a-454945b9df4a</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>16777216</memory>
  <currentMemory unit='KiB'>16777216</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>10</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='2'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='4'/>
    <vcpupin vcpu='4' cpuset='5'/>
    <vcpupin vcpu='5' cpuset='6'/>
    <vcpupin vcpu='6' cpuset='7'/>
    <vcpupin vcpu='7' cpuset='8'/>
    <vcpupin vcpu='8' cpuset='9'/>
    <vcpupin vcpu='9' cpuset='10'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-2.3'>hvm</type>
    <loader type='pflash'>/usr/share/qemu/ovmf-x64/OVMF-pure-efi.fd</loader>
  </os>
  <features>
    <acpi/>
    <apic/>
    <kvm>
      <hidden state='on'/>
    </kvm>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='10' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/disks/VM_SSD/Win10 Gaming/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:d7:28:95'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Win10 Gaming.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x81' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x81' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
      </source>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x07' function='0x0'/>
    </memballoon>
  </devices>
</domain>

 

Attached is my diagnostics.  In my signature is my current setup. Any help would be greatly appreciated!!!

 

PS: I just ran DDU to try to uninstall/reinstall the drivers and I noticed that the MS Display Adapter was in a code 10 too (not sure if that was just reading that the Nvidia GTX 970 was in code 10 or what)

 

Probably not what your problem is but i remember i took out my card and put in a different pcie slot, but forgot to plug the power into the card.

The card started and displayed a picture but wouldnt work when i used the driver, same as you a code 10.

I couldn't work out what was wrong for a while then saw the power cable out, kicked myself then plugged it back in and all was good!

 

  • Author

Well, just rebuilt the VM w/ PCIe ACS override turned off (had it on during the first go round) and I'm still getting the Code 10 error on the video card.  Just reviewed my mobo's manual, though, and it states that a graphics card should be installed in PCIe slot 2-4 and of course I have mine in PCIe slot 1.  So, I'll be changing that as soon as my monthly parity check finishes sometime tonight.  I'll report back if that fixed the issue or not.  Thanks for the suggestion, gridrunner, but the power is connected and hooked up to my PS.  So, unless I have a bad rail, I'm hoping that's not my issue.

  • Author

Ok, finally got it working.  Here's what I did: Turned back on PCIe ACS override (not sure if needed, but my Plex users are getting sick of me rebooting constantly), moved the GTX 970 to PCIe slot 3 (2 would probably work also, but in my testing I had put in another video card to see if the IOMMU groups were an issue. Have since removed that card), and I installed Win10 as a OVMF/1440fx-2.3 VM.  This finally detected the EVGA GTX 970 card correctly and let me install/initialize the drivers for it.  Win10 is now at full resolution and working as it should.  Next is to stress test w/ 3DMark and see what type of performance I'm getting.

Ok, finally got it working.  Here's what I did: Turned back on PCIe ACS override (not sure if needed, but my Plex users are getting sick of me rebooting constantly), moved the GTX 970 to PCIe slot 3 (2 would probably work also, but in my testing I had put in another video card to see if the IOMMU groups were an issue. Have since removed that card), and I installed Win10 as a OVMF/1440fx-2.3 VM.  This finally detected the EVGA GTX 970 card correctly and let me install/initialize the drivers for it.  Win10 is now at full resolution and working as it should.  Next is to stress test w/ 3DMark and see what type of performance I'm getting.

 

Great glad to hear you have got it all working  :)

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.