Lost GPU Passthru moving to 6.10.1


Recommended Posts

This Windows 10 VM was working fine before the OS Upgrade 20 6.10.1 but now VM never shows up  on the network after I start it.  Works fine if I turn off PassThru and use VNC instead.  I am using a 750TI.  Any ideas? Here is VM Log.

 

-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-3-format,id=virtio-disk2,bootindex=1,write-cache=on \
-blockdev '{"driver":"file","filename":"/mnt/user/Backup/Software/Windows10RS4/Windows 10 RS4 Pro SupremeOS Edition (x64) 2018-P2P.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"raw","file":"libvirt-2-storage"}' \
-device ide-cd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=2 \
-blockdev '{"driver":"file","filename":"/mnt/user/Backup/Software/virtio-win-0.1.190-1.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.0,unit=1,drive=libvirt-1-format,id=ide0-0-1 \
-netdev tap,fd=37,id=hostnet0 \
-device virtio-net,netdev=hostnet0,id=net0,mac=52:54:00:5f:dc:a4,bus=pci.0,addr=0x4 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0,index=0 \
-chardev socket,id=charchannel0,fd=35,server=on,wait=off \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
-device usb-tablet,id=input0,bus=usb.0,port=1 \
-audiodev '{"id":"audio1","driver":"none"}' \
-vnc 0.0.0.0:0,websocket=5700,audiodev=audio1 \
-k en-us \
-device qxl-vga,id=video0,max_outputs=1,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,bus=pci.0,addr=0x2 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
char device redirected to /dev/pts/0 (label charserial0)
qxl_send_events: spice-server bug: guest stopped, ignoring
2022-05-23T17:46:21.564375Z qemu-system-x86_64: terminating on signal 15 from pid 11070 (/usr/sbin/libvirtd)
2022-05-23 17:46:21.795+0000: shutting down, reason=shutdown
2022-05-23 17:47:04.868+0000: starting up libvirt version: 8.2.0, qemu version: 6.2.0, kernel: 5.15.40-Unraid, hostname: MediaTower
LC_ALL=C \
PATH=/bin:/sbin:/usr/bin:/usr/sbin \
HOME=/var/lib/libvirt/qemu/domain-3-W10 \
XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-3-W10/.local/share \
XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-3-W10/.cache \
XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-3-W10/.config \
/usr/local/sbin/qemu \
-name guest=W10,debug-threads=on \
-S \
-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-3-W10/master-key.aes"}' \
-machine pc-i440fx-5.1,usb=off,dump-guest-core=off,mem-merge=off,memory-backend=pc.ram \
-accel kvm \
-cpu host,migratable=on,hv-time=on,hv-relaxed=on,hv-vapic=on,hv-spinlocks=0x1fff,hv-vendor-id=none,host-cache-info=on,l3-cache=off \
-m 4096 \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":4294967296}' \
-overcommit mem-lock=off \
-smp 4,sockets=1,dies=1,cores=2,threads=2 \
-uuid d07abd87-eb87-d4df-0f35-11c60bebc1c8 \
-display none \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=36,server=on,wait=off \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=localtime \
-no-hpet \
-no-shutdown \
-boot strict=on \
-device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x7.0x7 \
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x7 \
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x7.0x1 \
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x7.0x2 \
-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 \
-blockdev '{"driver":"file","filename":"/mnt/user/domains/W10/vdisk1.img","node-name":"libvirt-3-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-3-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-3-storage"}' \
-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=libvirt-3-format,id=virtio-disk2,bootindex=1,write-cache=on \
-blockdev '{"driver":"file","filename":"/mnt/user/Backup/Software/Windows10RS4/Windows 10 RS4 Pro SupremeOS Edition (x64) 2018-P2P.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"raw","file":"libvirt-2-storage"}' \
-device ide-cd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=2 \
-blockdev '{"driver":"file","filename":"/mnt/user/Backup/Software/virtio-win-0.1.190-1.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.0,unit=1,drive=libvirt-1-format,id=ide0-0-1 \
-netdev tap,fd=37,id=hostnet0 \
-device virtio-net,netdev=hostnet0,id=net0,mac=52:54:00:5f:dc:a4,bus=pci.0,addr=0x2 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0,index=0 \
-chardev socket,id=charchannel0,fd=35,server=on,wait=off \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
-device usb-tablet,id=input0,bus=usb.0,port=1 \
-audiodev '{"id":"audio1","driver":"none"}' \
-device vfio-pci,host=0000:06:00.0,id=hostdev0,bus=pci.0,addr=0x5 \
-device vfio-pci,host=0000:06:00.1,id=hostdev1,bus=pci.0,addr=0x6 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
char device redirected to /dev/pts/0 (label charserial0)
 

Edited by a12vman
Link to comment
  • 2 weeks later...

Resolved my issue by creating a new Win10 VM using the following parameters:

 

Machine: Q35-6.2

BIOS: OVMF

Hyper-V: Yes

USB Controller: 3.0 (nec XHCI)

 

For Graphics card passthrough I did the following:

Settings -> VM Manager -> Advance View:

PCIe ACS override: Both

VFIO allow unsafe interrupts: Yes

For the XML view I moved the Audio to the same Bus as the GPU (bus 0x04) and set the function of the audio to (0x1), then added multifunction='on' to the gpu address. See SpaceInvaderOne's video for more information on this.

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/isos/vbios/gtx_1060_strix_gaming.rom'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
    </hostdev>

 

For Syslinux configuration: Unraid OS:

Main -> Flash -> Syslinux Configuration -> Unraid OS:

Added:

video=efifb:off

to the end of the line.

 

Note: I am unable to use my existing VDisk image. I had to fresh install windows and migrate settings and files. It sucks, but it works and I'm on 6.10.2 with an AMD Ryzen cpu and an NVidia GPU.

 

Edit: No matter what I tried, I couldn't get the VM to pass through the gpu with Seabios selected. OVFM is the only thing that worked for me in 6.10.2.

Edited by Celsian
Link to comment

I likely could have sysprepped it and moved it over that way, but I didn't think to do that until after I had already started setting up the new one. I've installed windows hundreds of times and this VM is just an HTPC anyway, so there's not a lot of setup necessary.

 

Obviously that's not the case for everyone else, sysprep is a great alternative.

Edited by Celsian
Link to comment

Hi,

 

i have the same issue. I lost my GPU passthrough once i update to 6.10.2.

OS: Windows 11

CPU: Ryzen 3950X

GPU: NVS 510, but it also happens with a GT 710

 

I know that my GPU is rather old, but this Windows VM is mainly my Homeoffice machine.

 

I also tried following the guide from Celsius, without any luck. So i rolled back to 6.9.2.

Quote
On 6/2/2022 at 10:51 PM, Celsian said:

Resolved my issue by creating a new Win10 VM using the following parameters:

 

Machine: Q35-6.2

BIOS: OVMF

Hyper-V: Yes

USB Controller: 3.0 (nec XHCI)

 

For Graphics card passthrough I did the following:

Settings -> VM Manager -> Advance View:

PCIe ACS override: Both

VFIO allow unsafe interrupts: Yes

For the XML view I moved the Audio to the same Bus as the GPU (bus 0x04) and set the function of the audio to (0x1), then added multifunction='on' to the gpu address. See SpaceInvaderOne's video for more information on this.

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/isos/vbios/gtx_1060_strix_gaming.rom'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
    </hostdev>

 

For Syslinux configuration: Unraid OS:

Main -> Flash -> Syslinux Configuration -> Unraid OS:

Added:

video=efifb:off

to the end of the line.

 

Note: I am unable to use my existing VDisk image. I had to fresh install windows and migrate settings and files. It sucks, but it works and I'm on 6.10.2 with an AMD Ryzen cpu and an NVidia GPU.

 

Edit: No matter what I tried, I couldn't get the VM to pass through the gpu with Seabios selected. OVFM is the only thing that worked for me in 6.10.2.

 

 

Link to comment
  • 2 weeks later...

Hi, Im also getting issues in all 6.10.X versions. 6.9.X has been fine.

 

I get the pasthrough working on an Nvidia GT 710 but when booting LibreElec it has a error:

 

[FAILED] Failed to start Xorg Server

[DEPEND] Dependency failed for Fluxbox Window Manager

 

On my older Nvidia 210 I dont get anything

 

As per previous and extract below I have set the audio onto the same bus and 

PCIe ACS override: Both

VFIO allow unsafe interrupts: Yes

Added to Syslinux: video=efifb:off

 

I use 2 LibreElec installations with Passthrough for daily tv in my house so I need to get this working if I ever want to upgrade beyond 6.9.2

 

<hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x82' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <rom file='/mnt/user/Storage/Apps/VBIOS/gpu GT710 vbios.rom'/>
      <address type='pci' domain='0x0000' bus='0x82' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x82' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x82' slot='0x00' function='0x1'/>
    </hostdev>

 

Edited by jas0r
Link to comment
  • 1 month later...
  • 1 month later...

Small update. After fixing my Passthrough issue (earlier in this thread) the VM has been working flawlessly since.

Upgrading to 6.11 worked fine. Passthrough continues to work.

 

Edit: 11/28/22

Passthrough still working as of 6.11.5

 

Another note, I recently helped my brother with his GTX 770. The steps I took above did not work for that card, we were still getting Error code 43 in device manger, however a change to the VM's XML from this post fixed it:

Edited by Celsian
  • Thanks 1
Link to comment
  • 1 year 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.