GTX 980 Ti passthrough, error 43. Can't find any updated resources for solving this.

diericx

New Member
Nov 25, 2019
19
0
1
27
Here are some relevant specs for my machine:
Motherboard: Gigabyte ga-z170x-ud5
CPU: Intel Core i7-6700K
GPU: GTX 980 Ti

I've tried following this tutorial EXACTLY but just ended up with a machine giving me error 43.
https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough/

I then continued to search around for solutions and tried the suggestions in this post (being the most recent posted info I could find):
https://www.reddit.com/r/Proxmox/comments/cwch8u/proxmox_6_nvidia_gpu_passthrough/

Still, error 43.

Here is my VMs current config:
Code:
agent: 2
args: -machine type=q35,kernel_irqchip=on
bios: ovmf
boot: dc
bootdisk: scsi0
cores: 8
cpu: host,hidden=1,flags=+pcid
efidisk0: local-zfs:vm-104-disk-2,size=128K
hostpci0: 01:00,pcie=1,romfile=980tiRom.rom
machine: pc-q35-3.1
memory: 4096
name: beast
net0: virtio=DA:F4:4E:C6:86:74,bridge=vmbr0,firewall=1
numa: 1
ostype: win10
scsi0: local-zfs:vm-104-disk-0,cache=writeback,iothread=1,replicate=0,size=250G,ssd=1
scsihw: virtio-scsi-pci
smbios1: uuid=2e858da9-cfa6-4e31-ab83-cbe31a3941d6
sockets: 1
vga: none
vmgenid: a370ee4d-0316-417b-947e-5baf5fc543be

Note that I tried the args from the tutorial I listed above and also did not work.

Is there any more info I can try or is this just not possible at the moment? From what I can tell all of my hardware should be compatible. What's frustrating is that it seems like Nvidia is just blocking the GPU because it detects virtualization, meaning I'm so close! :(

Any suggestions would be amazing and I'll send any more info if requested! Just not sure what would be relevant.
 
assuming that:
* you have the latest version
* the kernel does not use the gpu at boot
* there is the 'vfio-pci' driver loaded for the card
* the rom you gave is ok and efi bootable (or try without it)
* the card is in its own iommu group

args: -machine type=q35,kernel_irqchip=on
remove this

hostpci0: 01:00,pcie=1,romfile=980tiRom.rom
add ',x-vga=on' here

machine: pc-q35-3.1
replace this with 'q35'

and potentially reinstall windows (sometimes the nvidia install detects a vm install and this can persist across reboots ... i did not really found out how to circumvent this besides reinstalling windows)
 
I tried these out but wasn't able to get rid of the error.

I was actually finally able to get this patcher to run on the Nvidia driver, but ran into a few issues installing it. I first had to uninstall the Nvidia driver I had installed, and then reboot,. I had to get windows to show advanced settings on boot so I could disable driver signature enforcement (in order to install the now unsigned driver), but realized I wasn't getting any output from the GPU (and couldn't connect via RDP because this screen shows before boot).

I had to then set display to VIRTIO-GPU in order to get control from the console in Proxmox and installed it from there. After installation I still see error 43! :(

Before I try reinstalling windows I want to try fixing some of these problems to make sure nothing flags the driver.

Do you know of any ways I can debug the fact that I get no output from the GPU? I'm worried having a display set in the hardware for the VM will flag the Nvidia drivers, but maybe that is not something I need to worry about.

I was also wondering if you know how I could reinstall windows without removing the entire VM. I'd like to keep my current config if possible. Can I just mount the windows iso again and point it to the drive where windows is currently installed?

Edit: This is the config for my VM at the moment, right after installing the patched driver
Code:
bios: ovmf
boot: dc
bootdisk: scsi0
cores: 8
cpu: host,hidden=1,flags=+pcid
efidisk0: local-zfs:vm-104-disk-2,size=128K
hostpci0: 01:00,x-vga=on
machine: q35
memory: 4096
name: beast
net0: virtio=DA:F4:4E:C6:86:74,bridge=vmbr0,firewall=1
numa: 1
ostype: win10
scsi0: local-zfs:vm-104-disk-0,cache=writeback,iothread=1,replicate=0,size=250G,ssd=1
scsihw: virtio-scsi-pci
smbios1: uuid=2e858da9-cfa6-4e31-ab83-cbe31a3941d6
sockets: 1
vga: virtio
vmgenid: a370ee4d-0316-417b-947e-5baf5fc543be
 
Last edited:
I've now completely recreated the VM from scratch and still no luck. I made sure not to install any external Nvidia drivers before the patched one this time and nothing. :(
 
@dcsapak how can I check if the kernel uses the gpu on start? maybe thats it. I have noticed that I can't get any output from the HDMI port on the card itself, even with the VM booted up with GPU passthrough... but I kind of thing that's because the driver is disabled with the error
 
how can I check if the kernel uses the gpu on start?
check if your monitor gets a signal from the gpu, maybe another port of the gpu

also a dmesg output would be helpful
 
@dcsapak I don't have any display port cables or monitors, but I don't get any output at all from HDMI

Code:
root@host:~# dmesg | grep -e DMAR -e IOMMU
[    0.007601] ACPI: DMAR 0x000000009EC2E210 000070 (v01 INTEL  SKL      00000001 INTL 00000001)
[    0.116268] DMAR: IOMMU enabled
[    0.172282] DMAR: Host address width 39
[    0.172284] DMAR: DRHD base: 0x000000fed90000 flags: 0x1
[    0.172287] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.172289] DMAR: RMRR base: 0x0000009e677000 end: 0x0000009e696fff
[    0.172291] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed90000 IOMMU 0
[    0.172292] DMAR-IR: HPET id 0 under DRHD base 0xfed90000
[    0.172293] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.173645] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.731009] DMAR: No ATSR found
[    0.731033] DMAR: dmar0: Using Queued invalidation
[    0.731038] DMAR: Setting RMRR:
[    0.731066] DMAR: Setting identity map for device 0000:00:14.0 [0x9e677000 - 0x9e696fff]
[    0.731071] DMAR: Prepare 0-16MiB unity mapping for LPC
[    0.731098] DMAR: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[    0.731102] DMAR: Intel(R) Virtualization Technology for Directed I/O

Code:
root@host:~# dmesg | grep ecap
[    0.172287] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap d2008c40660462 ecap f050da
[   56.933065] vfio_ecap_init: 0000:01:00.0 hiding ecap 0x1e@0x258
[   56.933815] vfio_ecap_init: 0000:01:00.0 hiding ecap 0x19@0x900

Code:
oot@host:~# find /sys/kernel/iommu_groups/ -type l
/sys/kernel/iommu_groups/7/devices/0000:00:1b.3
/sys/kernel/iommu_groups/15/devices/0000:04:00.0
/sys/kernel/iommu_groups/5/devices/0000:00:1b.0
/sys/kernel/iommu_groups/13/devices/0000:00:1f.6
/sys/kernel/iommu_groups/3/devices/0000:00:16.0
/sys/kernel/iommu_groups/11/devices/0000:00:1d.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/8/devices/0000:00:1c.0
/sys/kernel/iommu_groups/16/devices/0000:40:00.0
/sys/kernel/iommu_groups/6/devices/0000:00:1b.2
/sys/kernel/iommu_groups/14/devices/0000:03:00.0
/sys/kernel/iommu_groups/4/devices/0000:00:17.0
/sys/kernel/iommu_groups/12/devices/0000:00:1f.2
/sys/kernel/iommu_groups/12/devices/0000:00:1f.0
/sys/kernel/iommu_groups/12/devices/0000:00:1f.3
/sys/kernel/iommu_groups/12/devices/0000:00:1f.4
/sys/kernel/iommu_groups/2/devices/0000:00:14.0
/sys/kernel/iommu_groups/10/devices/0000:00:1c.4
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/9/devices/0000:00:1c.2
 
Here are some relevant specs for my machine:
Motherboard: Gigabyte ga-z170x-ud5
CPU: Intel Core i7-6700K
GPU: GTX 980 Ti

HI diericx.

Are You using uefi for start system or just boot via mbr and grub?

For me, I have such error and have found solution as change boot to UEFI mode. (After bios update boot mode changed to default and have spent some time to fix it)
 
Interesting. Switched to UEFI boot from the bios and now RDP hangs at a black screen spamming the "error" sound.. and when connecting from Proxmox consul I still see error code 43

Edit: I can confirm that in Windows system information I see BIOS Mode: UEFI

Edit2: Tried repatching and reinstalling driver, still 43
 
Last edited:
Interesting. Switched to UEFI boot from the bios and now RDP hangs at a black screen spamming the "error" sound.. and when connecting from Proxmox consul I still see error code 43

Edit: I can confirm that in Windows system information I see BIOS Mode: UEFI

Edit2: Tried repatching and reinstalling driver, still 43

Have you been able to fix this?
I have exactly the same problem and already trying for days to get rid of the code 43 error.
 
I finally got it working with the right args. It turns out that Nvidia driver is looking if it's running on a hypervisor and blocks things.
Using these lines in conf worked out:

Code:
args: -cpu host,kvm=off,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_vendor_id=whatever123
cpu: host,hidden=1
hostpci0: 01:00,pcie=1,x-vga=1

My GRUB loader config has these option:

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


Hope it helps someone else out too. I am using GTX 750ti
 
Nvidia is blocking yes. But for me it seemed that every time somebody made a new trick, nvidia detected it. So you could use older card with older driver version (before patch) or cannot get it to work . Did not get this to work with latest drivers at the time (~1.5 years ago). What driver version did you use? . I used it with Geforce GTX 1070.

Switched to Dual R9 290X in crossfire mode and passthrough worked without any fiddling, but crossfire is so badly out of sync that it's not usable. Using dual cards had not benefits. Single card loses around 30% of performance.
 
I'm just using one of the latest Nvidia drivers (445.75)
I also tried to patch it in first but was to complicated and got errors. Finally I found out, after trying several cpu args, that the one above worked.

I would suggest to try it again with your 1070 as you crossfire solution is not ideal.

Hope it works for you too! :)
 

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!