Jump to content

Hacking Nvidia's Drivers!

2 hours ago, Noim said:

Yeah, this is the same thing I wondered. 

I mean, it could be a possible use case where no display output is needed. 

Something like a VM (Unraid) or Plex GPU acceleration.

I mean for 66 Euro. Especially as gpu for my plex media server this would be awesome. So if anybody has more details about this. 

Even for other cards... (IIRC Wendle said they can do passthrough with their special drivers they are developing). As, I was wondering about not bothering with the ports ont he GPU, and only using the motherboard display outs on a mini itx. :P

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Bitter said:

I don't fangirl...ever...but videos with Gaben are my favorite because there's someone that's really technically expertised digging deeper and looking further than 'wow it's got rgb'. No offense to Linus or anyone else there, but Gaben is extremely talented and I'd like to see more technical content, maybe his own occasional video series on a channel or something where he deep dives into things like driver editing and bios modding. He takes heady concepts and turns them down to something that even I can understand and follow along with.

The best LTT recent videos IMO are with @GabenJr. I find the format of Anthony explain complex tasks and repeated by Linus in a more familiar and easier to digest way quite appealing. Makes the video both interesting and approachable. 

Link to comment
Share on other sites

Link to post
Share on other sites

Usually PCI cards used (and still use) different combination of resitor values soldered on the PCB near the connetor to set the PCI ID for that specific card.

Would it be possible to change those resistors on the P106-100 to match the ones of a 1060?

Link to comment
Share on other sites

Link to post
Share on other sites

how do I make this work for my gtx 750 ti, I keep getting a code 43 error I have tried everything on the internet. as this uses my integrated graphics to display, I thought it might work, what are the codes for the GTX 750 TI card 

Link to comment
Share on other sites

Link to post
Share on other sites

38 minutes ago, TheGiolly said:

Usually PCI cards used (and still use) different combination of resitor values soldered on the PCB near the connetor to set the PCI ID for that specific card.

Would it be possible to change those resistors on the P106-100 to match the ones of a 1060?

We need someone with a 1060 to test this out. Well we need someone with a 1060, spare time, some competent electrical/engineering knowledge, and a good Fluke (or similar meter). I have all those except the 1060, darn it.

Link to comment
Share on other sites

Link to post
Share on other sites

If the problem with SLI might be that the P106 doesn't have display output, why haven't you tried putting the 1060 in the "primary" slot and plugging the monitor into it, and having the P106 act as the secondary card?

Link to comment
Share on other sites

Link to post
Share on other sites

Would it be possible to modify the drivers of consumer GPU's, such as the GTX 970, to output 10-bit color or to take advantage of features that Quadro cards can use?

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, asdf2345 said:

Would it be possible to modify the drivers of consumer GPU's, such as the GTX 970, to output 10-bit color or to take advantage of features that Quadro cards can use?

Edit the inf file to ID the 970 as the 'same' Quadro and find out?

Link to comment
Share on other sites

Link to post
Share on other sites

But does it support DX12??????

My Machines:

 

I know. I need to update this. And I will. Eventually. 

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, Noim said:

Yeah, this is the same thing I wondered. 

I mean, it could be a possible use case where no display output is needed. 

Something like a VM (Unraid) or Plex GPU acceleration.

I mean for 66 Euro. Especially as gpu for my plex media server this would be awesome. So if anybody has more details about this. 

 

12 hours ago, WereCatf said:

I just wanna know how to make use of the P106 under Linux.

I took a look at the Linux driver and sadly nothing like that seems possible to me, linux drivers are typically shipped in exclusively binary form (windows has an human-readable .inf as part of the drivers) and any modification is not possible or if possible, a lot harder, i tried using grep with one of the strings and the only thing I got is
/nvidia-driver-415_415.27-0ubuntu0~gpu18.10.1_amd64/DEBIAN/control

which doesn't seem to be something driver-related, as for p106 string I only found jp106 locale info, so really useless

the thing imo people should look at is at the dkms binary blob, but it's all binary and as I said it would require hours of reverse engineering and a look with the hex editor to try tricking the pci string into think it is a nvidia gtx 1060

another thing I would try is tricking instead linux to make appear the GPU as a gtx 1060 by tricking the PCI device ID, which is far away from my experience I don't even know if that's possible, never tried it

 

but...another question, is the p106 limited in Linux like it is on Windows? As in Windows after the trick it requires some sort of offloading like optimus, in linux works totally differently by using bumblebee or either the PRIME functionality in Ubuntu, which AFAIK is supported only in laptops, so in this case we should make the driver think it is running on a mobile system (which I don't know how it works, if it requires the intel driver to be loaded or can be used with an amd video card, it would be the case since the discrete optimus cards on laptops have no video output like that P106)
 

11 hours ago, Chronophylos said:

The question is if we can make the driver also think that there is a display connected. Then we can use on of these on Linux for PCI-Passthrough to Windows.
Anyone know how to do this?

Yes, theoretically t should be possible, especially because you would need the modified driver anyway, something like lookinglass to grab the video output would be fine

Edited by Guest
Link to comment
Share on other sites

Link to post
Share on other sites

looking at hi res photos of the back of the PCB of the P106 card, if we look at the lower right hand side does that not appear to be a DVI connector .... looking at a GTX1060 on fleabay it appears almost identical.

 

the number of pins are identical. a bit of solder wick and some soldering skills .... and a molex type DVI connector ? and output?

image.thumb.png.badce74856309f85cef2d435265d8d63.png

Link to comment
Share on other sites

Link to post
Share on other sites

9 hours ago, Bitter said:

We need someone with a 1060 to test this out. Well we need someone with a 1060, spare time, some competent electrical/engineering knowledge, and a good Fluke (or similar meter). I have all those except the 1060, darn it.

Found this.
I'll receive my P106-100 hopefully tomorrow, we'll see ?

15 minutes ago, psyolent said:

looking at hi res photos of the back of the PCB of the P106 card, if we look at the lower right hand side does that not appear to be a DVI connector .... looking at a GTX1060 on fleabay it appears almost identical.

 

the number of pins are identical. a bit of solder wick and some soldering skills .... and a molex type DVI connector ? and output?

image.thumb.png.badce74856309f85cef2d435265d8d63.png

If you open the link above you'll see that there are some missing components around the video output ports.
So maybe it would not be as simple as soldering a connector and (maybe) changing the VBIOS.

Link to comment
Share on other sites

Link to post
Share on other sites

I'm very intereseted if this could work with an eGPU dock?

Is it possible that anyone test this?

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, GabenJr said:

We didn’t recommend using the Chinese driver in our mining GPU video, but now, we’ll show you how to make Nvidia’s drivers work for yourself – And how to go deeper.


Buy a P106 (mining "GTX 1060") on Taobao: https://lmg.gg/8KV9W

 

Buy a real GTX 1060:
On Amazon: http://geni.us/rveAUH
On Newegg: https://lmg.gg/8KV6B

 

Download link for GeForce driver 416.34: https://lmg.gg/8KV93

Download link for HxD: https://lmg.gg/8KV9m

Download link for DifferentSLIAuto: https://lmg.gg/8KV9P

Download link for 7-Zip: https://lmg.gg/8KV9p

TechPowerUp Forum Thread: https://lmg.gg/8KV91

 

How to mod the P106 driver

  • Make sure Secure Boot is disabled and Windows is in testsigning mode
    • Check your motherboard manual for information on how to disable Secure Boot
    • Testsigning can be enabled by opening up a Command Prompt or PowerShell as administrator, then typing:
    • bcdedit /set {current} testsigning on
    • bcdedit /set {current} nointegritychecks on
    • This can be done for a single boot by going to Start -> Power -> Restart and holding shift while clicking Restart, then choosing Troubleshoot, then Advanced Options, then Startup Settings - Once you get to the menu, choose to disable driver signature enforcement.
    • After restarting, you’ll know it worked if some text is displayed in the lower right corner of your desktop
  • Download and extract the GeForce driver using 7-Zip
  • In the extracted folder, go to the Display.Driver folder and open nv_dispi.infusing Notepad++
  • Search for lines containing 1B87 (P104-100), 1BC7, (P104-101) 1C07(P106-100), and 1C09 (P106-090)
    • Change each line's Section number to match the 1C06 (GTX 1060) line - On 416.34, that means from Section110 to Section108
    • On the third set of lines, the Section numbers will be different; Again change it to match the 1C06 (GTX 1060) line - On 416.34, that's Section109 to Section107
  • Save the file
  • Install the driver as normal – Windows will complain that it’s unsigned; Click allow.
  • Right-click the desktop, go to Display Settings, then Graphics Settings
    • From here, you can force any game to use the P106 to render while your integrated GPU is used for display output.

How to perform the SLI mod

  • Make sure Secure Boot is disabled and Windows is in testsigning mode
    • Check your motherboard manual for information on how to disable Secure Boot
    • Testsigning can be enabled by opening up a Command Prompt or PowerShell as administrator, then typing:
    • bcdedit /set {current} testsigning on
    • bcdedit /set {current} nointegritychecks on
    • This can be done for a single boot by going to Start -> Power -> Restart and holding shift while clicking Restart
    • After restarting, you’ll know it worked if some text is displayed in the lower right corner of your desktop
  • Install both graphics cards you wish to attempt SLI with
    • The first three characters of the PCI device ID MUST match to enable SLI
    • To find out what the device ID is, right-click the start button and click Device Manager
    • In the Display adaptors list double-click the card you want to check.
    • Under the Details tab, click the drop-down and then click Hardware IDs.
    • It will look like this: PCI\VEN_10DE&DEV_1F07&SUBSYS_86701043&REV_A1
    • VEN_10DE means Nvidia, while DEV_1F07 is the device ID – In this example, an RTX 2070. So in order to run SLI, the other card’s device ID will have to also start with DEV_1F0
  • Download and install the GeForce driver as usual
  • Download and extract the DifferentSLIAuto package
  • Go to C:\Windows\System32\DriverStore\FileRepository and sort by date
  • Go into the newest folder beginning with nv_dispi.inf
  • Copy the nvlddmkm.sys file to the DifferentSLIAuto folder
  • Open the install.cmd file in the DifferentSLIAuto folder in Notepad++
  • Replace the three mentions of nv_dispi.inf in install.cmd with the folder name we got the nvlddmkm.sys file
  • Open the nvlddmkm.sys we copied in a hex editor (HxD)
  • In HxD, go to Search, then Find, then click the Hex Values tab
    • Search for 79050fba6b240e
    • Position the cursor at the start of these values
    • Replace with C7432400000000 (no need to delete first, just type over it)
    • Save the file
  • Reboot into Safe Mode with Networking
    • Click Start, then Power, then hold shift while clicking Reboot
    • In the menu that comes up, click Troubleshoot, then Advanced Options, then Startup Settings (on some PCs, this may be behind a “show more options” arrow) - Once the PC reboots, press 5 on the screen that appears.
  • Run install.cmd in the DifferentSLIAuto folder as administrator
  • Reboot into normal mode
  • Enable SLI (hopefully)

Can this step run on every nvidia. because i had 930mx. U know. what I want to do is make nvenc is enable. so if i wanna stream 930mx will able to do such a thing. can you give proper or screenshot for every step. thx

Link to comment
Share on other sites

Link to post
Share on other sites

Does this mean, that LTT found a way for consumers to eliminate the GPU positioning limitations imposed by the GPU I/O, enabling us to build even more extreme and compact gaming PC's?

Link to comment
Share on other sites

Link to post
Share on other sites

58 minutes ago, Hafizdkren said:

Can this step run on every nvidia. because i had 930mx. U know. what I want to do is make nvenc is enable. so if i wanna stream 930mx will able to do such a thing. can you give proper or screenshot for every step. thx

I'm so heavily interested in this. NVidia tricked me into thinking the GT 1030 had NVENC capabilities since it has the PureVideo H feature set but it is blocked driver side, it seems...

 

I'm praying for @GabenJr to continue his marvelous wizardry and help us poor plebs!

Link to comment
Share on other sites

Link to post
Share on other sites

31 minutes ago, Dude7456 said:

@GabenJrI'm so heavily interested in this. NVidia tricked me into thinking the GT 1030 had NVENC capabilities since it has the PureVideo H feature set but it is blocked driver side, it seems...

The GT 1030 does have PureVideo-capabilities, it does not have NVENC. NVENC isn't PureVideo, they are two different things; PureVideo is only about DECODING of video, not ENCODING.

Hand, n. A singular instrument worn at the end of the human arm and commonly thrust into somebody’s pocket.

Link to comment
Share on other sites

Link to post
Share on other sites

@GabenJr What are the chances that LTT release a video about modifying drivers, I had to do this for the first time last week!! Specifically the error 43 on nvidia gpus.

 

I was trying to get a Zotac 1060 3gb working as an egpu, and there's a documented solution for getting around a 43 error code. Similar to what you guys did replacing the IDs, this method simply adds them as extra lines. Interestingly, you can actually use the latest drivers with this method, as long as you don't perform a clean installation when they ask. 

 

If you've not seen or tried this, hope it's interesting!! 

 

https://egpu.io/forums/expresscard-mpcie-m-2-adapters/FIXED-Nvidia-GTX1050Ti-error-43-on-mPCIe-or-M2-non-hotplug-eGPU-interfaces-applicable-to-GTX10xx/

 

 


 

⠀⠀⠀⣴⣴⡤
⠀⣠⠀⢿⠇⡇⠀⠀⠀⠀⠀⠀⠀⢰⢷⡗
⠀⢶⢽⠿⣗⠀⠀⠀⠀⠀⠀⠀⠀⣼⡧⠂⠀⠀⣼⣷⡆
⠀⠀⣾⢶⠐⣱⠀⠀⠀⠀⠀⣤⣜⣻⣧⣲⣦⠤⣧⣿⠶
⠀⢀⣿⣿⣇⠀⠀⠀⠀⠀⠀⠛⠿⣿⣿⣷⣤⣄⡹⣿⣷
⠀⢸⣿⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿
⠀⠿⠃⠈⠿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⠿⠿⠿

⠀⢀⢀⡀⠀⢀⣤⠀⠀⠀⠀⠀⠀⠀⡀⡀
⠀⣿⡟⡇⠀⠭⡋⠅⠀⠀⠀⠀⠀⢰⣟⢿
⠀⣹⡌⠀⠀⣨⣾⣷⣄⠀⠀⠀⠀⢈⠔⠌
⠰⣷⣿⡀⢐⢿⣿⣿⢻⠀⠀⠀⢠⣿⡿⡤⣴⠄⢀⣀⡀
⠘⣿⣿⠂⠈⢸⣿⣿⣸⠀⠀⠀⢘⣿⣿⣀⡠⣠⣺⣿⣷
⠀⣿⣿⡆⠀⢸⣿⣿⣾⡇⠀⣿⣿⣿⣿⣿⣗⣻⡻⠿⠁
⠀⣿⣿⡇⠀⢸⣿⣿⡇⠀⠀⠉⠉⠉⠉⠉⠉⠁

 

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, Lukyp said:

 

I took a look at the Linux driver and sadly nothing like that seems possible to me, linux drivers are typically shipped in exclusively binary form (windows has an human-readable .inf as part of the drivers) and any modification is not possible or if possible, a lot harder, i tried using grep with one of the strings and the only thing I got is
/nvidia-driver-415_415.27-0ubuntu0~gpu18.10.1_amd64/DEBIAN/control

which doesn't seem to be something driver-related, as for p106 string I only found jp106 locale info, so really useless

the thing imo people should look at is at the dkms binary blob, but it's all binary and as I said it would require hours of reverse engineering and a look with the hex editor to try tricking the pci string into think it is a nvidia gtx 1060

another thing I would try is tricking instead linux to make appear the GPU as a gtx 1060 by tricking the PCI device ID, which is far away from my experience I don't even know if that's possible, never tried it

 

but...another question, is the p106 limited in Linux like it is on Windows? As in Windows after the trick it requires some sort of offloading like optimus, in linux works totally differently by using bumblebee or either the PRIME functionality in Ubuntu, which AFAIK is supported only in laptops, so in this case we should make the driver think it is running on a mobile system (which I don't know how it works, if it requires the intel driver to be loaded or can be used with an amd video card, it would be the case since the discrete optimus cards on laptops have no video output like that P106)
 

Yes, theoretically t should be possible, especially because you would need the modified driver anyway, something like lookinglass to grab the video output would be fine

Does the linux driver have the same limitation like windows driver? I mean, I don’t need video output, just the hardware acceleration for plex. I am not sure If I should spend nearly 70 Euros just to try it out. 

Thanks btw, your response was very informative. 

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Noim said:

Does the linux driver have the same limitation like windows driver? I mean, I don’t need video output, just the hardware acceleration for plex. I am not sure If I should spend nearly 70 Euros just to try it out. 

Thanks btw, your response was very informative. 

That's the same question I was answering...

Anyway not very informative, I do not know if people already patched it or not

Theoritically it should indeed have limitations, haven't I seen someone in this post saying about patched linux drivers as well?

It should block OpenGL and Vulkan in theory ? even if this sort of limitation is easier to do on Windows, I don't know what kind of error it gives on Windows when trying to run a game, making limitations to an nvidia linux driver where in the desktop environment is full of bugs and issues. That seem a sophisticated thing to me, in WIndows it has an installer which does tons of useless checks and things, in Linux it is just a package with a driver on it

Edited by Guest
Link to comment
Share on other sites

Link to post
Share on other sites

21 minutes ago, Lukyp said:

That's the same question I was answering...

Anyway not very informative, I do not know if people already patched it or not

Theoritically it should indeed have limitations, haven't I seen someone in this post saying about patched linux drivers as well?

It should block OpenGL and Vulkan in theory ? even if this sort of limitation is easier to do on Windows, I don't know what kind of error it gives on Windows when trying to run a game, making limitations to an nvidia linux driver where in the desktop environment is full of bugs and issues. That seem a sophisticated thing to me, in WIndows it has an installer which does tons of useless checks and things, in Linux it is just a package with a driver on it

I bought one of these cards off Ebay in Australia (the guy is selling them for $100 AUD and no mucking about with Taobao) as I decided to use it for an emulation PC - works a treat in Windows and had no real issues. Don't care that the driver isn't signed either!

 

Then I decided to give it a crack with SteamOS to see if I could have a nicer interface whilst still making use of the P106 for 3D acceleration. Haven't had a vast amount of success so far (Bumblebee keeps saying it can't access the secondary GPU), but more than happy to work with someone who's keen to get this running on Linux if anyone wants to give this a crack.

One other thing I read somewhere was that apparently if you buy one of those weird ass mobile processors that Linus covered in an older video then the system sees this all as a standard mobile/Optimus set up so that's something I could be tempted to try too.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, keepwalkn said:

I bought one of these cards off Ebay in Australia (the guy is selling them for $100 AUD and no mucking about with Taobao) as I decided to use it for an emulation PC - works a treat in Windows and had no real issues. Don't care that the driver isn't signed either!

 

Then I decided to give it a crack with SteamOS to see if I could have a nicer interface whilst still making use of the P106 for 3D acceleration. Haven't had a vast amount of success so far (Bumblebee keeps saying it can't access the secondary GPU), but more than happy to work with someone who's keen to get this running on Linux if anyone wants to give this a crack.

One other thing I read somewhere was that apparently if you buy one of those weird ass mobile processors that Linus covered in an older video then the system sees this all as a standard mobile/Optimus set up so that's something I could be tempted to try too.

I would rather try Ubuntu with nvidia-prime instead, because bumblebee is known to give every sort of issue maybe not even related to the video card, and in ubuntu it does not even work well, I also suppose since steamos is debian it has crappy support for it too

As long you have the Intel iGPU where to render the frames you could try the nvidia-prime support, which should be detected automatically

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×