Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[GUIDE] Fix Nvidia Code 43 Issue on Nvidia GPU

Featured Replies

Hello to everyone.

 

I'm trying to fix the error 43 given by the nvidia driver when I install it on a Windows 10 virtualized OS. I'm interested to use the nvidia driver of my graphic card (RTX 2080ti) on a esxi client and on a xen client. I've got this patch,that can help me :

 

https://github.com/sk1080/nvidia-kvm-patcher

 

This is what the patch does :

 

$pattern = '\xBB\x00\x00\x00\x40\x48\x8D\x44\x24\x50' # + 0x30

$patch = [Byte[]]@(0x31, 0xC0, 0x90, 0x90, 0x90, 0x90, 0x90, 0x85, 0xC0)

 

it detect the hex value of BB00000040488D442450 and replace it with "31C0909090909085C0". This is the value called "Cpu ID" that's located inside the file "nvlddmkm.sys" of each nvidia driver and it is used to detect if the driver is running inside a KVM vm. Good. This is not what I want to do. I don't need to patch the nvidia driver to hide the KVM hypervisor. I want to hide the ESXI and the XEN hypervisor from the nvidia driver. I gave a look inside the nvlddmkm.sys file and I found something that's really interesting (attached pic called before)

 

is this the hex value associated with the vmware hypervisor ? It's enough to change it with this,for example,to fool the nvidia driver ? (attached picture called after)

 

In addition to this,looking inside the nvidia kvm patcher,I see that it used an offset,like this :

 

$offset = $matches[0].Index + 0x40

 

I would like to know in my case what's the offset ? Maybe 0x40 ? C40 is 0x40 ? thanks.

before.png

after.png

  • 3 weeks later...
  • Replies 112
  • Views 127.3k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • UEFI / BIOS Settings: Tweaker -> Advanced CPU Settings -> SVM Mode -> Enable Settings -> Miscellaneous -> IOMMU -> Enable Settings -> AMD CBS -> ACS Enable ->

  • Edit:   Made guide for windows 10 vm with passtrough and it has better way to get this working.  

  • Dude, this really saved my Gaming Weekend ! Thanks, Man it worked.

Posted Images

Has anyone successfully built the custom drivers?

I tried twice in two different environments, but got the same script error in both cases.

 

I don't currently have any of the test environments running, so I am unable to provide the exact error -- for now, I'm just curious if anyone's actually managed to build the drivers using the provided scripts?

  • 4 weeks later...

Edit:

 

Made guide for windows 10 vm with passtrough and it has better way to get this working.

 

Edited by twiikker

This guide is outdated.

33 minutes ago, testdasi said:

This guide is outdated.

Do you have link to more recent one?

42 minutes ago, twiikker said:

Do you have link to more recent one?

There isn't a more recent one because this whole guide is outdated.

SpaceInvader One Youtube channel is probably a better starting point.

2 hours ago, testdasi said:

There isn't a more recent one because this whole guide is outdated.

SpaceInvader One Youtube channel is probably a better starting point.

Well that was my though after reading so thats why i made this walktrough how i got it working as best as i could.

13 minutes ago, twiikker said:

Well that was my though after reading so thats why i made this walktrough how i got it working as best as i could.

You should start a new topic with the details instead of adding to this topic, which is based on some outdated tweaks (e.g. turning off Hyper-V).

Adding more to this would create the impression (particularly to new users) that it's the way to go with error code 43 when in fact it's the equivalent of bulldozing a wall, based on the outdated assumption that the wall needs to be demolished, when there are a set of known gates to get in and may not require such drastic actions.

  • 2 weeks later...

@testdasi would you be able to link to something describing these known gates. I am currently dealing with this problem and this is the most up to date thread I found.

 

Thanks!

Edited by jomack16

Just throwing this here;

 

I had to make a new Unraid boot drive which used UEFI boot mode (the old one did not). That however resulted in all my linux VMs not booting up and Windows VM throwing the error code 43 error.

 

Going back to legacy boot mode, fixed it all again.

 

Hope this helps someone.

  • 1 month later...
On 8/7/2020 at 11:22 AM, twiikker said:

Edit:

 

Made guide for windows 10 vm with passtrough and it has better way to get this working.

 

Dude, this really saved my Gaming Weekend !

Thanks, Man it worked.

  • 1 year later...

For anyone coming across this in the future, twiikker's "Preferred Alternative for recent libvirt + qemu" XML edit in the link above worked for me. My setup is a Dell R720XD with multiple GPUS running Unraid 6.9.2 stable in Legacy Mode. For some reason, GPUs populated in certain PCIe slots would always throw error code 43 once the NVIDIA driver was loaded. They also would not work with Linux VMs once the NVIDIA Linux drivers were loaded. I figured it was the driver detecting the virtual environment because before loading NVIDIA drivers, the GPUs would indeed output video using either default Linux display drivers, or the Microsoft Basic Display Driver. However, once the NVIDIA driver loads, bam, no more video output on Linux and code 43 in Windows! Using twiikker's suggestion, all I had to do for those GPUs with error, was add the following to my XMLs for those VMs:

 

<domain>
    ...
        <features>
            ...
            <kvm>
                <hidden state='on'/>
            </kvm>
            ...
            <hyperv>
                ...
                <vendor_id state='on' value='whatever1234'/>
            </hyperv>
            ...
        </features>
    ...
</domain>

 

That's literally all I did and it's been fixed ever since. This has worked for both an EVGA GT 1030 and Zotac GT 710 (PCIe x1) cards. Both had VBIOS's dumped by myself on the same system using Spaceinvader's CLI technique. This seems to be an issue that can still occur, perhaps especially on these lower end cards, and depending on specific hardware configurations. Hopefully this helps someone in the future and saves some blood, sweat, and tears!

Edited by Victicious
Added BIOS mode Unraid is running in.

  • 9 months later...
On 1/11/2022 at 2:05 AM, Victicious said:

That's literally all I did and it's been fixed ever since. This has worked for both an EVGA GT 1030 and Zotac GT 710 (PCIe x1) cards. Both had VBIOS's dumped by myself on the same system using Spaceinvader's CLI technique. This seems to be an issue that can still occur, perhaps especially on these lower end cards, and depending on specific hardware configurations. Hopefully this helps someone in the future and saves some blood, sweat, and tears!

 

Sorry for the Necro, but this is still relevant in late 2022.

I have a GTX 770 and nothing else worked, I was getting Code 43. My brother even tried to help me as he has a double gpu passthrough with a 1060 and a 3050 similar to my setup.

 

Once I edited the XML and booted the VM, I no longer receive error 43 and it immediately picked up the Nvidia Driver I had already installed. Thanks!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.