I've followed the tutorial on the wiki and I'm still having nothing but Code 43.
I've tried OVMF BIOS with PCI passthrough, as well as with PCIe passthrough, neither worked.
I've also tried SeaBIOS with PCI passthrough, as well as with PCIe passthrough, neither worked.
For each of the above, I've reinstalled the OS each time, so there's no residual from the previous attempt. Based on what I've read, my card is not UEFI (OVMF) compatible, so I'm currently on SeaBIOS setup. Here are my relevant configs, can someone please help me look over to see if I'm missing anything obvious?
Very big list, I've omitted all of it except for the P2000.
On Windows side, it is running Windows Server 2016 Data Centre (MSDNAA license), fully activated, fresh install. Attempted to use the most recent driver `R430 U4 (431.02)` as well as the older `R390 U10 (392.53)` driver. Neither seems to make a difference; it comes up as "Windows has stopped this device because it has reported problems (code 43)".
Phew... that was long. Any help would be greatly appreciated!
I've tried OVMF BIOS with PCI passthrough, as well as with PCIe passthrough, neither worked.
I've also tried SeaBIOS with PCI passthrough, as well as with PCIe passthrough, neither worked.
For each of the above, I've reinstalled the OS each time, so there's no residual from the previous attempt. Based on what I've read, my card is not UEFI (OVMF) compatible, so I'm currently on SeaBIOS setup. Here are my relevant configs, can someone please help me look over to see if I'm missing anything obvious?
Server: ASUS RS926-E7/RS8
CPU: E5-4640
GPU: nVidia Quadro P2000
CPU: E5-4640
GPU: nVidia Quadro P2000
Code:
# grep GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off"
Code:
# 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.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
# Generated by sensors-detect on Thu Jul 4 07:18:59 2019
# Chip drivers
coretemp
nct6775
Code:
# dmesg | grep ecap
[ 0.000000] DMAR: dmar0: reg_base_addr fbffe000 ver 1:0 cap d2078c106f0462 ecap f020fa
[ 0.000000] DMAR: dmar1: reg_base_addr e7ffe000 ver 1:0 cap d2078c106f0462 ecap f020fa
[ 0.000000] DMAR: dmar2: reg_base_addr bbffe000 ver 1:0 cap d2078c106f0462 ecap f020fa
[ 0.000000] DMAR: dmar3: reg_base_addr 8fffc000 ver 1:0 cap d2078c106f0462 ecap f020fa
[ 137.354879] vfio_ecap_init: 0000:43:00.0 hiding ecap 0x19@0x900
[ 8935.406342] vfio_ecap_init: 0000:43:00.0 hiding ecap 0x19@0x900
[26434.034348] vfio_ecap_init: 0000:43:00.0 hiding ecap 0x19@0x900
[27325.951843] vfio_ecap_init: 0000:43:00.0 hiding ecap 0x19@0x900
[27622.911072] vfio_ecap_init: 0000:43:00.0 hiding ecap 0x19@0x900
[28105.791191] vfio_ecap_init: 0000:43:00.0 hiding ecap 0x19@0x900
[31274.528335] vfio_ecap_init: 0000:43:00.0 hiding ecap 0x19@0x900
[32803.835145] vfio_ecap_init: 0000:43:00.0 hiding ecap 0x19@0x900
Code:
# find /sys/kernel/iommu_groups/ -type l
...
/sys/kernel/iommu_groups/41/devices/0000:43:00.0
/sys/kernel/iommu_groups/41/devices/0000:43:00.1
...
Code:
# lspci | grep NVIDIA
43:00.0 VGA compatible controller: NVIDIA Corporation GP106GL (rev a1)
43:00.1 Audio device: NVIDIA Corporation Device 10f1 (rev a1)
# lspci -n -s 43:00
43:00.0 0300: 10de:1c30 (rev a1)
43:00.1 0403: 10de:10f1 (rev a1)
Code:
# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:1c30,10de:10f1
Code:
# cat /etc/modprobe.d/blacklist.conf
blacklist radeon
blacklist nouveau
blacklist nvidia
Code:
# cat /etc/pve/qemu-server/102.conf
bios: seabios
balloon: 0
bootdisk: virtio0
cores: 8
cpu: host,hidden=1
hostpci0: 43:00,x-vga=on,pcie=on,rombar=on,romfile=vbios-p2000.bin
ide0: local:iso/virtio-win-0.1.141.iso,media=cdrom,size=309208K
ide2: local:iso/en_windows_server_2016_updated_feb_2018_x64_dvd_11636692.iso,media=cdrom
machine: q35
memory: 32768
name: WindowsServer2016
net0: e1000=A2:9D:D8:16:B0:01,bridge=vmbr0
numa: 0
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=586a6412-f4e7-4e98-834d-7d6622fd5792
sockets: 4
startup: order=1
virtio0: local:102/vm-102-disk-1.qcow2,size=128G
Code:
# qm showcmd 102
/usr/bin/kvm -id 102 \
-name WindowsServer2016 -chardev 'socket,id=qmp,path=/var/run/qemu-server/102.qmp,server,nowait' \
-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/102.pid -daemonize \
-smbios 'type=1,uuid=586a6412-f4e7-4e98-834d-7d6622fd5792' \
-smp '32,sockets=4,cores=8,maxcpus=32' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' \
-vga none -nographic -no-hpet \
-cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=proxmox,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,hv_synic,hv_stimer,kvm=off' \
-m 32768 -readconfig /usr/share/qemu-server/pve-q35.cfg -device 'usb-tablet,id=tablet,bus=ehci.0,port=1' \
-device 'vfio-pci,host=43:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,x-vga=on,multifunction=on,romfile=/usr/share/kvm/vbios-p2000.bin' \
-device 'vfio-pci,host=43:00.1,id=hostpci0.1,bus=ich9-pcie-port-1,addr=0x0.1' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:e217b313912d' \
-drive 'file=/var/lib/vz/template/iso/virtio-win-0.1.141.iso,if=none,id=drive-ide0,media=cdrom,aio=threads' \
-device 'ide-cd,bus=ide.0,unit=0,drive=drive-ide0,id=ide0,bootindex=200' \
-drive 'file=/var/lib/vz/template/iso/en_windows_server_2016_updated_feb_2018_x64_dvd_11636692.iso,if=none,id=drive-ide2,media=cdrom,aio=threads' \
-device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=201' \
-drive 'file=/var/lib/vz/images/102/vm-102-disk-1.qcow2,if=none,id=drive-virtio0,format=qcow2,cache=none,aio=native,detect-zeroes=on' \
-device 'virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,bootindex=100' \
-netdev 'type=tap,id=net0,ifname=tap102i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown' \
-device 'e1000,mac=A2:9D:D8:16:B0:01,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' \
-rtc 'driftfix=slew,base=localtime' \
-machine 'type=q35' \
-global 'kvm-pit.lost_tick_policy=discard'
Code:
# echo 1 > /sys/bus/pci/devices/0000:43:00.0/rom
# cat /sys/bus/pci/devices/0000:43:00.0/rom > /tmp/image.rom
# echo 0 > /sys/bus/pci/devices/0000:43:00.0/rom
#
# ./rom-parser /tmp/image.rom
Valid ROM signature found @0h, PCIR offset 1a0h
PCIR: type 0 (x86 PC-AT), vendor: 10de, device: 1c30, class: 030000
PCIR: revision 0, vendor revision: 1
Valid ROM signature found @e800h, PCIR offset 194h
PCIR: type 0 (x86 PC-AT), vendor: 8086, device: 1d6b, class: 010400
PCIR: revision 3, vendor revision: 308
Last image
Code:
# cat /etc/modprobe.d/kvm.conf
options kvm ignore_msrs=1
options kvm report_ignored_msrs=0
On Windows side, it is running Windows Server 2016 Data Centre (MSDNAA license), fully activated, fresh install. Attempted to use the most recent driver `R430 U4 (431.02)` as well as the older `R390 U10 (392.53)` driver. Neither seems to make a difference; it comes up as "Windows has stopped this device because it has reported problems (code 43)".
Phew... that was long. Any help would be greatly appreciated!