GPU Passthrough - Windows 11 - Blinking Cursor

matrix303

Member
Mar 20, 2022
12
0
6
25
Unfortunately, this is yet another gpu passthrough post but i have tried to do my due diligence and go through multiple tutorials but every time i setup a GPU passthrough windows VM, the monitor is just a black screen with a blinking cursor. If i type i can log in onto root and use as proxmox. Based on that i assume that proxmox still is using the gpu and isnt properly being passed through to the windows VM.

Similar thing happens on a Ubuntu desktop gpu passthrough as well. I have been working on this for a month and half now and I have reinstalled proxmox and started fresh but still ran into the same issue.

My system is: AMD Ryzen 5950x, x570 asus gaming wifi ii, asus rtx 3080, 64gb ram

Please help me figure this out. If you need more information, let me know and i am more than happy to provide!

/etc/default/grub

  • note i have tried: GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt" and "GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"
  • note i have done update-grub
Code:
# 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 amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction video=efifb:eek:ff"

GRUB_CMDLINE_LINUX=""



# 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-pc only)

#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"

/etc/modprobe.d/vfio.conf

Code:
root@pve:~# lspci | grep NVIDIA
0b:00.0 VGA compatible controller: NVIDIA Corporation Device 2216 (rev a1)
0b:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)

$ lspci -n -s 0b:00
0b:00.0 0300: 10de:2216 (rev a1)
0b:00.1 0403: 10de:1aef (rev a1)

options vfio-pci ids=10de:2216,10de:1aef disable_vga=1

  • QUESTION: do i need to do anything to apply this step? or just save it in the file?
/etc/modules
Code:
overlay
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

/etc/modprobe.d/blacklist.conf
Code:
blacklist radeon
blacklist nouveau
blacklist nvidia

/etc/modprobe.d/kvm.conf
Code:
options kvm ignore_msrs=1

/etc/modprobe.d/iommu_unsafe_interrupts.conf
Code:
options vfio_iommu_type1 allow_unsafe_interrupts=1

/etc/pve/qemu-server/id.conf
Code:
agent: 1
bios: ovmf
boot: order=virtio0;net0
cores: 8
cpu: host,hidden=1
efidisk0: local-lvm:vm-102-disk-1,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0b:00,pcie=1,x-vga=1
machine: pc-q35-6.1
memory: 8192
meta: creation-qemu=6.1.0,ctime=1647697133
name: win11
net0: virtio=22:FF:D0:2F:AB:C4,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: win11
scsihw: virtio-scsi-pci
smbios1: uuid=045fd188-4bcb-4ed0-b6dc-01ea11301ada
sockets: 1
startup: order=0
tpmstate0: local-lvm:vm-102-disk-2,size=4M,version=v2.0
virtio0: local-lvm:vm-102-disk-0,size=200G
vmgenid: a34e223f-d85f-439d-89e2-482e05f2c92f
 
You definitely don't need amd_iommu=on, iommu=pt probably doesn't make a difference as it is not passthrough related. And with an X570 motherboard, I would be surprised if the IOMMU groups are too restrictive and you most likely don't need pcie_acs_override=downstream,multifunction.

The forum software here replaces :o with :eek: (:eek:) unfortunately, if you don't use the (inline) code formatting.
 
You definitely don't need amd_iommu=on, iommu=pt probably doesn't make a difference as it is not passthrough related. And with an X570 motherboard, I would be surprised if the IOMMU groups are too restrictive and you most likely don't need pcie_acs_override=downstream,multifunction.

The forum software here replaces :o with :eek: (:eek:) unfortunately, if you don't use the (inline) code formatting.
Thanks for the reply. Interesting, i added the amd_iommu based on the proxmox pci passthrough guide and iommu=pt based on other guides i had seen.

Is there any harm in having these codes, dont know how they work tbh
 
amd_iommu=on is not even valid according to the kernel documentation because it is on by defaul. But it has no effect (because it is not valid) and people just keep copying it without harm.
iommu=pt on AMD can have a (positive?) performance impact on devices that are not passed through to VMs, but I have never heard of anyone noticing a difference.
pcie_acs_override is a security risk because it breaks proper isolation between host and VMs.
 
Ah, yep guilty of the mindless copying.

Ok, i will try to update the host accordingly and report back if i have any issues. thank you
 

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!