nullmoth/nvidia-macos-driver for macOS Sequoia
Metal driver for NVIDIA GeForce cards on macOS Sequoia
At a glance
- What is it?
- nullmoth/nvidia-macos-driver provides a Metal driver stack for NVIDIA Turing and newer cards on Intel Macs and OpenCore PCs running macOS 15 Sequoia. Installation requires OpenCore, SIP, and kernel-extension changes, so the project is aimed at users who already manage a compatible custom macOS system.
- Who is it for?
- Adopt this project if you have a compatible Intel Mac or OpenCore PC, an NVIDIA Turing or newer card, and experience maintaining OpenCore, unsigned kernel extensions, SIP settings, recovery media, and driver rollback. Do not choose it for unsupported hardware or as a simple Mac driver installation.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Star history
- nullmoth/nvidia-macos-driver3,638 ★ · +411
| Repository | 2026-10-16 | 2026-10-23 |
|---|---|---|
| nullmoth/nvidia-macos-driver | 3.2k | 3.6k |
411 Stars in the last 7 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
What nullmoth adds to Intel Macs and OpenCore PCs
nullmoth/nvidia-macos-driver addresses a specific compatibility problem: using supported NVIDIA GeForce hardware for graphics work on x86_64 systems running macOS 15 Sequoia. Its documented targets are Intel Macs and OpenCore PCs that already boot macOS. It is not an NVIDIA driver package for Apple Silicon Macs, and the README does not describe support for that architecture.
The supported hardware generation begins with NVIDIA Turing and extends to GTX 16-series, RTX 20-, 30-, 40-, and 50-series cards, TITAN RTX, Quadro RTX, and T-series products. Most testing is done on an RTX 5060, so inclusion in the supported list does not mean that every listed model has the same level of validation. The README directs users to docs/CARD-SUPPORT.md for reported working configurations.
According to the README, the driver exposes Metal 3 features including argument buffers tier 2, ray tracing, mesh shaders, MPS, and the MetalFX path. It also lists OpenGL through Apple's GL-on-Metal, OpenCL, Core Image, and Core ML. These are supported interfaces claimed by the project, not a guarantee that every application or GPU model will work correctly.
This is not a single driver bundle or an ordinary system installer. It requires a compatible OpenCore setup and changes to boot arguments, SIP configuration, SecureBootModel, and kernel-extension handling. The intended user is therefore someone who already understands Hackintosh or OpenCore configuration rather than someone expecting NVIDIA support to be added through a standard macOS update.
How nullmoth translates Metal work for NVIDIA
The README describes the graphics path as a sequence from the Metal plugin through shader translation and Mesa NVK to the kernel extensions and GPU. A Metal application sends work to NVMTLDriver.bundle. The bundled translator converts Apple AIR shader code to SPIR-V, using an implementation based on metal2vulkan. NVK then uses the Mesa Vulkan back end and NAK compiler path before the request reaches the kernel-side driver.
The repository contains several distinct parts of this stack. The Metal driver plugin is in plugin/, while translator/ contains libnvmtl_translate.dylib, which is installed inside the plugin bundle. The Vulkan back end is under /Library/GPUBundles/nvmtl/ and comes from a Mesa patch identified as nvk/nvk-macos.patch at Mesa revision 17ca6174. Kernel-extension source is stored in kexts/.
Four NVIDIA kernel extensions form the kernel-facing side. NVRMFB provides the display framebuffer, NVAccel handles the accelerator path used by WindowServer compositing, and NVRMAGDC supplies the display-policy shim. NVRM is the core NVIDIA kernel module. These components run NVIDIA's r610 open GPU kernel modules under macOS rather than relying on a macOS kernel module supplied by Apple.
GPU firmware is also part of the stack. Unmodified NVIDIA GSP firmware from NVIDIA 610.57.04 is installed at /Users/Shared/nvfw/nvidia/610.57.04. This separation matters when diagnosing a failure. A problem could occur in application-level Metal use, shader translation, Vulkan compilation, kernel initialization, firmware startup, display routing, or OpenCore configuration. The repository layout does not reduce the driver to one replaceable file.
Installing nullmoth manually with install.sh
The manual installation is intended for users who already manage OpenCore. The README recommends the 1401 Mac app unless the OpenCore configuration will be maintained by the user. Before installing files, the Mac must already boot macOS through OpenCore. Lilu.kext and AMFIPass.kext must be present in Kernel > Add and enabled, SecureBootModel must be Disabled, and the required SIP and boot-argument settings must be in place.
Download nullmoth-nvidia-<version>.tar.gz from the GitHub Releases page. After extracting and entering the package directory, check every file against SHA256SUMS, run install.sh with administrator privileges, and restart the Mac:
tar -xzf nullmoth-nvidia-*.tar.gz && cd pkgroot
shasum -a 256 -c SHA256SUMS
sudo ./install.sh
sudo shutdown -r nowEvery file must report OK during the checksum check. The script copies the driver files and rebuilds the Auxiliary Kernel Collection. Logging out does not load the driver because it must start during boot.
On the first boot, macOS should ask the user to allow the extensions in System Settings > Privacy & Security. The extensions must be allowed, followed by another reboot. The first start with the driver can pause for up to a minute at "PCI configuration end" while the GPU comes up.
The installer does not modify OpenCore. If the boot arguments, SIP configuration, SecureBootModel, or kext requirements are missing, the files may be present while the driver does not load. Keep the USB stick or disk that started OpenCore connected during installation and all subsequent restarts, because that is the configuration the documented workflow depends on.
OpenCore settings required by nullmoth kernel extensions
The kernel extensions install into /Library/Extensions and load from the Auxiliary Kernel Collection. The README explicitly says not to inject the same extensions from EFI/OC/Kexts. OpenCore is responsible for the required security and boot settings, while the macOS collection handles the installed extensions.
The NVRAM entry is 7C436110-AB2A-4BBB-A880-FE41995C9F82. Under NVRAM > Add, the tested csr-active-config value is 430A0000 in Data format. The documented boot arguments are nvfb=1, nvaccel=1, nvfbheads=4, -nvkmsnosmooth, amfi_get_out_of_my_way=0x1, amfi=0x80, and ipc_control_port_options=0. The boot arguments must not include nv_disable=1 or -wegnoegpu because those options hide the NVIDIA card.
Every NVRAM key that receives a value should also be added under NVRAM > Delete so OpenCore rewrites it on each boot. Under Kernel > Block, com.apple.iokit.IONDRVSupport must use the Exclude strategy. The README explains that this prevents the firmware framebuffer from taking display index 0 before NVRMFB.
ResizeGpuBars and ResizeAppleGpuBars should keep their existing values. Forced resizing can stop firmware before the boot picker, and large firmware BAR values can interrupt PCI configuration. SecureBootModel must be Disabled because Apple Secure Boot rejects the project kexts.
Three optional arguments address defined troubleshooting situations. -nvrmnoflip prevents zero-copy scan-out, which the README recommends trying first when the desktop flashes or tears during cursor movement. -nvrmnogo delays GPU startup until nvrmctl go <pass> is issued. -nvrmnobootscreen disables the boot-screen snapshot. None should be treated as a substitute for the required settings.
1401 configuration changes and removal path
The recommended installation route is the 1401 Mac app. The README instructs users to download the latest 1401-Mac-<version>.dmg from Releases, open it, and run 1401. The driver package is included in the disk image, so this route does not require separately downloading and assembling the manual tarball.
According to the README, 1401 locates the OpenCore configuration that started the Mac. It searches for EFI/OC or EFI/BOOT on an EFI or FAT32 partition. The user must have a verified or explicitly selected OpenCore partition. Before changing anything, the app shows the proposed modifications and creates a backup.
Installation also adds "1401: Remove NVIDIA driver" to the OpenCore boot picker. Choosing that entry removes the driver during the next startup, restores the OpenCore configuration to its state before installation, and restarts by itself. This is a meaningful recovery feature for a kernel driver that can affect boot or display initialization, but it depends on the original OpenCore storage remaining present and bootable.
The app never copies OpenCore to the internal disk. The USB stick or disk used to start OpenCore must remain connected while 1401 runs and for every later restart. The README also says that 1401 maps USB ports and can prepare a crash report for the user to upload. It removes names, serial numbers, and addresses from uploaded reports and does not send anything automatically. Users must initiate that upload themselves.
NullMoth support limits and operational maintenance
The main limitation is model-specific support. The README names Turing and newer NVIDIA cards as supported, but most testing occurs on an RTX 5060. Another card can meet the stated generation requirement and still have problems that have not been found. Users with an unusual desktop GPU, laptop GPU, T-series card, or workstation configuration should consult docs/CARD-SUPPORT.md rather than treating the general support statement as proof of compatibility.
The installation also requires system changes that have operational consequences. SecureBootModel is disabled, unsigned kernel extensions are used, SIP receives the documented configuration, and OpenCore must control several startup parameters. The 1401 app simplifies editing and provides a removal entry, but it does not remove the need for a bootable recovery volume. Users who cannot retain access to their OpenCore USB or disk should not rely on the documented automatic removal route.
The repository is not archived. Its last push was on 2026-10-16, and releases v2.0.0 and v2.0.1 were published on the same date. Version v1.15.0 was published on 2026-10-13. This is recent release activity, but it does not mean that every hardware combination is stable across macOS updates.
The project uses a custom license that GitHub cannot classify. The README separately identifies the translator as LGPL-3.0. The LICENSE and NOTICE files are the governing sources for detailed license terms, and the README does not summarize all redistribution or integration conditions.
Editorial conclusion
Adopt this project if you have a compatible Intel Mac or OpenCore PC, an NVIDIA Turing or newer card, and experience maintaining OpenCore, unsigned kernel extensions, SIP settings, recovery media, and driver rollback. Do not choose it for unsupported hardware or as a simple Mac driver installation. Verify the card in docs/CARD-SUPPORT.md first, then confirm your OpenCore configuration and rehearse the 1401 removal workflow before installing.
Frequently asked questions
Which NVIDIA cards are supported by nullmoth/nvidia-macos-driver?
The README lists NVIDIA Turing and newer cards, including GTX 16-series, RTX 20-, 30-, 40-, and 50-series, TITAN RTX, Quadro RTX, and T-series models. Development and most testing use an RTX 5060, so users should check docs/CARD-SUPPORT.md for their specific card.
Does nullmoth/nvidia-macos-driver support Apple Silicon Macs?
No. The documented target is macOS 15 Sequoia on x86_64 systems, specifically Intel Macs and OpenCore PCs. The project does not describe Apple Silicon support.
Can I install nullmoth/nvidia-macos-driver with install.sh?
Yes, but OpenCore must already boot macOS and the required boot arguments, SIP configuration, SecureBootModel setting, Lilu.kext, and AMFIPass.kext must be configured. install.sh copies the driver files and rebuilds the Auxiliary Kernel Collection, but it does not modify OpenCore.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/nullmoth-nvidia-macos-driver)Star history chart for your README
[](https://hysenlabs.com/projects/nullmoth-nvidia-macos-driver)Was this useful?