Skip to content

Required files and instructions for installing NVIDIA Web Drivers on macOS Mojave and Catalina

License

Notifications You must be signed in to change notification settings

eflanili7881/NVIDIAWebDriversForMacOSMojaveAndCatalina

Repository files navigation

NVIDIA Web Drivers for macOS Mojave and Catalina

Required files and instructions for installing NVIDIA Web Drivers on macOS Mojave and Catalina

All required files taken from PatcherSupportPkg repo on 18th December 2024. You can go there if the patches are updated. Just take files listed on here.

Credits

Story of creation of this repo

I used NVIDIA GPU's (GT 630 and GTX 1050 Ti) with Sierra and High Sierra during Mojave, Catalina, Big Sur and Monterey eras. NGL, I felt a bit jealous while AMD and Intel iGPU users using most up-to-date OS'. But legends (Khronokernel, DhinakG and all other legends that has work on these patches) made NVIDIA Web Drivers able to run on newer OS', but only on Big Sur and above with OCLP 0.4.6. And you know that patch support for Mojave and Catalina was removed on OCLP 0.4.4 and last version for patching Mojave and Catalina was 0.4.3 which is not contain patch for NVIDIA Web Drivers. I viewed this Reddit post and this Twitter/X tweet/post.

But when I checked OCLP pull #993, I saw this:

image

Do you see what I see? There's 10.14.3 which stands for macOS Mojave build number. A Maxwell-based NVIDIA GPU ran on macOS Mojave 10.14.3 which is tested by legend Khronokernel itself.

After that, I started investigating this. I took necessary files to copy and commands list to run from old version of OCLP and put these files and commands on patchlist_for_web_drivers.txt. I tried installing NVIDIA Web Drivers long before on Catalina test system, but due to I unpacked some *.framework files on Windows, I borked that Catalina test install due to borked symbolic links thats caused by extracted these files on Windows. But on date 18th December 2024, I tried this again, but unpacking all files on macOS itself instead, and guess what? I patched OS' finally to run NVIDIA Web Drivers with non-Metal mode just like on Big Sur and above on Mojave and Catalina!

  • macOS Mojave 10.14.6 Security Update 2021-005 build 18G9323

    image

  • macOS Catalina 10.15.7 Security Update 2022-005 build 19H2026

    image

Instructions

  • Disable Library Validation via:
  • Enable Forced Compatibility via WhateverGreen via:
    • ngfxcompat=1 boot argument or
    • force-compat with Data type that has value 01000000 on your GPU's device properties.
  • Force OpenGL rendering via:
    • ngfxgl=1 boot argument or
    • disable-metal with Data type that has value 01000000 on your GPU's device properties.
  • Enable NVIDIA Web Drivers via:
    • nvda_drv_vrl=1 boot argument
  • Set your SIP (System Integrity Protection) level to 0xa03.
    • CSR_ALLOW_UNTRUSTED_KEXTS (0x1)
      • Introduced with OS X El Capitan.
      • Allows unsigned kernel drivers to be installed and loaded.
    • CSR_ALLOW_UNRESTRICTED_FS (0x2)
      • Introduced with OS X El Capitan.
      • Allows unrestricted file system access.
    • CSR_ALLOW_UNAPPROVED_KEXTS (0x200)
      • Introduced with macOS High Sierra.
      • Allows unapproved kernel driver installation/loading.
    • CSR_ALLOW_UNAUTHENTICATED_ROOT (0x800)
      • Introduced with macOS Big Sur.
      • Allows custom APFS snapshots to be booted (primarily for modified root volumes).
      • Not necessary on Mojave and Catalina, but patches may somehow require this bit. You can omit it if you want.
        • So, new value for SIP is 0x203 (against 0xa03) if you omit this bit.
  • Install or update Lilu from here.
    • Lilu is requirement for various kernel extensions (*.kext) and WhateverGreen that you're gonna install or update on next step.
  • Install or update WhateverGreen from here.
  • Download this repo's contents via Code > Download ZIP.
  • Run commands thats inside on commands.txt.
    • sudo /usr/bin/defaults write /Library/Preferences/.GlobalPreferences.plist InternalDebugUseGPUProcessForCanvasRenderingEnabled -bool false
      • Disables the use of the GPU process for rendering canvas elements in applications that rely on macOS's rendering infrastructure.
    • sudo /usr/bin/defaults write /Library/Preferences/.GlobalPreferences.plist WebKitExperimentalUseGPUProcessForCanvasRenderingEnabled -bool false
      • Configures the WebKit rendering engine used by macOS applications (like Safari or other WebKit-based apps) to disable GPU-based rendering for <canvas> elements in web content.
    • sudo /usr/bin/defaults write /Library/Preferences/com.apple.CoreDisplay useMetal -boolean no
      • Disables the use of Metal, Apple’s modern graphics and compute API, for CoreDisplay-related rendering tasks on macOS.
    • sudo /usr/bin/defaults write /Library/Preferences/com.apple.CoreDisplay useIOP -boolean no
      • Disables the use of IOP (I/O Present), a framework or mechanism related to macOS's CoreDisplay subsystem.
  • Remove necessary files thats inside on files_to_delete.txt.
    • On Catalina, run sudo mount -uw / to mount root filesystem as read-write.
    • I recommend you to delete files via sudo rm -rf <dropFilesOnDelete.txtFile>
      • Example
        • sudo rm -rf /System/Library/Extensions/AMDRadeonX4000.kext /System/Library/Extensions/AMDRadeonX4000HWServices.kext /System/Library/Extensions/AMDRadeonX5000.kext /System/Library/Extensions/AMDRadeonX5000HWServices.kext /System/Library/Extensions/AMDRadeonX6000.kext /System/Library/Extensions/AMDRadeonX6000Framebuffer.kext /System/Library/Extensions/AMDRadeonX6000HWServices.kext /System/Library/Extensions/AppleIntelBDWGraphics.kext /System/Library/Extensions/AppleIntelBDWGraphicsFramebuffer.kext /System/Library/Extensions/AppleIntelCFLGraphicsFramebuffer.kext /System/Library/Extensions/AppleIntelHD4000Graphics.kext /System/Library/Extensions/AppleIntelHD5000Graphics.kext /System/Library/Extensions/AppleIntelICLGraphics.kext /System/Library/Extensions/AppleIntelICLLPGraphicsFramebuffer.kext /System/Library/Extensions/AppleIntelKBLGraphics.kext /System/Library/Extensions/AppleIntelKBLGraphicsFramebuffer.kext /System/Library/Extensions/AppleIntelSKLGraphics.kext /System/Library/Extensions/AppleIntelSKLGraphicsFramebuffer.kext /System/Library/Extensions/AppleIntelFramebufferAzul.kext /System/Library/Extensions/AppleIntelFramebufferCapri.kext /System/Library/Extensions/AppleParavirtGPU.kext /System/Library/Extensions/GeForce.kext /System/Library/Extensions/IOAcceleratorFamily2.kext /System/Library/Extensions/IOGPUFamily.kext /System/Library/Extensions/AppleAfterburner.kext /System/Library/Extensions/AppleCameraInterface.kext /System/Library/Extensions/NVDAStartup.kext
    • If files missing, don't worry. Just delete files that just exists.
  • Copy all files from copy_mojave or copy_catalina that depends to your currently OS version you want to patch to root filesystem.
    • On Catalina, run sudo mount -uw / to mount root filesystem as read-write.
    • Optionally, you can run sudo chown root:wheel and sudo chmod 755 per file after you copied files to appropriate locations. I didn't do that but kexts and frameworks are still loaded. Maybe they're automatically set owner/group and permission octal values by macOS itself or by reducing level of SIP.
    • I recommend you to copy files via sudo cp -R <pathOfcopy_mojaveOrcopy_catalina>/* /
      • Example for Catalina
        • sudo cp -R /Volumes/Untitled/copy_catalina/* /
      • Example for Mojave
        • sudo cp -R /Volumes/Untitled/copy_mojave/* /
  • After you copied files, run sudo kextcache -i / to rebuild kext cache.
  • Reboot your system.

After these instructions, you should get hardware acceleration in non-Metal mode on macOS Mojave and Catalina. But because of the system now runs on non-Metal (OpenGL) mode, bugs on OCLP issues #108 may occur.

About

Required files and instructions for installing NVIDIA Web Drivers on macOS Mojave and Catalina

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages