I've been trying for weeks to get GPU passthrough to work in a Windows 10 guest vm in Proxmox. I'm having trouble troubleshooting, or even understanding what I'm doing, since I feel like I've been following multiple guides at once and implementing any/all advice I find on forums.
A few weeks ago, things had worked for a couple days, but when the VM would restart the GPU wouldn't work. I would have to restart the entire Proxmox instance, which was less than ideal. Since that time I've followed more guides and ultimately broke things again.
I'm now at a state where I can access the VM using the Proxmox console (which is strange according to guides). RDP crashes when I don't have the dummy HDMI plugged in, yet when the dummy HDMI isn't plugged in, Device Manager showed my GPU name. With the dummy thing plugged in, Device Manager just shows Microsoft Basic/Remote Display Adapters.
My current hardware:
Unfortunately I don't know what to specifically provide, so here's a bunch of things I've seen other posts provide. Please help, I know this can work but I'm stuck
root@pve:~# qm config 103
## root@pve:~# cat /proc/cmdline
## root@pve:~# lspci
root@pve:~# cat /etc/default/grub
root@pve:~# cat /etc/modprobe.d/vfio.conf
root@pve:/etc/modprobe.d# cat /etc/modprobe.d/blacklist.conf
root@pve:~# dmesg | grep -e IOMMU -e iommu -e vfio -e Intel -e bug -e Bug -e BAR
root@pve:~# find /sys/kernel/iommu_groups/ -type l | grep 2b
A few weeks ago, things had worked for a couple days, but when the VM would restart the GPU wouldn't work. I would have to restart the entire Proxmox instance, which was less than ideal. Since that time I've followed more guides and ultimately broke things again.
I'm now at a state where I can access the VM using the Proxmox console (which is strange according to guides). RDP crashes when I don't have the dummy HDMI plugged in, yet when the dummy HDMI isn't plugged in, Device Manager showed my GPU name. With the dummy thing plugged in, Device Manager just shows Microsoft Basic/Remote Display Adapters.
My current hardware:
- ASRock Rack X470D4U
- AMD Ryzen 7 5800X w/ 64GB RAM
- Gigabyte NVIDIA RTX 3060 12G
Unfortunately I don't know what to specifically provide, so here's a bunch of things I've seen other posts provide. Please help, I know this can work but I'm stuck
root@pve:~# qm config 103
Code:
agent: 1
balloon: 0
bios: ovmf
boot: order=ide0;ide2;net0;ide1
cores: 4
cpu: host,hidden=1
efidisk0: local-lvm:vm-103-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:2b:00,pcie=1,x-vga=1
ide0: local-lvm:vm-103-disk-1,discard=on,size=80G,ssd=1
ide2: local:iso/virtio-win-0.1.229.iso,media=cdrom,size=522284K
machine: q35
memory: 16384
meta: creation-qemu=7.2.0,ctime=1682475863
name: windows
net0: e1000=22:3B:6C:EC:22:C2,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsihw: virtio-scsi-single
smbios1: uuid=6e9608ff-a67c-4632-bb36-b5ea72c4a88f
sockets: 1
tpmstate0: local-lvm:vm-103-disk-2,size=4M,version=v2.0
vga: virtio
vmgenid: b91c1297-7235-4218-bee4-9a24c8deb565
## root@pve:~# cat /proc/cmdline
Code:
BOOT_IMAGE=/boot/vmlinuz-5.15.107-2-pve root=/dev/mapper/pve-root ro quiet amd_iommu=on iommu=pt nomodeset textonly pci=realloc video=efifb:off video=simplefb:off
## root@pve:~# lspci
Code:
[..]
2b:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] (rev ff)
2b:00.1 Audio device: NVIDIA Corporation GA106 High Definition Audio Controller (rev ff)
[..]
root@pve:~# cat /etc/default/grub
Code:
[..]
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt nomodeset textonly pci=realloc video=efifb:off video=simplefb:off"
GRUB_CMDLINE_LINUX=""
[..]
root@pve:~# cat /etc/modprobe.d/vfio.conf
Code:
options vfio-pci ids=10de:2504,10de:228e disable_vga=1
root@pve:/etc/modprobe.d# cat /etc/modprobe.d/blacklist.conf
Code:
blacklist nvidiafb
blacklist nvidia
blacklist radeon
blacklist nouveau
root@pve:~# dmesg | grep -e IOMMU -e iommu -e vfio -e Intel -e bug -e Bug -e BAR
Code:
[ 1207.714164] vfio-pci 0000:2b:00.0: BAR 1: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
root@pve:~# find /sys/kernel/iommu_groups/ -type l | grep 2b
Code:
/sys/kernel/iommu_groups/14/devices/0000:2b:00.1
/sys/kernel/iommu_groups/14/devices/0000:2b:00.0