**RESOLVED - Had to Extract vBIOS ** GTX 1060 6GB OC Pass-through not working on new config - Error 43


Recommended Posts

Resolved - had to extract vBios and created a new VM 

 

Hi all

 

Please can someone help getting a GTX 1060 6GB OC and GT 710 GPU Pass-through working to Windows VM or any ISO for that matter they are only working on VNC

 

This is a new unRaid config but not my first unRaid rodeo, using the same setup and hardware I had Windows VM passing through a GTX 1070 for gaming flawlessly so I know this works. But decided to rebuild and wanted to use GTX 1060 and gave the GTX 1070 to my daughter’s PC 

 

Using VNC, I can see both cards are showing on Windows ‘System Device Manager’ and I have updated the drivers but both are showing as ‘Error 43’

 

So far I have 

  • Tried the different ROMS from Techpowerup and trimmed the header using Hex editor and the machine boots but the screens are just not getting the signal and have swapped cables all the just in case
  • RE-Watched All related Spaceinvaderone’s videos a few times
  • Done a hell of a lot of googling of this issue such as ‘Error 43’ 

 

Just can't seem to get either cards working 

 

My system

The cards are in a separate IOMMU group

 

  • IOMMU group 18:
    • [10de:128b] 01:00.0 VGA compatible controller: NVIDIA Corporation GK208B [GeForce GT 710] (rev a1)
    • [10de:0e0f] 01:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)
  • IOMMU group 19:
    • [10de:1c03] 02:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
    • [10de:10f1] 02:00.1 Audio device: NVIDIA Corporation GP106 High Definition Audio Controller (rev a1)

 

 

Config:

<?xml version='1.0' encoding='UTF-8'?>

<domain type='kvm'>

  <name>Windows 10</name>

  <uuid>0698c6cf-11e6-4ba9-102c-0b07c52ec9d3</uuid>

  <metadata>

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

  </metadata>

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

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

  <memoryBacking>

    <nosharepages/>

  </memoryBacking>

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

  <cputune>

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

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-i440fx-4.1'>hvm</type>

  </os>

  <features>

    <acpi/>

    <apic/>

    <hyperv>

      <relaxed state='on'/>

      <vapic state='on'/>

      <spinlocks state='on' retries='8191'/>

      <vendor_id state='on' value='none'/>

    </hyperv>

  </features>

  <cpu mode='host-passthrough' check='none'>

    <topology sockets='1' cores='1' threads='1'/>

  </cpu>

  <clock offset='localtime'>

    <timer name='hypervclock' present='yes'/>

    <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='disk'>

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

      <source file='/mnt/user/VMs/Windows 10/vdisk1.img'/>

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

      <boot order='1'/>

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

    </disk>

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

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

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

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

      <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.160-1.iso'/>

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

      <readonly/>

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

    </disk>

    <controller type='usb' index='0' model='ich9-ehci1'>

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

    </controller>

    <controller type='usb' index='0' model='ich9-uhci1'>

      <master startport='0'/>

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

    </controller>

    <controller type='usb' index='0' model='ich9-uhci2'>

      <master startport='2'/>

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

    </controller>

    <controller type='usb' index='0' model='ich9-uhci3'>

      <master startport='4'/>

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

    </controller>

    <controller type='pci' index='0' model='pci-root'/>

    <controller type='ide' index='0'>

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

    </controller>

    <controller type='virtio-serial' index='0'>

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

    </controller>

    <interface type='bridge'>

      <mac address='52:54:00:92:5b:a7'/>

      <source bridge='br0'/>

      <model type='virtio'/>

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

    </interface>

    <serial type='pty'>

      <target type='isa-serial' port='0'>

        <model name='isa-serial'/>

      </target>

    </serial>

    <console type='pty'>

      <target type='serial' port='0'/>

    </console>

    <channel type='unix'>

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

      <address type='usb' bus='0' port='1'/>

    </input>

    <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' primary='yes'/>

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

    </video>

    <hostdev mode='subsystem' type='pci' managed='yes'>

      <driver name='vfio'/>

      <source>

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

      </source>

      <rom file='/mnt/user/VM Tools/GT710.rom'/>

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

    </hostdev>

    <hostdev mode='subsystem' type='pci' managed='yes'>

      <driver name='vfio'/>

      <source>

        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>

      </source>

      <rom file='/mnt/user/VM Tools/MSIGTX10601.rom'/>

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

    </hostdev>

    <hostdev mode='subsystem' type='pci' managed='yes'>

      <driver name='vfio'/>

      <source>

        <address domain='0x0000' bus='0x02' slot='0x00' function='0x1'/>

      </source>

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

    </hostdev>

    <memballoon model='none'/>

  </devices>

</domain>

 

Had to use SeaBIOS as OVMF would not work with any ISO – could this be the problem?

 

I have now 

Disabled hyper-V

 

Change machine type from i440fx to Q35-41

 

Really not sure what to do next ?

 

Edited by bwainhouse
RESOLUTION
Link to comment

 

4 hours ago, jordanmw said:

I had this issue until I setup a new machine without vnc graphics- with only the graphics card attached and hyper-v disabled, then did a physical install of windows without vnc.  Not sure why it worked, but worth a shot. 

31 minutes ago, bwainhouse said:

didn't work :(

ok so sort of worked thanks and the GT 710 is running whoo hoo! 

will try swapping the cards next 

Link to comment
19 hours ago, bwainhouse said:

ok so sort of worked thanks and the GT 710 is running whoo hoo! 

will try swapping the cards next 

Hope it swapping the card works for you.

It if doesn't, with cards that don't like being passed through, the following seem to help:

  1. Boot Unraid in legacy mode
  2. Set primary GPU as something other than the to-be-passed-through card in the motherboard BIOS
  3. Use Q35 machine type
  4. Dump your own vbios and use it
  5. For Nvidia, disable Hyper-V.

You have only done (3) and (5) so perhaps try the other 3 workarounds.

Link to comment
54 minutes ago, testdasi said:

Hope it swapping the card works for you.

It if doesn't, with cards that don't like being passed through, the following seem to help:

 

Thanks, really appreciate your feedback please see the updates on you suggested fixes:

  1. Boot Unraid in legacy mode - Check - didn't work 
  2. Set primary GPU as something other than the to-be-passed-through card in the motherboard BIOS - Check - didn't work 
  3. Use Q35 machine type - Check - didn't work 
  4. Dump your own vbios and use it - ok, trying. Not sure how to do this without using a separate PC?
  5. For Nvidia, disable Hyper-V. - Check - didn't work

 

 

Link to comment

For (4), watch SpaceInvaderOne video.

You have 2 GPU so it's easy. Put the 710 in primary slot, dump the 1060 vbios. Shut down, put the 1060 in primary slot, dump the 710 vbios.

Alternatively, go into your BIOS and set the 710 is primary, dump the 1060, then set 1060 as primary and dump the 710.

 

Also, just to double check, by "Check" you meant you have done ALL of the items you checked? i.e. it's not exclusive fix, it's meant to be done as a combination progressively.

Link to comment

WTF! A step forward im now getting a display from the card

 

Did a VM edit, moved the GPUs, set the GTX 1060 as primary and left the BIOS empty 'optional' just to see what would happen, started the VM and there it was, the Windows screen 

 

So have extracted the ROM, trimmed it and added the path to KVM config 

 

Restarted the VM and...... still getting Error 43 😢

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.