NVidia GTX 1660 Super GPU passthrough to Win10 VM

AxAn

Member
Jan 15, 2020
25
5
8
44
tl;dr:
If you can't pass-through a NVidia Super GPU to a VM and you have a long Proxmox boot time then try this:
Code:
echo "blacklist i2c-nvidia-gpu" >> /etc/modprobe.d/blacklist.conf
update-initramfs -u -k all
reboot

Full info:
I've spent a lot of time to try and get a GeForce GTX 1660 SUPER AERO ITX OC GPU passed through to a Windows 10 VM.
I changed my AMD RX 570 for a Nvidia 1660 Super and immediately got 2 problems:

1. The boot time for Proxmox got 1 min and 33 seconds longer.
2. I could not GPU passthrough my NVidia 1660 Super

I found a post where it was said that all kernels after 5.0.21-5 has this problem.
You can fix the problem by downgrading to this kernel version:
(spoiler: DON'T DO THIS)
Bash:
apt install pve-kernel-5.0.21-5-pve
reboot
(select 5.0.21-5 on boot)
grub-editenv - set saved_entry="Proxmox Virtual Environment GNU/Linux, with Linux 5.0.21-5-pve"

//delete newer kernels (5.3-*)
touch '/please-remove-proxmox-ve'
apt remove "pve-kernel-5.3-*"
reboot

On the most recent kernel (5.3.13-3-pve) I get this output after doing the common GPU passthrough stuff:
Code:
lspci -nnk
09:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:21c4] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: nvidiafb, nouveau
09:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:1aeb] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel
09:00.2 USB controller [0c03]: NVIDIA Corporation Device [10de:1aec] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: xhci_hcd
09:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device [10de:1aed] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: nvidia-gpu
        Kernel modules: i2c_nvidia_gpu

As you can see there is a "USB controller" connected to the GPU and also a "Serial bus controller".
Both of then are not using the vfio-pci kernel driver, which is needed for a passthrough to work.

When checking why the system is booting so slow I get this:
Code:
systemd-analyze blame
    1min 33.115s ifupdown-pre.service
    1min 33.101s systemd-udev-settle.service
          5.800s smartmontools.service
          5.506s zfs-import-cache.service
          2.127s systemd-modules-load.service
...

If I try and start a Win10 VM with 09:00 passthrough I get the following:
Code:
Feb  9 12:52:04 prox pvedaemon[13664]: start VM 100: UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam:
Feb  9 12:52:04 prox pvedaemon[13173]: <root@pam> starting task UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam:
Feb  9 12:55:31 prox kernel: [  449.004296] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 12:55:31 prox kernel: [  449.004300] usb usb6: USB disconnect, device number 1
Feb  9 12:55:31 prox kernel: [  449.004422] xhci_hcd 0000:09:00.2: USB bus 6 deregistered
Feb  9 12:55:31 prox kernel: [  449.004428] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 12:55:31 prox kernel: [  449.004428] usb usb5: USB disconnect, device number 1
Feb  9 12:55:31 prox kernel: [  449.005083] xhci_hcd 0000:09:00.2: USB bus 5 deregistered
Feb  9 12:55:31 prox systemd[1]: Created slice qemu.slice.
Feb  9 12:55:31 prox systemd[1]: Started 100.scope.
Feb  9 12:55:31 prox kernel: [  449.226960] BUG: unable to handle page fault for address: ffff9f9380121000
Feb  9 12:55:31 prox kernel: [  449.226964] #PF: supervisor read access in kernel mode
...
Notice that nothing happens for around 3:30 minutes.
After I tried starting the VM and the error messages shows up the system gets unstable and I need to power down Proxmox by a hard reset.

How to fix this problem:
This problem can be fixed by blacklisting the "i2c nvidia gpu" kernel module:
Code:
echo "blacklist i2c-nvidia-gpu" >> /etc/modprobe.d/blacklist.conf
update-initramfs -u -k all
reboot

Now it looks like this:
Code:
lspci -nnk
09:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:21c4] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: nvidiafb, nouveau
09:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:1aeb] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel
09:00.2 USB controller [0c03]: NVIDIA Corporation Device [10de:1aec] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: xhci_hcd
09:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device [10de:1aed] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: i2c_nvidia_gpu
(09:00.3 is using vfio-pci)

Now there is no delay at boot and I can start my VM with the GPU passthrough but /var/log/syslog still says it has problems with xhci_hcd on the first boot of the VM:
Code:
Feb  9 13:08:34 prox pvedaemon[1999]: <root@pam> starting task UPID:prox:0000093D:00002B69:5E3FF642:qmstart:100:root@pam:
Feb  9 13:08:35 prox kernel: [  110.935303] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 13:08:35 prox kernel: [  110.935306] usb usb6: USB disconnect, device number 1
Feb  9 13:08:35 prox kernel: [  110.935426] xhci_hcd 0000:09:00.2: USB bus 6 deregistered
Feb  9 13:08:35 prox kernel: [  110.935431] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 13:08:35 prox kernel: [  110.935432] usb usb5: USB disconnect, device number 1
Feb  9 13:08:35 prox kernel: [  110.936068] xhci_hcd 0000:09:00.2: USB bus 5 deregistered
This only happens on the first boot of the VM. After that 09:00.2 is using the vfio-pci kernel driver.

While I was trying to fix the main problem did I find a way to set so "09:00.2 USB controller" is using vfio-pci from the start but it includes making a script:
Code:
nano unbind-gtx-usb.sh
Bash:
#!/bin/sh
DEVICE1="09:00.2"
modprobe vfio-pci
for dev in "0000:$DEVICE1"; do
        vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
        device=$(cat /sys/bus/pci/devices/$dev/device)
        if [ -e /sys/bus/pci/devices/$dev/driver ]; then
                echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
        fi
        echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
done
Code:
chmod u+x unbind-gtx-usb.sh
./unbind-gtx-usb.sh

If you run that before you start the VM there is no error, but this seems like overkill now since it doesn't seem to be needed.
 
Full log from /var/log/syslog when the VM was failing before doing the above fix:

Code:
Feb  9 12:52:04 prox pvedaemon[13664]: start VM 100: UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam:
Feb  9 12:52:04 prox pvedaemon[13173]: <root@pam> starting task UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam:
Feb  9 12:53:38 prox kernel: [  336.053891] ucsi_ccg 0-0008: PPM NOT RESPONDING
Feb  9 12:55:31 prox kernel: [  449.004296] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 12:55:31 prox kernel: [  449.004300] usb usb6: USB disconnect, device number 1
Feb  9 12:55:31 prox kernel: [  449.004422] xhci_hcd 0000:09:00.2: USB bus 6 deregistered
Feb  9 12:55:31 prox kernel: [  449.004428] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 12:55:31 prox kernel: [  449.004428] usb usb5: USB disconnect, device number 1
Feb  9 12:55:31 prox kernel: [  449.005083] xhci_hcd 0000:09:00.2: USB bus 5 deregistered
Feb  9 12:55:31 prox systemd[1]: Created slice qemu.slice.
Feb  9 12:55:31 prox systemd[1]: Started 100.scope.
Feb  9 12:55:31 prox kernel: [  449.226960] BUG: unable to handle page fault for address: ffff9f9380121000
Feb  9 12:55:31 prox kernel: [  449.226964] #PF: supervisor read access in kernel mode
Feb  9 12:55:31 prox kernel: [  449.226966] #PF: error_code(0x0000) - not-present page
Feb  9 12:55:31 prox kernel: [  449.226967] PGD 42cd54067 P4D 42cd54067 PUD 42cd55067 PMD 42cd56067 PTE 0
Feb  9 12:55:31 prox kernel: [  449.226971] Oops: 0000 [#1] SMP NOPTI
Feb  9 12:55:31 prox kernel: [  449.226973] CPU: 10 PID: 212 Comm: kworker/10:1 Tainted: P           O      5.3.13-3-pve #1
Feb  9 12:55:31 prox kernel: [  449.226975] Hardware name: Gigabyte Technology Co., Ltd. X570 AORUS ULTRA/X570 AORUS ULTRA, BIOS F11 12/06/2019
Feb  9 12:55:31 prox kernel: [  449.226980] Workqueue: events ccg_pm_workaround_work [ucsi_ccg]
Feb  9 12:55:31 prox kernel: [  449.226983] RIP: 0010:gpu_i2c_check_status.isra.5+0x52/0xa0 [i2c_nvidia_gpu]
Feb  9 12:55:31 prox kernel: [  449.226986] Code: 25 00 00 00 60 3d 00 00 00 60 75 24 be 58 02 00 00 bf f4 01 00 00 e8 ed 0b 1d cd 48 8b 05 c6 0c d1 cd 4c 39 e0 79 09 49 8b 06 <8b> 18 85 db 78 ce 48 8b 05 b1 0c d1 cd 49 39 c4 0f 88 b6 02 00 00
Feb  9 12:55:31 prox kernel: [  449.226989] RSP: 0018:ffff9f938059fcc0 EFLAGS: 00010283
Feb  9 12:55:31 prox kernel: [  449.226991] RAX: ffff9f9380121000 RBX: 00000000ffffffff RCX: 0000000000000000
Feb  9 12:55:31 prox kernel: [  449.226993] RDX: ffff8c3daea9db40 RSI: 0000000000000000 RDI: ffff9f938059fbf8
Feb  9 12:55:31 prox kernel: [  449.226995] RBP: ffff9f938059fce0 R08: 0000000000000000 R09: 0000000000000003
Feb  9 12:55:31 prox kernel: [  449.226996] R10: 000000000000000e R11: ffff8c3daeaa94c4 R12: 00000001000091a3
Feb  9 12:55:31 prox kernel: [  449.226998] R13: ffff8c3dac740818 R14: ffff8c3dac740820 R15: 00000001000090a9
Feb  9 12:55:31 prox kernel: [  449.227000] FS:  0000000000000000(0000) GS:ffff8c3daea80000(0000) knlGS:0000000000000000
Feb  9 12:55:31 prox kernel: [  449.227002] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Feb  9 12:55:31 prox kernel: [  449.227004] CR2: ffff9f9380121000 CR3: 00000003d97f8000 CR4: 0000000000340ee0
Feb  9 12:55:31 prox kernel: [  449.227005] Call Trace:
Feb  9 12:55:31 prox kernel: [  449.227009]  gpu_i2c_master_xfer+0xe8/0x22d [i2c_nvidia_gpu]
Feb  9 12:55:31 prox kernel: [  449.227013]  __i2c_transfer+0x180/0x4d0
Feb  9 12:55:31 prox kernel: [  449.227015]  i2c_transfer+0x88/0x100
Feb  9 12:55:31 prox kernel: [  449.227018]  ccg_read+0x11e/0x170 [ucsi_ccg]
Feb  9 12:55:31 prox kernel: [  449.227021]  ? __switch_to_asm+0x40/0x70
Feb  9 12:55:31 prox kernel: [  449.227023]  ? __switch_to_asm+0x40/0x70
Feb  9 12:55:31 prox kernel: [  449.227025]  ucsi_ccg_sync+0x56/0xb0 [ucsi_ccg]
Feb  9 12:55:31 prox kernel: [  449.227028]  ucsi_notify+0x26/0x120 [typec_ucsi]
Feb  9 12:55:31 prox kernel: [  449.227030]  ccg_pm_workaround_work+0x15/0x20 [ucsi_ccg]
Feb  9 12:55:31 prox kernel: [  449.227034]  process_one_work+0x20f/0x3d0
Feb  9 12:55:31 prox kernel: [  449.227036]  worker_thread+0x34/0x400
Feb  9 12:55:31 prox kernel: [  449.227038]  kthread+0x120/0x140
Feb  9 12:55:31 prox kernel: [  449.227040]  ? process_one_work+0x3d0/0x3d0
Feb  9 12:55:31 prox kernel: [  449.227042]  ? __kthread_parkme+0x70/0x70
Feb  9 12:55:31 prox kernel: [  449.227044]  ret_from_fork+0x22/0x40
Feb  9 12:55:31 prox kernel: [  449.227046] Modules linked in: ebtable_filter ebtables ip_set ip6table_raw iptable_raw ip6table_filter ip6_tables iptable_filter bpfilter softdog nfnetlink_log nfnetlink edac_mce_amd kvm_amd kvm zfs(PO) zunicode(PO) zlua(PO) zavl(PO) icp(PO) amdgpu crct10dif_pclmul crc32_pclmul ghash_clmulni_intel iwlmvm amd_iommu_v2 gpu_sched snd_hda_codec_hdmi mac80211 ttm btusb libarc4 btrtl aesni_intel snd_hda_intel ucsi_ccg btbcm drm_kms_helper btintel snd_hda_codec aes_x86_64 crypto_simd drm cryptd glue_helper snd_hda_core bluetooth typec_ucsi mxm_wmi fb_sys_fops wmi_bmof zcommon(PO) pcspkr snd_hwdep iwlwifi syscopyarea k10temp typec sysfillrect snd_pcm sysimgblt ccp ecdh_generic input_leds znvpair(PO) ecc snd_timer snd cfg80211 soundcore spl(O) vhost_net vhost tap ib_iser mac_hid rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi vfio_pci vfio_virqfd irqbypass sunrpc vfio_iommu_type1 vfio ip_tables x_tables autofs4 btrfs xor zstd_compress raid6_pq dm_thin_pool
Feb  9 12:55:31 prox kernel: [  449.227075]  dm_persistent_data dm_bio_prison dm_bufio libcrc32c usbmouse hid_generic usbkbd usbhid hid i2c_piix4 i2c_nvidia_gpu ahci libahci igb i2c_algo_bit dca wmi
Feb  9 12:55:31 prox kernel: [  449.227096] CR2: ffff9f9380121000
Feb  9 12:55:31 prox kernel: [  449.227098] ---[ end trace de3e9f7af629ba3d ]---
Feb  9 12:55:31 prox kernel: [  449.227100] RIP: 0010:gpu_i2c_check_status.isra.5+0x52/0xa0 [i2c_nvidia_gpu]
Feb  9 12:55:31 prox kernel: [  449.227102] Code: 25 00 00 00 60 3d 00 00 00 60 75 24 be 58 02 00 00 bf f4 01 00 00 e8 ed 0b 1d cd 48 8b 05 c6 0c d1 cd 4c 39 e0 79 09 49 8b 06 <8b> 18 85 db 78 ce 48 8b 05 b1 0c d1 cd 49 39 c4 0f 88 b6 02 00 00
 
Code:
Feb  9 12:55:31 prox kernel: [  449.227105] RSP: 0018:ffff9f938059fcc0 EFLAGS: 00010283
Feb  9 12:55:31 prox kernel: [  449.227107] RAX: ffff9f9380121000 RBX: 00000000ffffffff RCX: 0000000000000000
Feb  9 12:55:31 prox kernel: [  449.227108] RDX: ffff8c3daea9db40 RSI: 0000000000000000 RDI: ffff9f938059fbf8
Feb  9 12:55:31 prox kernel: [  449.227110] RBP: ffff9f938059fce0 R08: 0000000000000000 R09: 0000000000000003
Feb  9 12:55:31 prox kernel: [  449.227112] R10: 000000000000000e R11: ffff8c3daeaa94c4 R12: 00000001000091a3
Feb  9 12:55:31 prox kernel: [  449.227113] R13: ffff8c3dac740818 R14: ffff8c3dac740820 R15: 00000001000090a9
Feb  9 12:55:31 prox kernel: [  449.227115] FS:  0000000000000000(0000) GS:ffff8c3daea80000(0000) knlGS:0000000000000000
Feb  9 12:55:31 prox kernel: [  449.227117] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Feb  9 12:55:31 prox kernel: [  449.227119] CR2: ffff9f9380121000 CR3: 00000003d97f8000 CR4: 0000000000340ee0
Feb  9 12:55:31 prox systemd-udevd[14286]: Using default interface naming scheme 'v240'.
Feb  9 12:55:31 prox systemd-udevd[14286]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb  9 12:55:31 prox systemd-udevd[14286]: Could not generate persistent MAC address for tap100i0: No such file or directory
Feb  9 12:55:31 prox kernel: [  449.542082] device tap100i0 entered promiscuous mode
Feb  9 12:55:31 prox systemd-udevd[14286]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb  9 12:55:31 prox systemd-udevd[14286]: Could not generate persistent MAC address for fwbr100i0: No such file or directory
Feb  9 12:55:31 prox systemd-udevd[14286]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb  9 12:55:31 prox systemd-udevd[14286]: Could not generate persistent MAC address for fwpr100p0: No such file or directory
Feb  9 12:55:31 prox systemd-udevd[14283]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb  9 12:55:31 prox systemd-udevd[14283]: Using default interface naming scheme 'v240'.
Feb  9 12:55:31 prox systemd-udevd[14283]: Could not generate persistent MAC address for fwln100i0: No such file or directory
Feb  9 12:55:31 prox kernel: [  449.558164] fwbr100i0: port 1(fwln100i0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.558169] fwbr100i0: port 1(fwln100i0) entered disabled state
Feb  9 12:55:31 prox kernel: [  449.558219] device fwln100i0 entered promiscuous mode
Feb  9 12:55:31 prox kernel: [  449.558252] fwbr100i0: port 1(fwln100i0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.558254] fwbr100i0: port 1(fwln100i0) entered forwarding state
Feb  9 12:55:31 prox kernel: [  449.560207] vmbr0: port 2(fwpr100p0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.560211] vmbr0: port 2(fwpr100p0) entered disabled state
Feb  9 12:55:31 prox kernel: [  449.560254] device fwpr100p0 entered promiscuous mode
Feb  9 12:55:31 prox kernel: [  449.560283] vmbr0: port 2(fwpr100p0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.560284] vmbr0: port 2(fwpr100p0) entered forwarding state
Feb  9 12:55:31 prox kernel: [  449.561738] fwbr100i0: port 2(tap100i0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.561740] fwbr100i0: port 2(tap100i0) entered disabled state
Feb  9 12:55:31 prox kernel: [  449.561786] fwbr100i0: port 2(tap100i0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.561787] fwbr100i0: port 2(tap100i0) entered forwarding state
Feb  9 12:55:32 prox kernel: [  450.570061] vfio-pci 0000:09:00.0: enabling device (0000 -> 0003)
Feb  9 12:55:32 prox kernel: [  450.675493] vfio-pci 0000:09:00.0: vfio_ecap_init: hiding ecap 0x1e@0x258
Feb  9 12:55:32 prox kernel: [  450.675520] vfio-pci 0000:09:00.0: vfio_ecap_init: hiding ecap 0x19@0x900
Feb  9 12:56:00 prox systemd[1]: Starting Proxmox VE replication runner...
Feb  9 12:56:00 prox systemd[1]: pvesr.service: Succeeded.
Feb  9 12:56:00 prox systemd[1]: Started Proxmox VE replication runner.
Feb  9 12:56:01 prox pvedaemon[13664]: start failed: command '/usr/bin/kvm -id 100 -name Win10HTPC -chardev 'socket,id=qmp,path=/var/run/qemu-server/100.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/100.pid -daemonize -smbios 'type=1,uuid=8b4ab735-3d41-40c3-9da7-e971b5729f67' -drive 'if=pflash,unit=0,format=raw,readonly,file=/usr/share/pve-edk2-firmware//OVMF_CODE.fd' -drive 'if=pflash,unit=1,format=raw,id=drive-efidisk0,file=/dev/zvol/TreeDisk/vm-100-disk-0' -smp '4,sockets=2,cores=2,maxcpus=4' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vga none -nographic -no-hpet -cpu 'kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=proxmox,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,hv_synic,hv_stimer,hv_ipi,enforce,kvm=off' -m 8032 -device 'vmgenid,guid=b1c66a0a-1b3e-45d7-9378-8a140cc94eef' -readconfig /usr/share/qemu-server/pve-q35-4.0.cfg -device 'nec-usb-xhci,id=xhci,bus=pci.1,addr=0x1b' -device 'usb-tablet,id=tablet,bus=ehci.0,port=1' -device 'vfio-pci,host=0000:09:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,multifunction=on' -device 'vfio-pci,host=0000:09:00.1,id=hostpci0.1,bus=ich9-pcie-port-1,addr=0x0.1' -device 'vfio-pci,host=0000:09:00.2,id=hostpci0.2,bus=ich9-pcie-port-1,addr=0x0.2' -device 'vfio-pci,host=0000:09:00.3,id=hostpci0.3,bus=ich9-pcie-port-1,addr=0x0.3' -device 'usb-host,bus=xhci.0,vendorid=0x046d,productid=0xc051,id=usb0' -device 'usb-host,bus=xhci.0,vendorid=0x413c,productid=0x2107,id=usb1' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:ee284c19ac3e' -drive 'file=/NoBackup/ISO/template/iso/Windows10.iso,if=none,id=drive-ide2,media=cdrom,aio=threads' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -device 'ahci,id=ahci0,multifunction=on,bus=pci.0,addr=0x7' -drive 'file=/dev/zvol/NoBackup/vm-100-disk-0,if=none,id=drive-sata0,cache=writeback,format=raw,aio=threads,detect-zeroes=on' -device 'ide-hd,bus=ahci0.0,drive=drive-sata0,id=sata0,bootindex=100' -netdev 'type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown' -device 'e1000,mac=96:3C:13:D3:3D:35,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -rtc 'driftfix=slew,base=localtime' -machine 'type=q35+pve1' -global 'kvm-pit.lost_tick_policy=discard'' failed: got timeout

Feb  9 12:56:01 prox pvedaemon[13173]: <root@pam> end task UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam: start failed: command '/usr/bin/kvm -id 100 -name Win10HTPC -chardev 'socket,id=qmp,path=/var/run/qemu-server/100.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/100.pid -daemonize -smbios 'type=1,uuid=8b4ab735-3d41-40c3-9da7-e971b5729f67' -drive 'if=pflash,unit=0,format=raw,readonly,file=/usr/share/pve-edk2-firmware//OVMF_CODE.fd' -drive 'if=pflash,unit=1,format=raw,id=drive-efidisk0,file=/dev/zvol/TreeDisk/vm-100-disk-0' -smp '4,sockets=2,cores=2,maxcpus=4' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vga none -nographic -no-hpet -cpu 'kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=proxmox,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,hv_synic,hv_stimer,hv_ipi,enforce,kvm=off' -m 8032 -device 'vmgenid,guid=b1c66a0a-1b3e-45d7-9378-8a140cc94eef' -readconfig /usr/share/qemu-server/pve-q35-4.0.cfg -device 'nec-usb-xhci,id=xhci,bus=pci.1,addr=0x1b' -device 'usb-tablet,id=tablet,bus=ehci.0,port=1' -device 'vfio-pci,host=0000:09:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,multifunction=on' -device 'vfio-pci,host=0000:09:00.1,id=hostpci0.1,bus=ich9-pcie-port-1,addr=0x0.1' -device 'vfio-pci,host=0000:09:00.2,id=hostpci0.2,bus=ich9-pcie-port-1,addr=0x0.2' -device 'vfio-pci,host=0000:09:00.3,id=hostpci0.3,bus=ich9-pcie-port-1,addr=0x0.3' -device 'usb-host,bus=xhci.0,vendorid=0x046d,productid=0xc051,id=usb0' -device 'usb-host,bus=xhci.0,vendorid=0x413c,productid=0x2107,id=usb1' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:ee284c19ac3e' -drive 'file=/NoBackup/ISO/template/iso/Windows10.iso,if=none,id=drive-ide2,media=cdrom,aio=threads' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -device 'ahci,id=ahci0,multifunction=on,bus=pci.0,addr=0x7' -drive 'file=/dev/zvol/NoBackup/vm-100-disk-0,if=none,id=drive-sata0,cache=writeback,format=raw,aio=threads,detect-zeroes=on' -device 'ide-hd,bus=ahci0.0,drive=drive-sata0,id=sata0,bootindex=100' -netdev 'type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown' -device 'e1000,mac=96:3C:13:D3:3D:35,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -rtc 'driftfix=slew,base=localtime' -machine 'type=q35+pve1' -global 'kvm-pit.lost_tick_policy=discard'' failed: got timeout
 
great that you found a solution, a different one would have been to only passthrough the gpu and audio device with a line in the config such as this:

'hostpci0: 0X:00.0;0X:00.1,pcie=1....'

at least in my tries this always worked, but i did not need the usb functionality anyway (this is only for the VirtualLink[0] VR capability afaics)

0: https://en.wikipedia.org/wiki/VirtualLink
 
great that you found a solution, a different one would have been to only passthrough the gpu and audio device with a line in the config such as this:

'hostpci0: 0X:00.0;0X:00.1,pcie=1....'

at least in my tries this always worked, but i did not need the usb functionality anyway (this is only for the VirtualLink[0] VR capability afaics)

0: https://en.wikipedia.org/wiki/VirtualLink

I tried, at an early stage, to only passthrough the GPU and HDMI sound but I could not get that to work either.

My graphics card doesn't have a USB port so I assume that it's up to the manufacturer to implement it or not.
I did see a post somewhere about a Gigabyte card, I think it was, that had the same problem and they released a new vbios to simply remove the USB device - that couldn't be used anyway since there was no connection for it.

From what I have been reading you should always try and passthrough a whole IOMMU group and because I could not get it to work with only GPU and audio I followed along those lines.

This specific problem might be connected to either the NVidia Super cards or the USB port.
While searching for a solution did I notice a few others that specifically had NVidia Super cards.
 
From what I have been reading you should always try and passthrough a whole IOMMU group and because I could not get it to work with only GPU and audio I followed along those lines.
in general thats true, but i had an rtx2060 for which it worked to only passthrough the gpu and audio... but yes your mileage may vary...
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!