Win10 & Nvidia 2070


Itxtrem

Recommended Posts

Hello All :)

 

I used Unraid for my company and today I tried to put a graphics card (Nvidia msi RTX 2070 Super) on a Win10 VM (This machine is already used via VNC).

I'm really stuck on this part and I call at the community :)

 

After changing the configuration I receive this error message:

Quote

Execution error

internal error: qemu unexpectedly closed the monitor: 2019-12-07T23:25:28.706905Z qemu-system-x86_64: -device vfio-pci,host=0000:08:00.0,id=hostdev0,bus=pci.0,addr=0x5,romfile=/mnt/disk1/isos/GPU/MSI.RTX2070Super.8192.190917.rom: vfio 0000:08:00.0: group 23 is not viable Please ensure all devices within the iommu_group are bound to their vfio bus driver.

 

I think it's best to show my configuration/

 

Here is the configuration from VM Manager:

I already try to change the PCIe ACS override to Multi Function so the error message is not present however on the screen it's only black.

Capture.PNG.1b61a778e103a3ca23f586919741da54.PNG

 

Here is the system device IOMMU:

Quote

IOMMU group 23:[10de:1e84] 08:00.0 VGA compatible controller: NVIDIA Corporation TU104 [GeForce RTX 2070 SUPER] (rev a1)

[10de:10f8] 08:00.1 Audio device: NVIDIA Corporation Device 10f8 (rev a1)

[10de:1ad8] 08:00.2 USB controller: NVIDIA Corporation TU104 USB 3.1 Host Controller (rev a1)

[10de:1ad9] 08:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU104 USB Type-C UCSI Controller (rev a1)

 

Here is the configuration of the Win10 VM:

 

Capture1.PNG.6804c01fbed55d984954c2021d80722c.PNG

 

And here is the XML file:

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
  <name>Windows 10</name>
  <uuid>blablablabla</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='14'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='15'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-4.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/blabalbabla_VARS-pure-efi.fd</nvram>
  </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='4' 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/domains/Windows 10/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/Microsoft/Windows10.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='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>
    <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>
    <interface type='bridge'>
      <mac address='52:54:00:9d:bf:0c'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 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='5'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/isos/GPU/MSI.RTX2070Super.8192.190917.rom'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x0e6a'/>
        <product id='0x02c0'/>
      </source>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x14cd'/>
        <product id='0x1212'/>
      </source>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x1b1c'/>
        <product id='0x0a17'/>
      </source>
      <address type='usb' bus='0' port='3'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x1b1c'/>
        <product id='0x1b3e'/>
      </source>
      <address type='usb' bus='0' port='4'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
</domain>

Do you have the same problem with the Win10 vm ?

 

Thank you in advance for your help and your time!

 

Link to comment

Hi sosdk :)
I am progressing on this problem. The first point is   to add in my flash this line append initrd=/bzroot vfio-pci.ids=10de:1ad8,10de:1ad9

So now I can start the VM :)

 

However I have a dark screen haha

 

But when I see my screen,   it looks like he switches between two results (showing me unraid's cli and after trying my VM) ...

So then I am really lost 😓

Link to comment

Do you have an idea?

 

Currently I have one NVIDIA and this on is connected to a screen. SO when the pc is starting I can see Unraid (CLI) after that I start the VM and the screen switches in the dark Oo'

 

Is it a problem with the pilote of my RTX ?

I don't understand 

Edited by Itxtrem
Link to comment
On 12/8/2019 at 9:08 PM, Itxtrem said:

Do you have an idea?

 

Currently I have one NVIDIA and this on is connected to a screen. SO when the pc is starting I can see Unraid (CLI) after that I start the VM and the screen switches in the dark Oo'

 

Is it a problem with the pilote of my RTX ?

I don't understand 

 

Do these and see how it goes

  1. Start a new VM template
  2. Pick machine type = Q35-4.0.1
  3. Pick the same GPU + HDMI + 2 additional devices you stubbed
  4. Pick Hyper-V = Yes
  5. Pick everything else the same as your current template
  6. Untick "Start VM" and Save
  7. Edit the VM in XML mode
  8. Now we try to resolve your black screen. Look for </hyperv> in the xml.
    • Above the </hyperv> add this:
            <vendor_id state='on' value='0123456789ab'/>

       

    • Below </hyperv> add this:
          <kvm>
            <hidden state='on'/>
          </kvm>
          <ioapic driver='kvm'/>
  9. Save your template and start your VM and keep your fingers crossed

The above assumes your ROM was correctly dumped.

 

 

Link to comment

Hello,

Thank you for your support. But this solution can work now.
However, I can start my Win10 VM with the HDMI from my RTX 2070. But now I install the default pilot from Unraid an after that I receive e bluescreen with this error:  nvlddmkm.sys

FYI: I have only one graphic card(RTX 2070). In my BIOS. I haven't found how to change the priority of the graphics card for UNRAID

My motherboard is ASUSTeK COMPUTER INC. ROG STRIX X570-F GAMING.

 

Thank you for your help!

Link to comment
  • 10 months later...

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.