Proxmox v8.0.3 | Unable to Passthrough GPU - Followed Guide

AusKee

New Member
Jun 25, 2023
14
0
1
Good Afternoon Proxmox Community,


I am having an almost impossible time getting my gaming laptop with Proxmox installed to work with Nvidia GTX 1080 (Max Q) card to passthrough to my Windows 10 VM.


I've followed the official tutorial, read countless proxmox forum posts, and followed other guides(beginners guide passthrough on proxmox reddit & wundertechs guide) I found on passthrough for Nvidia chipsets to windows 10 VMs on proxmox. Either I am doing something wrong- or, missing something. Because- Nothing has worked.


In short: I have blacklisted in grub & cmdline as well as modprobe/blacklist.conf noveau and nvidiafb in several areas and the driver is still both of those kernel drivers. Nvidia drivers in the VM are not detecting the GPU and will not allow me to install the drivers(tried several diff versions old and new that supports my gpu). DXdiag and device manager are not detecting the GPU either.
I will post the config of every file I modified to try and get this to work.


Laptop Specs - running Proxmox v8.0.3
Manufacturer: ASUSTeK
Processor: Intel i7 7700HQ
GPU: Nvidia GTX 1080 (Max Q)
RAM: 24 GB


=VM Config=
agent: 1,fstrim_cloned_disks=1
balloon: 0
bios: ovmf
boot: order=ide0;ide2;net0
cores: 4
cpu: host,flags=+pcid;+spec-ctrl;+ssbd;+hv-tlbflush;+hv-evmcs;+aes
efidisk0: local-zfs:vm-300-disk-0,efitype=4m,pre-enrolled-keys=1,size=1M
hostpci0: 0000:01:00,device-id=0x1be0,pcie=1,vendor-id=0x10de,x-vga=1
ide0: local-zfs:vm-300-disk-1,size=200G
ide2: local:iso/virtio-win-0.1.229_2_.iso,media=cdrom,size=522284K
machine: pc-q35-8.0
memory: 16000
meta: creation-qemu=8.0.2,ctime=1687744983
name: Genesis
net0: virtio=0E:46:FC:AB:CE:42,bridge=vmbr0,firewall=1
numa: 1
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=72f3c61a-1179-4300-bc9f-3bea5b8c58bd
sockets: 1
vcpus: 4
vga: virtio
vmgenid: ab4d31a3-10fb-47ab-afaa-f2c8d6ad6a7c


== /etc/modprobe.d/blacklist.conf ==
GNU nano 7.2 /etc/modprobe.d/blacklist.conf
blacklist nouveau
blacklist nvidia*
blacklist nouveau
blacklist nvidiafb

== modprobe.d/vfio.conf ==
-bash: modprobe.d/vfio.conf: No such file or directory

== cat /etc/kernel/cmdline ==
root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet intel_iommu=on modprobe.blacklist=nouveau modprobe.blacklist=nvidiafb pcie_acs_override=downstream i8042.nokbd consoleblank=60 mitigations=off

== cat /etc/default/grub ==
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="quiet modprobe.blacklist=nouveau modprobe.blacklist=nvidiafb intel_iommu=on i8042.nokbd pcie_acs_override=downstream consoleblank=60 mitigations=off"
GRUB_CMDLINE_LINUX=""

# If your computer has multiple operating systems installed, then you
# probably want to run os-prober. However, if your computer is a host
# for guest OSes installed via LVM or raw disk devices, running
# os-prober can cause damage to those guest OSes as it mounts
# filesystems to look for things.
#GRUB_DISABLE_OS_PROBER=false

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

== dmesg | grep -e DMAR -e IOMMU ==
[ 0.000000] Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA
[ 0.017771] ACPI: DMAR 0x000000007F52CAF8 0000B8 (v01 INTEL KBL 00000001 INTL 00000001)
[ 0.017808] ACPI: Reserving DMAR table memory at [mem 0x7f52caf8-0x7f52cbaf]
[ 0.051926] DMAR: IOMMU enabled
[ 0.124508] DMAR: Host address width 39
[ 0.124509] DMAR: DRHD base: 0x000000fed90000 flags: 0x1
[ 0.124515] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap d2008c40660462 ecap f050da
[ 0.124517] DMAR: RMRR base: 0x0000007ec37000 end: 0x0000007ec56fff
[ 0.124519] DMAR: ANDD device: 1 name: \_SB.PCI0.I2C0
[ 0.124521] DMAR: ANDD device: 2 name: \_SB.PCI0.I2C1
[ 0.124522] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed90000 IOMMU 0
[ 0.124524] DMAR-IR: HPET id 0 under DRHD base 0xfed90000
[ 0.124525] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[ 0.125930] DMAR-IR: Enabled IRQ remapping in x2apic mode
[ 0.338149] DMAR: ACPI device "device:7f" under DMAR at fed90000 as 00:15.0
[ 0.338153] DMAR: ACPI device "device:80" under DMAR at fed90000 as 00:15.1
[ 0.338160] DMAR: No ATSR found
[ 0.338161] DMAR: No SATC found
[ 0.338162] DMAR: dmar0: Using Queued invalidation
[ 0.339216] DMAR: Intel(R) Virtualization Technology for Directed I/O

== lspci -k ==
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
Kernel driver in use: skl_uncore
00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 05)
Subsystem: ASUSTeK Computer Inc. 6th-10th Gen Core Processor PCIe Controller (x16)
Kernel driver in use: pcieport
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 05)
Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
Kernel driver in use: proc_thermal
Kernel modules: processor_thermal_device_pci_legacy
00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:14.2 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem (rev 31)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family Thermal Subsystem
Kernel driver in use: intel_pch_thermal
Kernel modules: intel_pch_thermal
00:15.0 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #0 (rev 31)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family Serial IO I2C Controller
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:15.1 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #1 (rev 31)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family Serial IO I2C Controller
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:16.0 Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 (rev 31)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family MEI Controller
Kernel driver in use: mei_me
Kernel modules: mei_me
00:1c.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #1 (rev f1)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family PCI Express Root Port
Kernel driver in use: pcieport
00:1c.2 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #3 (rev f1)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family PCI Express Root Port
Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #5 (rev f1)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family PCI Express Root Port
Kernel driver in use: pcieport
00:1d.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #9 (rev f1)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family PCI Express Root Port
Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation HM175 Chipset LPC/eSPI Controller (rev 31)
Subsystem: ASUSTeK Computer Inc. HM175 Chipset LPC/eSPI Controller
00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family Power Management Controller
00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31)
Subsystem: ASUSTeK Computer Inc. CM238 HD Audio Controller
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel, snd_soc_avs
00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31)
Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family SMBus
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
01:00.0 VGA compatible controller: NVIDIA Corporation GP104BM [GeForce GTX 1080 Mobile] (rev a1)
Subsystem: ASUSTeK Computer Inc. GP104BM [GeForce GTX 1080 Mobile]
Kernel driver in use: vfio-pci
Kernel modules: nvidiafb, nouveau
01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
Subsystem: ASUSTeK Computer Inc. GP104 High Definition Audio Controller
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel
03:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
Subsystem: Intel Corporation Dual Band Wireless-AC 8265 [Windstorm Peak]
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
3d:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961/SM963
Subsystem: Samsung Electronics Co Ltd SM963 2.5" NVMe PCIe SSD
Kernel driver in use: nvme
Kernel modules: nvme


== cat /etc/modprobe.d/vfio.conf ==
cat: /etc/modprobe.d/vfio.conf: No such file or directory


== lspci -nnk | grep -i nvidia ==
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104BM [GeForce GTX 1080 Mobile] [10de:1be0] (rev a1)
Kernel modules: nvidiafb, nouveau
01:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1)

== cat /proc/cmdline ==
initrd=\EFI\proxmox\6.2.16-3-pve\initrd.img-6.2.16-3-pve root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet intel_iommu=on modprobe.blacklist=nouveau modprobe.blacklist=nvidiafb pcie_acs_override=downstream i8042.nokbd consoleblank=60 mitigations=off

== cat /etc/modules ==
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
root@Andromeda:~#

== find /sys/kernel/iommu_groups/ -type 1 ==
/sys/kernel/iommu_groups/17/devices/i2c_designware.1
/sys/kernel/iommu_groups/7/devices/0000:00:1c.2
/sys/kernel/iommu_groups/15/devices/i2c_designware.0
/sys/kernel/iommu_groups/5/devices/0000:00:16.0
/sys/kernel/iommu_groups/13/devices/0000:3d:00.0
/sys/kernel/iommu_groups/3/devices/0000:00:14.2
/sys/kernel/iommu_groups/3/devices/0000:00:14.0
/sys/kernel/iommu_groups/11/devices/0000:01:00.0
/sys/kernel/iommu_groups/11/devices/0000:01:00.1
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/8/devices/0000:00:1c.4
/sys/kernel/iommu_groups/16/devices/idma64.1
/sys/kernel/iommu_groups/6/devices/0000:00:1c.0
/sys/kernel/iommu_groups/14/devices/idma64.0
/sys/kernel/iommu_groups/4/devices/0000:00:15.1
/sys/kernel/iommu_groups/4/devices/0000:00:15.0
/sys/kernel/iommu_groups/12/devices/0000:03:00.0
/sys/kernel/iommu_groups/2/devices/0000:00:04.0
/sys/kernel/iommu_groups/10/devices/0000:00:1f.2
/sys/kernel/iommu_groups/10/devices/0000:00:1f.0
/sys/kernel/iommu_groups/10/devices/0000:00:1f.3
/sys/kernel/iommu_groups/10/devices/0000:00:1f.4
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/9/devices/0000:00:1d.0
 
In short: I have blacklisted in grub & cmdline as well as modprobe/blacklist.conf noveau and nvidiafb in several areas and the driver is still both of those kernel drivers. Nvidia drivers in the VM are not detecting the GPU and will not allow me to install the drivers(tried several diff versions old and new that supports my gpu). DXdiag and device manager are not detecting the GPU either.
what exactly do you mean with this? does a device exist in the device manager or isn't the device there at all?

can you post the journal from boot until after you started the vm?
 
  • Like
Reactions: AusKee
I never see any guide with stuff like : cmdline and consoleblank, mitigation, nokbd. Follow multiple tutorial on reddit and also, they used 7.3 or so, not v8. Then try pass and enable a linux system. Starting with win10 mean problem, as win10 alone got lot of issues to make it pass. Lot of reading to do, but then with your proper system setup, you will know what each part do and not cause issues after in your vm because of wrong setting. Also, installing with your modem disconnect, set the direct prox iso, the usual 8-9 setting and boot a linux vm. all work.
 
what exactly do you mean with this? does a device exist in the device manager or isn't the device there at all?

can you post the journal from boot until after you started the vm?

Good Afternoon dcsapak,

Sorry, it is only showing the following display driver within Device Manager. (Red Hat VirtIO GPU DOD Controller)

I have attached my entire journalctl log since the last full reboot (including the VMID 300 Windows 10 machine bootup)

Thank you!
 

Attachments

  • devicemanager_300.png
    devicemanager_300.png
    13.1 KB · Views: 7
  • journalctl.log
    journalctl.log
    154.9 KB · Views: 8
I never see any guide with stuff like : cmdline and consoleblank, mitigation, nokbd. Follow multiple tutorial on reddit and also, they used 7.3 or so, not v8. Then try pass and enable a linux system. Starting with win10 mean problem, as win10 alone got lot of issues to make it pass. Lot of reading to do, but then with your proper system setup, you will know what each part do and not cause issues after in your vm because of wrong setting. Also, installing with your modem disconnect, set the direct prox iso, the usual 8-9 setting and boot a linux vm. all work.

Console blank, nokbd and mitgration are from other tutorials on other issues not related to the passthrough one.

Console Blank - Turns laptop screen off after 60 seconds of no keypresses.
nokbd - disables laptops built in keyboard
mitigation - disables the warning popup about intel's bug allowing VM's to see promox info.

I have attached journalctl of full bootup process of both the win10 vm and reboot of main proxmox node.
 
thanks for the journal. the log so far look ok (you have some messages from ceph that might warrant investigation, but has not directly to do with the problem AFAICS).
could you maybe try with a linux live cd and see if the gpu appears there (e.g. with an lspci call)

if it does, the problem is somewhere in windows/the drivers...
 
  • Like
Reactions: AusKee
thanks for the journal. the log so far look ok (you have some messages from ceph that might warrant investigation, but has not directly to do with the problem AFAICS).
could you maybe try with a linux live cd and see if the gpu appears there (e.g. with an lspci call)

if it does, the problem is somewhere in windows/the drivers...

Good Evening dcsapak,

This is what it's showing me after running lspci from an ubuntu live cd on the same VM. I see the Audio device for the GPU but I don't see the GPU :(

ubuntu@ubuntu:~$ lspci
00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller
00:01.0 VGA compatible controller: Red Hat, Inc. Virtio GPU (rev 01)
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:1c.1 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:1c.2 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:1c.3 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (rev 02)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
01:00.0 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
05:01.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
05:02.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
05:03.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
05:04.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
06:08.0 Communication controller: Red Hat, Inc. Virtio console
06:09.0 Communication controller: Red Hat, Inc. Virtio console
06:12.0 Ethernet controller: Red Hat, Inc. Virtio network devic
 
that's weird, can you post the output of the following commands (replace ID with the vmid please)

Code:
cat /etc/pve/qemu-server/ID.conf
qm showcmd ID --pretty
 
  • Like
Reactions: AusKee
that's weird, can you post the output of the following commands (replace ID with the vmid please)

Code:
cat /etc/pve/qemu-server/ID.conf
qm showcmd ID --pretty


Sorry dcsapak for the late reply. been sick the last 2 days. Here is the output of both commands

Linux Andromeda 6.2.16-3-pve #1 SMP PREEMPT_DYNAMIC PVE 6.2.16-3 (2023-06-17T05:58Z) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Jul 2 14:23:11 CDT 2023 on pts/0
root@Andromeda:~# cat /etc/pve/qemu-server/300.conf
agent: 1,fstrim_cloned_disks=1
balloon: 0
bios: ovmf
boot: order=ide0;ide2;net0
cores: 4
cpu: host,flags=+pcid;+spec-ctrl;+ssbd;+hv-tlbflush;+hv-evmcs;+aes
efidisk0: local-zfs:vm-300-disk-0,efitype=4m,pre-enrolled-keys=1,size=1M
hostpci0: 01:00.1,pcie=on,x-vga=on
ide0: local-zfs:vm-300-disk-1,size=200G
ide2: none,media=cdrom
machine: pc-q35-8.0
memory: 16000
meta: creation-qemu=8.0.2,ctime=1687744983
name: Genesis
net0: virtio=0E:46:FC:AB:CE:42,bridge=vmbr0,firewall=1
numa: 1
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=72f3c61a-1179-4300-bc9f-3bea5b8c58bd
sockets: 1
vcpus: 4
vga: virtio
vmgenid: ab4d31a3-10fb-47ab-afaa-f2c8d6ad6a7c
root@Andromeda:~# qm showcmd 300 --pretty
/usr/bin/kvm \
-id 300 \
-name 'Genesis,debug-threads=on' \
-no-shutdown \
-chardev 'socket,id=qmp,path=/var/run/qemu-server/300.qmp,server=on,wait=off' \
-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/300.pid \
-daemonize \
-smbios 'type=1,uuid=72f3c61a-1179-4300-bc9f-3bea5b8c58bd' \
-drive 'if=pflash,unit=0,format=raw,readonly=on,file=/usr/share/pve-edk2-firmware//OVMF_CODE_4M.secboot.fd' \
-drive 'if=pflash,unit=1,id=drive-efidisk0,format=raw,file=/dev/zvol/rpool/data/vm-300-disk-0,size=540672' \
-smp '4,sockets=1,cores=4,maxcpus=4' \
-nodefaults \
-boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' \
-vnc 'unix:/var/run/qemu-server/300.vnc,password=on' \
-cpu 'host,+aes,+hv-evmcs,+hv-tlbflush,hv_ipi,hv_relaxed,hv_reset,hv_runtime,hv_spinlocks=0x1fff,hv_stimer,hv_synic,hv_time,hv_vapic,hv_vendor_id=proxmox,hv_vpindex,kvm=off,+kvm_pv_eoi,+kvm_pv_unhalt,+pcid,+spec-ctrl,+ssbd' \
-m 16000 \
-object 'memory-backend-ram,id=ram-node0,size=16000M' \
-numa 'node,nodeid=0,cpus=0-3,memdev=ram-node0' \
-readconfig /usr/share/qemu-server/pve-q35-4.0.cfg \
-device 'vmgenid,guid=ab4d31a3-10fb-47ab-afaa-f2c8d6ad6a7c' \
-device 'usb-tablet,id=tablet,bus=ehci.0,port=1' \
-device 'vfio-pci,host=0000:01:00.1,id=hostpci0,bus=ich9-pcie-port-1,addr=0x0' \
-device 'virtio-vga,id=vga,bus=pcie.0,addr=0x1' \
-chardev 'socket,path=/var/run/qemu-server/300.qga,server=on,wait=off,id=qga0' \
-device 'virtio-serial,id=qga0,bus=pci.0,addr=0x8' \
-device 'virtserialport,chardev=qga0,name=org.qemu.guest_agent.0' \
-device 'virtio-serial,id=spice,bus=pci.0,addr=0x9' \
-chardev 'spicevmc,id=vdagent,name=vdagent' \
-device 'virtserialport,chardev=vdagent,name=com.redhat.spice.0' \
-spice 'tls-port=61001,addr=127.0.0.1,tls-ciphers=HIGH,seamless-migration=on' \
-iscsi 'initiator-name=iqn.1993-08.org.debian:01:244fda9429a' \
-drive 'file=/dev/zvol/rpool/data/vm-300-disk-1,if=none,id=drive-ide0,format=raw,cache=none,aio=io_uring,detect-zeroes=on' \
-device 'ide-hd,bus=ide.0,unit=0,drive=drive-ide0,id=ide0,bootindex=100' \
-drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \
-device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=101' \
-netdev 'type=tap,id=net0,ifname=tap300i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' \
-device 'virtio-net-pci,mac=0E:46:FC:AB:CE:42,netdev=net0,bus=pci.0,addr=0x12,id=net0,rx_queue_size=1024,tx_queue_size=1024,bootindex=102' \
-rtc 'driftfix=slew,base=localtime' \
-machine 'hpet=off,type=pc-q35-8.0+pve0' \
-global 'kvm-pit.lost_tick_policy=discard'
root@Andromeda:~#
 
Code:
hostpci0: 01:00.1,pcie=on,x-vga=on

this is wrong, since it only passes through only the '.1' function which is this device

Code:
01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
Subsystem: ASUSTeK Computer Inc. GP104 High Definition Audio Controller

if you want passthrough both functions it must be

Code:
hostpci0: 01:00,pcie=on,x-vga=on
note the lack of any function ('.1' or '.0') on the id
 
  • Like
Reactions: AusKee
Code:
hostpci0: 01:00.1,pcie=on,x-vga=on

this is wrong, since it only passes through only the '.1' function which is this device

Code:
01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
Subsystem: ASUSTeK Computer Inc. GP104 High Definition Audio Controller

if you want passthrough both functions it must be

Code:
hostpci0: 01:00,pcie=on,x-vga=on
note the lack of any function ('.1' or '.0') on the id


Okay, I changed it. However, it shows a secondary "Microsoft Display adapter" now under graphics/displays. But, the nvidia installer is saying it cannot find the GPU. GPU-Z appears to be detecting "Microsoft Display adapter" as the nvidia card.

I tried 4 diff versions of the nvidia installer with the same results

1688425139472.png
 
does it work with a linux in this configuration? if yes, it seems to be a nvidia driver/windows issue and not really a passthrough one. most gpus in gaming laptops need special drivers from the laptop vendor and are sometimes connected specially...
 

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!