Jump to content

Win10 GTX1650Super Passthrough, no output


Recommended Posts

Specs: 
Ryzen 5600G (has integrated Graphics)

ASUS TUF GTX 1650 Super

Gigabyte AUROS X570-I (Mini-ITX)

970 Evo Plus (250gb) - DEDICATED TO WIN10 VM
 

I want to run UNRAID in my living room, with the GPU output going to the TV and behaving like a gaming computer, but secretly the system is also hosting NAS and other services. 

 

I've previously been able to boot the VM with UNRAID, and install windows10 to the SSD. I can actually select the SSD as the boot device and the computer will boot windows just fine (and use the 1650Super from the native boot).

 

I am having alot of trouble getting the VM to boot properly. Currently the VM starts, and the VM logs only have `system` and `text` messages, no warnings or errors. but it simply does not produce an output with the GPU (see config below). 

System Settings Changes.
BIOS: XMP Enabled. SVM is enabled. 
UNRAID: GPU IOMMU groups to bind to the VFIO on boot.

 

Here is the most recent VM config with the most recent and predictable behaviour. It currently will boot, and CLI output will go through the GPU and to my TV, however when I start the VM, the GPU will not output anything. Hitting stop in the VM manager will shutdown properly, so it appears to be booting correctly (if the boot failed i would expect to need a 'Force Stop'). 


```
<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
  <name>Windows 10</name>
  <uuid>932ab0d9-8882-af8f-8072-02cb3482de3d</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='6'/>
    <vcpupin vcpu='2' cpuset='1'/>
    <vcpupin vcpu='3' cpuset='7'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-6.2'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/932ab0d9-8882-af8f-8072-02cb3482de3d_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv mode='custom'>
      <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' migratable='on'>
    <topology sockets='1' dies='1' cores='2' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </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='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/virtio-win-0.1.190-1.iso'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/nvme0n1'/>
      <target dev='hdc' bus='ide'/>
      <boot order='1'/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </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='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:d7:0c:c4'/>
      <source bridge='br0'/>
      <model type='virtio-net'/>
      <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='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <audio id='1' type='none'/>
    <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/isos/roms/Asus.GTX1650Super.4096.191021.rom'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
      </source>
      <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='0x01' slot='0x00' function='0x2'/>
      </source>
      <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='0x01' slot='0x00' function='0x3'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x3938'/>
        <product id='0x1032'/>
      </source>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
</domain>

```

Here is also some concerning logs (these are just warnings and errors) on system startup (no VM's started) that might relevant. 

```
Jun 30 13:31:26 Tower kernel: ACPI: Early table checksum verification disabled

Jun 30 13:31:26 Tower kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PCI0.GPP0.VGA], AE_ALREADY_EXISTS (20210730/dswload2-326)

Jun 30 13:31:26 Tower kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20210730/psobject-220)

Jun 30 13:31:26 Tower kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PCI0.GPP0.HDAU], AE_ALREADY_EXISTS (20210730/dswload2-326) Jun 30 13:31:26 Tower kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20210730/psobject-220)

Jun 30 13:31:26 Tower kernel: floppy0: no floppy controllers found

Jun 30 13:31:26 Tower kernel: ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.GPP0.VGA.LCD._BCM.AFN7], AE_NOT_FOUND (20210730/psargs-330)

Jun 30 13:31:26 Tower kernel: ACPI Error: Aborting method \_SB.PCI0.GPP0.VGA.LCD._BCM due to previous error (AE_NOT_FOUND) (20210730/psparse-529)

Jun 30 13:31:26 Tower kernel: ACPI: \_SB_.PCI0.GPP0.VGA_.LCD_: _BCM evaluation failed

Jun 30 13:31:26 Tower kernel: ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.GP17.VGA.LCD._BCM.AFN7], AE_NOT_FOUND (20210730/psargs-330)

Jun 30 13:31:26 Tower kernel: ACPI Error: Aborting method \_SB.PCI0.GP17.VGA.LCD._BCM due to previous error (AE_NOT_FOUND) (20210730/psparse-529)

Jun 30 13:31:26 Tower kernel: ACPI: \_SB_.PCI0.GP17.VGA_.LCD_: _BCM evaluation failed

Jun 30 13:31:26 Tower kernel: random: 8 urandom warning(s) missed due to ratelimiting

Jun 30 13:31:26 Tower kernel: ACPI Warning: SystemIO range 0x0000000000000B00-0x0000000000000B08 conflicts with OpRegion 0x0000000000000B00-0x0000000000000B0F (\GSA1.SMBI) (20210730/utaddress-204)

Jun 30 13:31:26 Tower mcelog: ERROR: AMD Processor family 25: mcelog does not support this processor. Please use the edac_mce_amd module instead.

Jun 30 13:32:46 Tower emhttpd: /mnt/vdisk mount error: Unsupported partition layout
```
This last message makes sense as I've formatted the drive to be bootable by windows (NTFS) but I don't want UNRAID to use that drive, i want to dedicate it to the windows VM. 

 

Seems like setting this up always causes some issues, but my issue appears be less common. 

 

Thanks in advance!. 

 

 



 

Link to comment

UPDATE:
I added a second display device and connected a VNC session (and the 1650Super), it is booting into windows, but the device manager and event viewer have lots of issues.

 

Device Manager -> 1650 Super -> Properties -> 'Windows has stopped this device because it has reported problems. (Code 43)'


Event Viewer Errors:

'License Activation (slui.exe) failed' - (probably because Win 10 is not licenced yet). 
'Session "PerfDiag Logger" failed to start...' 

'Miniport driver failed to start device ....' 

I'm gonna say switching between booting directly into the windows installation, and having UNRAID boot that same installation... is probably a bad idea. 

Is there a better way to dedicated a physical drive to a VM, (I can tell my BIOS not to boot into the SSD, but i'd hate to lose the windows machine because it's gets booted directly too one). 

I'll wipe the SSD and reinstall windows and see update again.

Thanks again.
 

Link to comment

No change, with two display adapters (VNC and 1650 Super), the VNC shows a working windows installation, and the gpu device is installed/working correctly according to windows, but I can't add it as a display and If I remove the VNC and only have the 1650 Super as the graphics device to the VM, nothing happens even though the VM appears to run correctly (even going to hibernate after ~1 hour inactivity). 

 

Hoping anyone has some advice!

Link to comment
  • 4 weeks later...

Thanks for the video, using two outputs still (VNC and 1650s) Device manager thinks the device is working properly, however plugging in a monitor does nothing. 

Inside the windows VM, i can't boot nvidia control panel, I can see the application faulting in the event viewer, the most common fix recommended by the internet is the rollback the video drivers. Should the nvidia control panel work after dumping the vbios myself?

 

Still churning through options, any ideas are appreciated!

On 7/1/2022 at 11:59 PM, JorgeB said:

Try dumping the VBIOS.

 

 

 

 

 

 

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.

×
×
  • Create New...