System spec:
Product: HP OMEN 15 Laptop
CPU: Intel Core i7 8750H
GPU: NVIDIA Geforce GTX 1060 6GB
Memory: Samsung 16GB*2 DDR4
Software:
Proxmox Vitrual Environment 8.2.2
VM100: Windows 11
Problem description:
I have successfully passedthrough my NVIDIA GPU and everything works fine the first time I boot the guest, (including the NVIDIA driver in Windows (VM100), the sound card and wifi module AX200 I passedthrough) and But once I shutdown the guest (using the shutdown button in the guest's windows start menu), I couldn't start this guest again. The PVE webui returned these text after a relatively long wait after I click the start button on webui.
The NVIDIA GPU in this laptop works in direct mode, that is, not a iGPU muxed one. So before the guest startup, the internal laptop display will show the PVE login screen. And once the guest starts up, it will display the screen from the guest. After I shutdown the guest, the internal display will turn itself off and won't display anything(also the screen backlit will be turned off). Then I was not able to start the guest again.
After blacklisting `blacklist snd_hda_intel` in /etc/modprobe.d/blacklist.conf , I couldn't even passthrough the NVIDIA GPU with `All Function` ticked (That means I could only use this GPU by passing through GPU(0000:01:00.0) without its audio controller(0000:01:00.1).)
The configs I changed to get the GPU passedthrough are as follows:
Product: HP OMEN 15 Laptop
CPU: Intel Core i7 8750H
GPU: NVIDIA Geforce GTX 1060 6GB
Memory: Samsung 16GB*2 DDR4
Software:
Proxmox Vitrual Environment 8.2.2
VM100: Windows 11
Problem description:
I have successfully passedthrough my NVIDIA GPU and everything works fine the first time I boot the guest, (including the NVIDIA driver in Windows (VM100), the sound card and wifi module AX200 I passedthrough) and But once I shutdown the guest (using the shutdown button in the guest's windows start menu), I couldn't start this guest again. The PVE webui returned these text after a relatively long wait after I click the start button on webui.
Code:
VM 100 Start Failed, QEMU exited with code 1.
swtpm_setup: Not overwriting existing state file.
kvm: -device vfio-pci,host=0000:01:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,multifunction=on,romfile=/usr/share/kvm/GP106.rom,x-pci-vendor-id=0x10DE,x-pci-device-id=0x1C60,x-pci-sub-vendor-id=0x103C,x-pci-sub-device-id=0x84DB: vfio 0000:01:00.0: error getting device from group 1: No such device
Verify all devices in group 1 are bound to vfio-<bus> or pci-stub and not already in use
stopping swtpm instance (pid 7642) due to QEMU startup error
TASK ERROR: start failed: QEMU exited with code 1
The NVIDIA GPU in this laptop works in direct mode, that is, not a iGPU muxed one. So before the guest startup, the internal laptop display will show the PVE login screen. And once the guest starts up, it will display the screen from the guest. After I shutdown the guest, the internal display will turn itself off and won't display anything(also the screen backlit will be turned off). Then I was not able to start the guest again.
After blacklisting `blacklist snd_hda_intel` in /etc/modprobe.d/blacklist.conf , I couldn't even passthrough the NVIDIA GPU with `All Function` ticked (That means I could only use this GPU by passing through GPU(0000:01:00.0) without its audio controller(0000:01:00.1).)
The configs I changed to get the GPU passedthrough are as follows:
Code:
# /etc/modprobe.d/kvm.conf
options kvm ignore_msrs=1 report_ignored_msrs=0
Code:
# /etc/modprobe.d/pve-blacklist.conf
# This file contains a list of modules which are not supported by Proxmox VE
# nvidiafb see bugreport https://bugzilla.proxmox.com/show_bug.cgi?id=701
blacklist nvidiafb
blacklist nouveau
blacklist nvidia
blacklist snd_hda_intel
Code:
# /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
Code:
# /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
...
Code:
# /etc/pve/qemu-server/100.conf
# hostpci0: GTX 1060
# hostpci1: USB3.1 Controller
# hostpci2: SDCard Reader
# hostpci3: SoundCard
# hostpci4: Intel AX 200
# The file `ssdt1.dat` in args is an acpitable that fakes a battery in guest, so the Laptop NVIDIA GPU would work without code 43.
agent: 1
args: -cpu 'host,kvm=off,-hypervisor' -acpitable 'file=/ssdt1.dat' -object input-linux,id=mouse1,evdev=/dev/input/by-path/platform-i8042-serio-1-event-mouse -object input-linux,id=kbd1,evd>
bios: ovmf
boot: order=ide1
cores: 12
cpu: host,hidden=1,flags=+pcid
efidisk0: local-lvm:vm-100-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:01:00.0,device-id=0x1C60,pcie=1,romfile=GP106.rom,sub-device-id=0x84DB,sub-vendor-id=0x103C,vendor-id=0x10DE,x-vga=1
hostpci1: 0000:00:14
hostpci2: 0000:3e:00
hostpci3: 0000:00:1f.3
hostpci4: 0000:3d:00,pcie=1
ide0: local:iso/virtio-win-0.1.248.iso,media=cdrom,size=715188K
ide1: local-lvm:vm-100-disk-1,size=360G
machine: pc-q35-8.1,viommu=intel
memory: 16384
meta: creation-qemu=8.1.5,ctime=1719933583
name: Windose
net0: virtio=BC:24:11:0C:88:5E,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsihw: virtio-scsi-single
smbios1: uuid=995ff25c-f965-4f56-9016-4945e6cad030
sockets: 1
tpmstate0: local-lvm:vm-100-disk-2,size=4M,version=v2.0
vga: none
vmgenid: c9068126-8652-47be-bd29-4e1845755d8e