Code 43 NVIDIA driver error within Windows 10 VM, Geforce 750 Ti Passthrough

spirit

Well-Known Member
Apr 2, 2010
3,522
156
63
www.odiso.com
I created a new VM to test, using no VIRTIO drivers...
Now when I boot, I get a black screen (the monitor has 1 dead pixel which flickers). I restarted after Windows automatically updated display drivers. I can only get to the desktop when booting in safe mode. I uninstalled the 750ti drivers in Safemode, disable automatic driver installation, reboot normally into desktop, and within 10second it crashes to the black screen.

Here is the cmdline from the new VM...
Code:
/usr/bin/systemd-run --scope --slice qemu --unit 102 -p KillMode=none -p CPUShares=1000 /usr/bin/kvm -id 102 -chardev socket,id=qmp,path=/var/run/qemu-server/102.qmp,server,nowait -mon chardev=qmp,mode=control -vnc unix:/var/run/qemu-server/102.vnc,x509,password -pidfile /var/run/qemu-server/102.pid -daemonize -smbios type=1,uuid=cdf8af5f-6835-4830-85da-6ea70c2f24df -drive if=pflash,format=raw,readonly,file=/usr/share/kvm/OVMF-pure-efi.fd -drive if=pflash,format=raw,file=/tmp/102-OVMF_VARS-pure-efi.fd -name win102 -smp 4,sockets=1,cores=4,maxcpus=4 -nodefaults -boot menu=on,strict=on,reboot-timeout=1000 -vga none -no-hpet -cpu host,kvm=off -m 8000 -k en-us -device pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e -device piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2 -readconfig /usr/share/qemu-server/pve-usb.cfg -device usb-tablet,id=tablet,bus=uhci.0,port=1 -device vfio-pci,host=02:00.0,id=hostpci0.0,bus=pci.0,addr=0x10.0,multifunction=on -device vfio-pci,host=02:00.1,id=hostpci0.1,bus=pci.0,addr=0x10.1 -device usb-host,hostbus=1,hostport=4 -device usb-host,hostbus=1,hostport=3 -iscsi initiator-name=iqn.1993-08.org.debian:01:63b8542aec40 -device ahci,id=ahci0,multifunction=on,bus=pci.0,addr=0x7 -drive file=/var/lib/vz/images/102/vm-102-disk-1.raw,if=none,id=drive-sata0,cache=writeback,format=raw,aio=threads,detect-zeroes=on -device ide-drive,bus=ahci0.0,drive=drive-sata0,id=sata0,bootindex=100 -drive file=/var/lib/vz/template/iso/Win10_1511_English_x64.iso,if=none,id=drive-ide2,media=cdrom,aio=threads -device ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200 -netdev type=tap,id=net0,ifname=tap102i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown -device e1000,mac=62:38:37:33:65:33,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300,romfile=pxe-e1000.rom -rtc driftfix=slew,base=localtime -machine type=pc-i440fx-2.2 -global kvm-pit.lost_tick_policy=discard
Really don't known here ... (same problem with ide drive vs sata ? with/without machine 2.2 ?)

can you install windows without pci-passthrough (hostpci0) ? then readd the device ?
 

boethius

New Member
Feb 11, 2016
12
0
1
36
On the second VM, I can boot with no hostpci entry, but when I add it I get the black screen.
 

boethius

New Member
Feb 11, 2016
12
0
1
36
I created a third VM, this time installing oldest nvidia drivers available that were not beta.

I got black screen during driver installation, and on subsequent reboots.
Edit: Rebooted once more, now at desktop with code 43 again...

showcmd =
Code:
/usr/bin/systemd-run --scope --slice qemu --unit 103 -p KillMode=none -p CPUShares=1000 /usr/bin/kvm -id 103 -chardev socket,id=qmp,path=/var/run/qemu-server/103.qmp,server,nowait -mon chardev=qmp,mode=control -vnc unix:/var/run/qemu-server/103.vnc,x509,password -pidfile /var/run/qemu-server/103.pid -daemonize -smbios type=1,uuid=4233ce6e-a783-4ff0-bea7-e7f7b1c03d34 -drive if=pflash,format=raw,readonly,file=/usr/share/kvm/OVMF-pure-efi.fd -drive if=pflash,format=raw,file=/tmp/103-OVMF_VARS-pure-efi.fd -name Win103 -smp 4,sockets=1,cores=4,maxcpus=4 -nodefaults -boot menu=on,strict=on,reboot-timeout=1000 -vga none -no-hpet -cpu host,kvm=off -m 12000 -k en-us -device pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e -device piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2 -readconfig /usr/share/qemu-server/pve-usb.cfg -device usb-tablet,id=tablet,bus=uhci.0,port=1 -device vfio-pci,host=02:00.0,id=hostpci0.0,bus=pci.0,addr=0x10.0,multifunction=on -device vfio-pci,host=02:00.1,id=hostpci0.1,bus=pci.0,addr=0x10.1 -device usb-host,hostbus=1,hostport=4 -device usb-host,hostbus=1,hostport=3 -iscsi initiator-name=iqn.1993-08.org.debian:01:63b8542aec40 -device virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5 -drive file=/var/lib/vz/images/103/vm-103-disk-1.raw,if=none,id=drive-scsi0,cache=writeback,format=raw,aio=threads,detect-zeroes=on -device scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100 -drive file=/var/lib/vz/template/iso/virtio-win-0.1.102.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/Win10_1511_English_x64.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 -netdev type=tap,id=net0,ifname=tap103i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown -device e1000,mac=62:62:35:37:62:38,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300,romfile=pxe-e1000.rom -rtc driftfix=slew,base=localtime -machine type=pc-i440fx-2.2 -global kvm-pit.lost_tick_policy=discard
 
Last edited:

spirit

Well-Known Member
Apr 2, 2010
3,522
156
63
www.odiso.com
Ok, I have found some news info here in the post comments:
http://vfio.blogspot.com.au/2014/08/vfiovga-faq.html

Seem that last nvidia drivers are very agressive with verifications,
if you can try drivers < 347.xx

For the latest drivers,
It seem that qemu 2.5 has a new feature
-cpu host,kvm=off,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff,hv_vendor_id=Nvidia43FIX

can you try to edit:
/usr/share/perl5/PVE/QemuServer.pm

and change
Code:
       if ($xvga && $xvga ne '') {
            $kvm_off = 1;
            $vga = 'none';
            $nohyperv = 1;
            if ($conf->{bios} && $conf->{bios} eq 'ovmf') {
                $xvga = "";
            }
        }
to
Code:
       if ($xvga && $xvga ne '') {
            $kvm_off = 1;
            $vga = 'none';
             push @$cpuFlags , 'hv_vendor_id=Nvidia43FIX';
            if ($conf->{bios} && $conf->{bios} eq 'ovmf') {
                $xvga = "";
            }
        }
then restart

# /etc/init.d/pvedaemon restart

in your vmid.conf,
remove "machine: pc-2.2"

and start the vm again

(and send me the kvm command for verification)
 

boethius

New Member
Feb 11, 2016
12
0
1
36
I edited QemuServer.pm to include the change, does the deb file do anything else? To get to the desktop without the broken screen on the first VM, I have to remove hostpci0, use VNC to see Windows desktop, then uninstall the 750ti. as soon as I reboot with drive installed it gives the broken screen. The third VM crashes to a black screen either at boot or within 2-3min of being in windows environment. I installed windows on another HDD and booted to it directly on the same system, everything works fine and is stable. I am wondering if there is anything outside of proxmox that could be causing the problem? Extremely frustrating issue... Probably have spent 10+ hrs trying to get it to work. I'm hoping it is not a stupid mistake I have made (kinda new to linux/proxmox)...
 

SpaceCowBoy

Member
Feb 13, 2016
51
0
6
32
Hey spirit. I'm been working on my rig. I'm now all caught up to this guy. I get windows to boot and install the drivers. PCI passthrough is working. BUt I get error 43 driver. Have you herd of the cpu option kvm=off? That seems to be the fix that i've seen most people use. But they are using qemu directly not through proxmox. I will try you fix above and report back some time tomarow as I need to get to sleep now before school starts in a few hours. Take care buddy and thanks for the help.
 

spirit

Well-Known Member
Apr 2, 2010
3,522
156
63
www.odiso.com
Hey spirit. I'm been working on my rig. I'm now all caught up to this guy. I get windows to boot and install the drivers. PCI passthrough is working. BUt I get error 43 driver. Have you herd of the cpu option kvm=off? That seems to be the fix that i've seen most people use. But they are using qemu directly not through proxmox. I will try you fix above and report back some time tomarow as I need to get to sleep now before school starts in a few hours. Take care buddy and thanks for the help.
kvm=off is already send by proxmox.
(you can check the kvm command line)

can you try
http://download.proxmox.com/debian/dists/jessie/pvetest/binary-amd64/qemu-server_4.0-59_amd64.deb

I have apply all last fixes (hv_vendor, disable vnc).
After that,I'm out of ideas....
 

boethius

New Member
Feb 11, 2016
12
0
1
36
I installed that package and still getting the same issues.. I don't know what I could have done wrong or what is causing this to not work for me vs others... when I have some spare time I will go through everything and document all the steps I take. Strange that I experience either a black screen or a broken screen on the two different VM's
 

lexa500

New Member
Feb 23, 2016
12
0
1
36
I get odd errors about hv-vendor-id property not found
Code:
Use of uninitialized value $kvmver in pattern match (m//) at /usr/share/perl5/PVE/QemuServer.pm line 6605.
Use of uninitialized value $current_major in numeric ge (>=) at /usr/share/perl5/PVE/QemuServer.pm line 6611.
Running as unit 100.scope.
kvm: Property '.hv-vendor-id' not found
TASK ERROR: start failed: command '/usr/bin/systemd-run --scope --slice qemu --unit 100 -p 'KillMode=none' -p 'CPUShares=1000' /usr/bin/kvm -id 100 -chardev 'socket,id=qmp,path=/var/run/qemu-server/100.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -pidfile /var/run/qemu-server/100.pid -daemonize -smbios 'type=1,uuid=6b380506-55b3-4c7e-a4cb-caacded045fe' -drive 'if=pflash,format=raw,readonly,file=/usr/share/kvm/OVMF-pure-efi.fd' -drive 'if=pflash,format=raw,file=/tmp/100-OVMF_VARS-pure-efi.fd' -name win1 -smp '2,sockets=1,cores=2,maxcpus=2' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000' -vga none -nographic -no-hpet -cpu 'kvm64,hv_vendor_id=proxmox,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_relaxed,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce,kvm=off' -m 4096 -k en-us -readconfig /usr/share/qemu-server/pve-q35.cfg -device 'usb-tablet,id=tablet,bus=ehci.0,port=1' -device 'vfio-pci,host=01:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,multifunction=on' -device 'vfio-pci,host=01:00.1,id=hostpci0.1,bus=ich9-pcie-port-1,addr=0x0.1' -device 'usb-host,hostbus=3,hostport=1.5' -device 'usb-host,hostbus=1,hostport=1.4' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:9dc3fc7c97c8' -drive 'file=/var/lib/vz/images/100/vm-100-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' -drive 'file=/mnt/iso/template/iso/virtio-win-0.1.112.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' -netdev 'type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown' -device 'e1000,mac=32:33:62:38:63:35,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300,romfile=pxe-e1000.rom' -rtc 'driftfix=slew,base=localtime' -machine 'type=q35' -global 'kvm-pit.lost_tick_policy=discard'' failed: exit code 1
before the last update (http://download.proxmox.com/debian/dists/jessie/pvetest/binary-amd64/qemu-server_4.0-59_amd64.deb) i had error43 in my win8-1 guest
 

lexa500

New Member
Feb 23, 2016
12
0
1
36
Also, I have read about hv-vendor-id in fresh qemu versions, so in helps to fool nvidia driver (also hyper-v enlightments)
The only question is how to turn them on now.
 

SpaceCowBoy

Member
Feb 13, 2016
51
0
6
32
Hey it's working!!!:):):):):):):):):):):):):):):):):):):):):):)

Win7
SeaBios.
All I did to clear the driver error was to add the expermintal repo and run dis-upgrade like you told me in the other thred. I had lost this upgrade because I had to wipe the host durring my fiddling to fix all this.

Note.
I did not have to inistall the deb or edit the script. Just ran the update.


:confused:Now all I have to figure out is why my keyboad is fussy about USB passthrough.

It will work the first boot but if i reboot the guest it will fail to reconnect and stubbornly stay connected to the host. Untill I shut off the whole machine. Mouse works fine on guest reboot.

Hey Spirit can you please pm me your email. I would like to paypal you some money to buy you a coffee for all your great help :) Sorry I cant offer more I'm a poor student.

EDIT: if anyone has the same usb issue i have. shutting down the guest(instead of restarting it) seems to allow the keyboaed to work again.
 
Last edited:

spirit

Well-Known Member
Apr 2, 2010
3,522
156
63
www.odiso.com
Hey it's working!!!:):):):):):):):):):):):):):):):):):):):):):)

Win7
SeaBios.
All I did to clear the driver error was to add the expermintal repo and run dis-upgrade like you told me in the other thred. I had lost this upgrade because I had to wipe the host durring my fiddling to fix all this.

Note.
I did not have to inistall the deb or edit the script. Just ran the update.


:confused:Now all I have to figure out is why my keyboad is fussy about USB passthrough.

It will work the first boot but if i reboot the guest it will fail to reconnect and stubbornly stay connected to the host. Untill I shut off the whole machine. Mouse works fine on guest reboot.


EDIT: if anyone has the same usb issue i have. shutting down the guest(instead of restarting it) seems to allow the keyboaed to work again.
YESSS !

can you send your
- vmid.conf
- #pveversion -v
- maybe other tuning done in grub

I'll update the wiki

Hey Spirit can you please pm me your email. I would like to paypal you some money to buy you a coffee for all your great help :) Sorry I cant offer more I'm a poor student.
my email can be public : aderumier@odiso.com ;)

No need to paypal, I'm glad to help the proxmox community.
And thank you to have take time to test, because my geforce 970 is not able to passthrough currently, so I'm blind for testing currently ;)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE 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 your own in 60 seconds.

Buy now!