assign Nvidia GPU to VM error code 43 in device manager


Recommended Posts

I'm using unraid on my server

Spec : 2xXeon E5 (vt-d Supported)

          Supermicro X10DAC

          64 GB ECC memory

          Nvidia GTX1060 (VM graphic)

          ATI Card (console graphic)

I passthrough Nvidia Quadro M2000

with no problem but this time I buy Zotac Geforce GTX 1060 and I installed it's driver and it fail with error code 43(device manager) I tried disable Hyper-V turn off hyper-V clock Add -kvm=off in qemu and assign rom file from techpowerup non of that work

----HERE--IS----MY---XML-FILE------------------------

<domain type='kvm'>

  <name>Gaming Rig</name>

  <uuid>fb11e9d7-11f5-6518-1eb4-f9baaa1404a5</uuid>

  <metadata>

    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>

  </metadata>

  <memory unit='KiB'>6291456</memory>

  <currentMemory unit='KiB'>6291456</currentMemory>

  <memoryBacking>

    <nosharepages/>

    <locked/>

  </memoryBacking>

  <vcpu placement='static'>12</vcpu>

  <cputune>

    <vcpupin vcpu='0' cpuset='44'/>

    <vcpupin vcpu='1' cpuset='45'/>

    <vcpupin vcpu='2' cpuset='46'/>

    <vcpupin vcpu='3' cpuset='47'/>

    <vcpupin vcpu='4' cpuset='48'/>

    <vcpupin vcpu='5' cpuset='49'/>

    <vcpupin vcpu='6' cpuset='50'/>

    <vcpupin vcpu='7' cpuset='51'/>

    <vcpupin vcpu='8' cpuset='52'/>

    <vcpupin vcpu='9' cpuset='53'/>

    <vcpupin vcpu='10' cpuset='54'/>

    <vcpupin vcpu='11' cpuset='55'/>

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>

  </os>

  <features>

    <acpi/>

    <apic/>

  </features>

  <cpu>

    <topology sockets='1' cores='12' 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/local/sbin/qemu</emulator>

    <disk type='file' device='cdrom'>

      <driver name='qemu' type='raw'/>

      <source file='/mnt/user/isos/Win10_Pro_1511_English_x64_july_2016.iso'/>

      <target dev='hda' bus='sata'/>

      <readonly/>

      <boot order='2'/>

      <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/isos/virtio-win-0.1.126.iso'/>

      <target dev='hdb' bus='sata'/>

      <readonly/>

      <address type='drive' controller='0' bus='0' target='0' unit='1'/>

    </disk>

    <disk type='file' device='disk'>

      <driver name='qemu' type='raw' cache='writeback'/>

      <source file='/mnt/user/domains/Gaming Rig/vdisk1.img'/>

      <target dev='hdc' bus='sata'/>

      <boot order='1'/>

      <address type='drive' controller='0' bus='0' target='0' unit='2'/>

    </disk>

    <controller type='usb' index='0' model='nec-xhci'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>

    </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'>

      <model name='i82801b11-bridge'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>

    </controller>

    <controller type='pci' index='2' model='pci-bridge'>

      <model name='pci-bridge'/>

      <target chassisNr='2'/>

      <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='0x02' function='0x0'/>

    </controller>

    <interface type='bridge'>

      <mac address='52:54:00:e3:46:31'/>

      <source bridge='br1'/>

      <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='connect'/>

      <target type='virtio' name='org.qemu.guest_agent.0'/>

      <address type='virtio-serial' controller='0' bus='0' port='1'/>

    </channel>

    <input type='tablet' bus='usb'/>

    <input type='mouse' bus='ps2'/>

    <input type='keyboard' bus='ps2'/>

    <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'>

      <listen type='address' address='0.0.0.0'/>

    </graphics>

    <video>

      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>

    </video>

    <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='0x03' 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='0x04' function='0x0'/>

    </hostdev>

    <hostdev mode='subsystem' type='usb' managed='no'>

      <source>

        <vendor id='0x048d'/>

        <product id='0x1172'/>

      </source>

    </hostdev>

    <hostdev mode='subsystem' type='usb' managed='no'>

      <source>

        <vendor id='0x093a'/>

        <product id='0x2700'/>

      </source>

    </hostdev>

    <hostdev mode='subsystem' type='usb' managed='no'>

      <source>

        <vendor id='0x1b1c'/>

        <product id='0x0c04'/>

      </source>

    </hostdev>

    <hostdev mode='subsystem' type='usb' managed='no'>

      <source>

        <vendor id='0x258a'/>

        <product id='0x0005'/>

      </source>

    </hostdev>

    <hostdev mode='subsystem' type='usb' managed='no'>

      <source>

        <vendor id='0x264a'/>

        <product id='0x2329'/>

      </source>

    </hostdev>

    <memballoon model='virtio'>

      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>

    </memballoon>

  </devices>

    <qemu:commandline>

        <qemu:arg value='-cpu'/>

        <qemu:arg value='host,kvm=off'/>

    </qemu:commandline>

</domain>

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

Link to comment

Nope ovmf also give error code 43

 

Then you will have to try to add the vbios to your XML. Either use the one you find on tech powerup or dump it your self.

The link to tech powerup and how to add the vbios file is in the unraid manual.

There should be a video guide of how to dump the vbios by the user gridrunner, if I remember correctly.

Link to comment

Ok I got it working now all I have to do is add nvidia tesla C2050 and Quadro 2000 to my system copy the vendor ID add the vendor ID to xml edit gurp boot loader file to black list nvidia device and grab a tesla vCore Assign rom file Turn KVM and hyper v off then the system turn on no output on GTX1060 but quadro have so I edit the registry of GTX1060 So the driver don't have control over the GPU's Power IO and add in CPU vendor ID in regedit so driver don't detect VM environment install the nvidia driver then reboot edit xml to set nvidia GTX1060 to Boot Grab then Yup It work Battlefield 60 FPS

Link to comment

@Siwat2545 Could you be a little more specific about the steps you did to solve the issue ? I've been trying to make this work for the past month and I can't figure it out. I feel like I tried every combination of BIOS / Hyper-V / Machine / rom possible.

 

My situation is very similar to yours. I have 2 nvidia graphics cards installed. In the primary slot, I have an NVIDIA video card, this is the one UnRaid is booting from. The other is a GeForce 210. I have a working Ubuntu VM with the main video card passthrough working perfectly fine, simply by using the VM setttings from the GUI (Machine Q35, BIOS OVMF).

 

For the W10 machine however, I am getting the code 43 in the device manager. I have been able to confirm this by using RDP / Guacamole. I have managed to install the latest NVIDIA drivers (375.95). I'm not sure I understand all the steps you did, but if I understand correctly, once you installed the NVIDIA drivers, you simply had to select your NVIDIA video card as passthrough from the GUI and then it worked ? If that's the case I would think it would be close to working for me too, so I'm not sure what I'm missing.

 

Thanks for your help.

Edited by Ti133700N
Link to comment
  • 2 months later...
  • 2 weeks later...
  • 2 weeks later...
  • 1 year later...

To Siwat2545,

 

please share with all of us what you did on your unRAID to make this working, I'm having the same issue with my GTX 660 Ti.

This is getting so frustrated for me, I thought unRAID was more compatible with stuff, but this is taking way too much of my time, the worst is that I moved all my 8TB already to unRAID to find out that my VM is not working properly with my graphics card.

Please... explain what you did to get rid of Code 43 and make the NVIDIA drivers work again.

Thanks.

 

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.