/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction video=efifb:off video=vesafb:off"

/etc/pve/qemu-sever/101.conf

args: -no-hpet -rtc driftfix=slew -global kvm-pit.lost_tick_policy=discard -cpu host,hv_time,kvm=off,+kvm_pv_unhalt,+kvm_pv_eoi,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relax$
balloon: 0
bios: ovmf
bootdisk: scsi0
cores: 4
cpu: host,hidden=1,flags=+pcid
efidisk0: local-lvm:vm-101-disk-1,size=128K
hostpci0: 01:00,pcie=1,x-vga=on,romfile=217216-v2.bin
ide2: local:iso/virtio-win-0.1.171.iso,media=cdrom,size=363020K
machine: q35
memory: 6144
name: win10bine
net0: virtio=B6:EE:C8:20:E5:26,bridge=vmbr0
numa: 1
ostype: win10
scsi0: local-lvm:vm-101-disk-0,cache=writeback,iothread=1,replicate=0,size=80G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=b35dcaef-bd73-4757-9f37-56ff549bd8e3
snaptime: 1584652268
sockets: 1
vga: none
vmgenid: c463a8b6-35ba-43eb-be11-027d42ce7119

ln -s /etc/modules-load.d/modules.conf /etc/modules

/etc/modules

dummy
vfio 
vfio_iommu_type1 
vfio_pci

/etc/initramfs-tools/modules

vfio
vfio_iommu_type1
vfio_virqfd
vfio_pci

/etc/lvm/lvm.conf

turned of the error messaging /dev/sdc that will nerf during update-grub process

global_filter = [ "r|/dev/sdc|", .....

/etc/modprobe.d/ ├── blacklist.conf ├── dummy.conf ├── iommu.conf ├── kvm.conf ├── pve-blacklist.conf └── vfio.conf

cat blacklist.conf

blacklist radeon
blacklist nouveau
blacklist nvidia
# just for me
blacklist tpm_crb

cat dummy.conf

options dummy numdummies=1

cat iommu.conf

options vfio_iommu_type1 allow_unsafe_interrupts=1

cat kvm.conf

options kvm ignore_msrs=1

cat vfio.conf

options vfio-pci ids=10de:1c81,10de:0fb9 
options vfio-pci disable_vga=1

Gather all needed informations

chmod +x pci.sh

#!/bin/bash
shopt -s nullglob
for d in /sys/kernel/iommu_groups/*/devices/*; do
    n=${d#*/iommu_groups/*}; n=${n%%/*}
    printf 'IOMMU Group %s ' "$n"
    lspci -nns "${d##*/}"
done;

Kernel Args

cat /proc/cmdline

BOOT_IMAGE=/boot/vmlinuz-5.3.10-1-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction video=efifb:off video=vesafb:off

vim /etc/default/grub

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction video=efifb:off video=vesafb:off"
GRUB_CMDLINE_LINUX=""

Build and reboot

update-initramfs -u -k all
update-grub
reboot

ROM

/usr/share/kvm

I used the ROM from here: https://www.techpowerup.com/vgabios/217216/217216

Specs

Medion GTX 1050 2048 MB BIOS

  • I modified the rom using a Hex Editor to get rid of the Nvidia Header, that prevents the rom from working in kvm. Therefor I downloaded the rom from the link above, to the desktop of my windows 10 guest. Then I started the Hex Editor and deleted the unneeded lines. Saved the file as 217216-v2.bin and transfered it back to my proxmox (pve) host. (/usr/share/kvm)

  • I downloaded one of the oldest GX 1050 for Windows 10 drivers I could find from 3dguru and extracted them using 7zip.

  • https://support.microsoft.com/en-us/help/3073930/how-to-temporarily-prevent-a-driver-update-from-reinstalling-in-window

  • I've done that all with Standard VGA enabled in the Proxmox Hardware for this VM and within a RDP Session

  • VirtIO Drivers get them and install them

what fails, worked, helped

  • https://github.com/sk1080/nvidia-kvm-patcher/blob/master/README.md not working this windows powershell stuff
  • https://heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/ good article but this also didn't work
  • https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough/ source of trust, but also didn't work, but in the End, this has been the best source.
  • This is the ROM wonder video! https://www.youtube.com/watch?v=1IP-h9IKof0

Hint :-)

never try to start to vm's with pci-passthrough on the one and only gtx1050.

Previous Post