GTX 970 will not work


Recommended Posts

Edit: Turns out (from other posts) it's because nvidea doesn't play nice unless you have a dedicated graphics card for unraid.  AMD works fine.  I swapped locations of the HD 6950 and the GTX970 and that makes the 970 work, the question is, has anyone had any luck with the commands from https://lime-technology.com/forum/index.php?topic=43644.15

 

I am getting the same errors as are posted but no one posted how they fixed them

echo "0000:02:00.0" > /sys/bus/pci/drivers/vfio-pci/unbind

this gives me this message "bash: echo: write error: No such device" unless I have the VM running, in which case the screen goes dark (duh)

 

cd /sys/bus/pci/devices/0000:02:00.0/
echo 1 > rom
cat rom > /boot/vbios.rom
echo 0 > rom

 

These do nothing, echo 1 > rom doesn't error out but it also doesn't add anything to the rom file (nothing in nano?)

cat rom > /boot/vbios.rom gives me "cat: rom: Input/output error"

 

Has anyone had success with this? is there another work around?

 

Thanks!

 

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

 

hey everyone, totally fresh on the unraid train.  first build, I have a few video cards, one worked one didn't.  Long story short I bought a GTX 960 and a GTX 970 to replace my pc and the wifes pc and it doesn't go anywhere, just a black screen.  Before I made the leap and bought I had been running my PC on an AMD Radeon HD 6950.  it works perfectly fine on that with the following xml (which I honestly have been trying to figure out what the XML does and have 0 idea).

 

Here is the build info:

Mobo: GA-990FXA-UD5

Video Cards:

GTX 970

GTX 960

Radeon HD 6950

32Gb Memory

2 Cache drives and 5 hard drives

 

VM is set to use SeaBios (don't know what the other one does)

1440fx-2.3 (don't know what the others do)

 

Just looking for what to look at to find out why it will not work with the GTX's.  (Also FYI if I attach the GTX to the HD 6950's VM and boot it it crashes over and over showing "nvlddmkm.sys" as the BSOD reason (System_Service_Exception)

Link to comment

I have the same motherboard as you and I pass through a GTX970 to my Gaming WIn10VM. The GTX970 is in PCIe slot 1. I have an AMD6450 in slot 4 as unRaid GPU.

 

I am running my system with Q35 2.3 and Seabios.

 

Not sure that I understand what is happening with your setup. Are you trying to do passthrough to the GTX970 with no video assigned to unRaid OS?

Link to comment

I have the same motherboard as you and I pass through a GTX970 to my Gaming WIn10VM. The GTX970 is in PCIe slot 1. I have an AMD6450 in slot 4 as unRaid GPU.

 

I am running my system with Q35 2.3 and Seabios.

 

Not sure that I understand what is happening with your setup. Are you trying to do passthrough to the GTX970 with no video assigned to unRaid OS?

Just out of curiosity, how did you manage to get unraid to use the adapter in slot 4 and not the GTX 970?

Link to comment

I didn't know this was an issue........ I have always been able to put the unRaid card in lower slots and assign the first PCI x16 slot to VM's

 

I originally (early 2015) started out by binding GPU in slot 1 with vfio-bind in the Go script.

 

/usr/local/sbin/vfio-bind 0000:01:00.0 0000:01:00.1 0000:02:00.0 0000:07:00.0

 

Later this wasn't required so I removed it.

 

Maybe the following will shed some light........ hope it helps

 

My current xml

 

<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Win10ProIsolCPUs</name>
  <uuid>0c2749f8-96cd-1238-0965-6f9d33c9758f</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>5</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
    <vcpupin vcpu='2' cpuset='4'/>
    <vcpupin vcpu='3' cpuset='5'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <emulatorpin cpuset='0-4'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='5' 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='directsync' io='native'/>
      <source file='/mnt/disk/vmdisk/Win10Pro/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISO Library Share/Windows.iso'/>
      <backingStore/>
      <target dev='hda' bus='sata'/>
      <readonly/>
      <boot order='2'/>
      <alias name='sata0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/VirtIO Drivers/virtio-win-0.1.109.iso'/>
      <backingStore/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
      <alias name='sata0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:69:22:69'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/1'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/1'>
      <source path='/dev/pts/1'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Win10Pro.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=pcie.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.0,bus=pcie.0'/>
  </qemu:commandline>
</domain>

 

Current Syslinux Config

 

append isolcpus=2,3,4,5,6 pcie_acs_override=downstream amd_iommu=on iommu=pt iommu=1 vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot

Link to comment

I didn't know this was an issue........ I have always been able to put the unRaid card in lower slots and assign the first PCI x16 slot to VM's

 

I originally (early 2015) started out by binding GPU in slot 1 with vfio-bind in the Go script.

 

/usr/local/sbin/vfio-bind 0000:01:00.0 0000:01:00.1 0000:02:00.0 0000:07:00.0

 

Later this wasn't required so I removed it.

 

Maybe the following will shed some light........ hope it helps

 

My current xml

 

<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Win10ProIsolCPUs</name>
  <uuid>0c2749f8-96cd-1238-0965-6f9d33c9758f</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>5</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
    <vcpupin vcpu='2' cpuset='4'/>
    <vcpupin vcpu='3' cpuset='5'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <emulatorpin cpuset='0-4'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='5' 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='directsync' io='native'/>
      <source file='/mnt/disk/vmdisk/Win10Pro/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISO Library Share/Windows.iso'/>
      <backingStore/>
      <target dev='hda' bus='sata'/>
      <readonly/>
      <boot order='2'/>
      <alias name='sata0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/VirtIO Drivers/virtio-win-0.1.109.iso'/>
      <backingStore/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
      <alias name='sata0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:69:22:69'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/1'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/1'>
      <source path='/dev/pts/1'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Win10Pro.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=pcie.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.0,bus=pcie.0'/>
  </qemu:commandline>
</domain>

 

Current Syslinux Config

 

append isolcpus=2,3,4,5,6 pcie_acs_override=downstream amd_iommu=on iommu=pt iommu=1 vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot

That makes no sense to me. I see no reason why unraid should choose the 6450.

Does the post screen also use the 6450? Have you chosen the 6450 to be the initial graphics adapter in the bios?

Link to comment

OK. Just checked the settings in BIOS and the initial adapter is set at PCIe slot 5 which is the physical number of the slot that the AMD 6450 is in

 

That explains it all :)

I don't think many motherboards support to choose which pcie slot to use, only onboard/external.

It is however good to know about this feature.

Link to comment

Yes I was looking to run it "headless" because I don't have enough PCIe slots for what I'm hoping to do (two pc's) at least not in the right places.  I think it's probably just time to swap mobos to something that works but if I can't figure out the FPS issues I might just go back to windows anyways.  I tried assigning manually to PCIe 5 as well with a smaller card and that didn't work either, it used the GTX 970

Link to comment

I can't see why you can't do what you want with the hardware you have.

 

As a next step I would remove all the Graphics cards except for the card you want unRaid to see (post with). Then make sure that unRaid posts with that card. That way you can be sure that the GPU PCI slot in the Bios matches the physical location of the card. The first PCIe x16 slot is slot 2 in the Bios listing.

 

Once you can post using the card in slot 5 or whichever slot you use then reinstall one of your GTX cards into the PCIe x16 slots.

 

This should work.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.