Contribute
Register

NVIDIA Web Driver Clover Patch + Tools

Status
Not open for further replies.
Joined
Jul 24, 2015
Messages
2,191
Motherboard
MSI H81i
CPU
i5-4570
Graphics
RX 580
Clover kext patch for NVIDIA Web Drivers

This patch disables the OS version check present in NVIDIA's web drivers
  • Permits rolling back drivers
  • Persistent after updates (no need to repatch)
  • Accelerated graphics on beta/early release macOS

Name:
NVDAStartupWeb
Find:
4e56444152657175697265644f5300
Replace:
000000000000000000000000000000
Comment:
Disable NVDARequiredOS

How to Add
  • Web Driver Manager
  • Clover Configurator
  • Property list editor (Xcode, PlistPro etc)
  • Manual XML edit (TextMate, TextWrangler etc)
Attached Tools

Credits: @bogdanw @Pavo
FakePCIID audio fix: @toleda @RehabMan

Notes

  • The Preference Pane App
    • may report that the 'default macOS drivers' are in use. If you have acceleration you can ignore this - or the preference pane and status app can be removed. The attached remove-NVIDIA-helper.command automates removal.
  • nvda_drv NVRAM Variable
    • As usual, the drivers only start when this is set. The installer sets this variable when you install, after which it might be controlled by:
      • the 'NvidiaWeb' Clover config.plist setting
      • the Clover entry menu (press space at the boot screen, check/uncheck Nvidia option)
      • NVIDIA preference pane/menu bar app
      • Web Driver Manager menu bar app
      • Apple's nvram system command (see #32)
    • Clover sets nvda_drv=1 every boot when NvidiaWeb is true (in SystemParameters, config.plist). Not needed as long as NVRAM is working.
    • Removing NvidiaWeb from your config.plist does not unset the nvda_drv variable - though pressing F11 at the Clover boot menu should.
  • NVRAM Problems
    • Setting any NVRAM variable is useless if the variable store is not persistent after a reboot. For many motherboards the only way to accomplish pseudo-persistent NVRAM storage has been to install the Clover RC scripts + the EmuVariableUEFI driver.
    • These 2 work together, the RC scripts writing a subset of variables to a file on shutdown, Clover reading them back from disk at boot - with the EmuVariableUEFI driver providing the runtime variable support instead of your motherboard's firmware.
    • Recent improvements in bootloader components required for booting macOS eliminate the need for EmuVariableUEFI.
    • If you've been using emulated NVRAM as described above these developments may make your life easier. For more information read about 'Clover Emulated NVRAM Uninstaller' + Standalone Clover Builds
    • NVRAM problems are not specific to the kext patch
 

Attachments

  • clover-patch.plist
    568 bytes · Views: 1,250
  • NVIDIA Repackager.zip
    65.5 KB · Views: 2,527
  • remove-NVIDIA-helper.command.zip
    945 bytes · Views: 1,172
Last edited:
Thank you for the info, it works. But is there a way of force installing WebDriver-378.10.10.10.25.106.pkg from terminal?
 
Thank you for the info, it works. But is there a way of force installing WebDriver-378.10.10.10.25.106.pkg from terminal?
You could use this script. After installing you can do
Code:
webdriver -l
and choose which driver you want to install

Screen Shot 2018-02-21 at 09.59.41.png


The nice thing about the patch is you can just upgrade with whatever drivers without worrying about losing acceleration. Looks like the new web driver is just a different build of the same version.
 
Yes, but sometimes you don't have acces to install or update webdriver. I was looking for an offline solution.
I have just installed webdriver and gives the following errors
sudo webdriver -l
Password:
Checking for updates...
Current driver: Not installed
Running on: macOS 10.13.3 (17D102)

1 | 387.10.10.10.25.159 17D2102
2 | 387.10.10.10.25.158 17D102
3 | 387.10.10.10.25.157 17D2047
4 | 387.10.10.10.25.156 17D47
5 | 378.10.10.10.25.106 17C2205
6 | 378.10.10.10.25.105 17C2120
7 | 378.10.10.10.25.104 17C205
8 | 378.10.10.10.25.103 17C89
9 | 378.10.10.10.25.102 17C88
10 | 378.10.10.10.20.109 17B1003
11 | 378.10.10.10.20.108 17B1002
12 | 378.10.10.10.20.107 17B48
13 | 378.10.10.10.15.121 17A405
14 | 378.10.10.10.15.114 17A365

What now? [1-14] : 5
Selected: 378.10.10.10.25.106 for 17C2205
Install? [y/N]
URL: https://images.nvidia.com/mac/pkg/378/WebDriver-378.10.10.10.25.106.pkg
Downloading package...
######################################################################## 100,0%
SHA512: Verified
Extracting...
387199 blocks
Approving kexts...
Installing...
Modify installed driver for the current macOS version? [y/N]
Updating caches...
/usr/local/bin/webdriver: line 626: unexpected EOF while looking for matching `"'
/usr/local/bin/webdriver: line 629: syntax error: unexpected end of file
 
/usr/local/bin/webdriver: line 626: unexpected EOF while looking for matching `"'
/usr/local/bin/webdriver: line 629: syntax error: unexpected end of file
Thank you. Just pushed a fixed release. 'brew upgrade' should fetch it.
Yes, but sometimes you don't have acces to install or update webdriver. I was looking for an offline solution.
webdriver will parse a path to a local file as an argument e.g.
Code:
cd ~/Downloads
webdriver WebDriver-378.10.10.10.25.106.pkg
Also you could try https://github.com/Pavo-IM/NvidiaWebDriverRepackager - it removes the installation checks from the GUI installer and leaves a copy on the desktop.
 
This patch seems to let the Nvidia web drivers load on versions of macOS they weren't released for...

Code:
<key>Comment</key>
<string>NVDARequiredOS</string>
<key>Name</key>
<string>NVDAStartupWeb</string>
<key>Find</key>
<data>TlZEQVJlcXVpcmVkT1MA</data>
<key>Replace</key>
<data>AAAAAAAAAAAAAAAAAAAA</data>

Find

Code:
4e 56 44 41 52 65 71 75 69 72 65 64 4f 53 00

Replace

Code:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Could you please explain where do I have to put these patch? Thanks!
 
Could you please explain where do I have to put these patch? Thanks!
Clover Configurator can add the patch, just back up your config.plist before opening it with the app.

1 Choose 'Kernel and Kext Patches'
2 'KextsToPatch'
3 Press the 'Add' + button to create an empty row
4-7 Paste the data below into the first four columns

NVDAStartupWeb
4e56444152657175697265644f5300
000000000000000000000000000000
NVDAStartupWeb

ccc-kextpatch.png


Edit: The image shows NVDAStartup, the correct name is NVDAStartupWeb
 
Last edited:
it removes the installation checks from the GUI installer and leaves a copy on the desktop.
Here is my take on this:
Code:
sudo pkgutil --expand WebDriver-378.10.10.10.25.106.pkg ./106
cd 106
sudo sed -i '' 's/"17C2205"/system.version.ProductBuildVersion/' Distribution
cd ..
sudo pkgutil --flatten 106 106.pkg
Maybe it's helpful to someone.
 
Here is my take on this:
Code:
sudo pkgutil --expand WebDriver-378.10.10.10.25.106.pkg ./106
cd 106
sudo sed -i '' 's/"17C2205"/system.version.ProductBuildVersion/' Distribution
cd ..
sudo pkgutil --flatten 106 106.pkg
Maybe it's helpful to someone.
This should remove the check altogether
Code:
sed -i 's/(result != 0)/(false)/g' ./Distribution
 
This should remove the check altogether
Code:
sed -i 's/(result != 0)/(false)/g' ./Distribution
Thanks, and sudo is not needed. So it's
Code:
pkgutil --expand WebDriver-378.10.10.10.25.106.pkg ./106
cd 106
sed -i '' 's/(result != 0)/(false)/g' Distribution
cd ..
pkgutil --flatten 106 106.pkg
 
Status
Not open for further replies.
Back
Top