NullMoth NVIDIA macOS 驱动
一款面向 Intel Mac 及运行 macOS 15 Sequoia 的 OpenCore 系统、支持 NVIDIA Turing 及之后架构显卡的 Metal 驱动。 设备表涵盖 GTX 16、RTX 20/30/40/50、TITAN RTX 以及受支持的 Quadro/RTX 工作站显卡。 你的 NVIDIA 显卡将像 Apple 官方支持的 GPU 一样驱动桌面、Metal 应用、游戏、Core ML/MPS 和 OpenCL。
由 NullMoth Systems 开发。
在 Windows 上安装 macOS?请使用 1401:https://github.com/nullmoth/1401
此驱动尚新,可能并非在所有 PC 上都能工作。 它已在 RTX 5060 上于 macOS 15.7.x 和 15.8.1 下完成测试。设备表覆盖范围比实际硬件验证更广,参见显卡支持。如果你的 PC 尚不能通过 OpenCore 引导 macOS,请先按照 OpenCore 安装指南(OpenCore 发布页)完成配置,再安装本驱动。驱动工作原理的完整说明见
docs/HOW-IT-WORKS.md。
支持开发工作:https://buymeacoffee.com/nullmoth
| macOS | 15 Sequoia(已测试 15.7.x 和 15.8.1),x86_64 |
| GPU | GSP 设备表中的 NVIDIA Turing 及之后显卡;已实测:RTX 5060 |
| Metal | Metal 3:argument buffers tier 2、光线追踪、mesh shaders、MPS、MetalFX 路径 |
| 其他 | OpenGL(经 Apple 的 GL-on-Metal)、OpenCL、Core Image、Core ML |
工作原理
Metal 应用 ─► NVMTLDriver.bundle ─► 翻译器(Apple AIR → SPIR-V)─► NVK(Mesa Vulkan + NAK 编译器)─► kexts ─► GPU
| 组件 | 磁盘路径 | 源码 |
|---|---|---|
| Metal 驱动插件 | /Library/GPUBundles/NVMTLDriver.bundle | plugin/ |
| 着色器翻译器 | 插件内(libnvmtl_translate.dylib) | translator/(LGPL-3.0,基于 metal2vulkan) |
| Vulkan 后端(NVK) | /Library/GPUBundles/nvmtl/ | Mesa 17ca6174 上的 nvk/nvk-macos.patch |
| 内核扩展 | /Library/Extensions/NVRM, NVAccel, NVRMFB, NVRMAGDC | kexts/ |
| GPU 固件(GSP) | /Users/Shared/nvfw/nvidia/610.57.04 | NVIDIA,未修改 |
内核侧在 macOS 下运行 NVIDIA 自家的开源 GPU 内核模块(r610)。NVRMFB 是显示帧缓冲,NVAccel 是 WindowServer 合成所用的加速器,NVRMAGDC 是显示策略垫片。
安装——预编译版(推荐)
从 Releases 下载 nullmoth-nvidia-<version>.tar.gz,然后:
tar -xzf nullmoth-nvidia-*.tar.gz && cd pkgroot
shasum -a 256 -c SHA256SUMS # 每个文件必须显示 OK
sudo ./install.sh # 复制文件并重建 Auxiliary Kernel Collection
sudo shutdown -r now # 需要重启:注销不会加载驱动
macOS 首次会要求你在"系统设置 → 隐私与安全性"中允许这些扩展。允许后再次重启。
1401 Mac 应用(最简单)
从 Releases 下载最新的 1401-Mac-<version>.dmg,打开并运行 1401(驱动包已包含在磁盘映像中,无需另外下载)。按其四个步骤操作即可。它适用于任何 OpenCore 配置,无论该配置由 1401 还是你自己搭建:它会找到启动你 Mac 的 OpenCore(位于 EFI 或 FAT32 分区的 EFI/OC 或 EFI/BOOT),在做出任何更改前逐一展示,备份配置,安装驱动,并向 OpenCore 启动选择器添加 1401: Remove NVIDIA driver 条目。选择该条目将在下次启动时移除驱动,把 Mac 完全恢复到安装前的状态(包括 OpenCore 配置),然后自动重启。该应用还会映射你的 USB 端口,并且如果驱动曾导致 Mac 崩溃,会提供生成崩溃报告的选项供你自行上传(它绝不会自行发送任何内容)。
遇到问题? 打开 1401 > Crash report > Send logs to NullMoth。它会发送 1401 做了什么、驱动状态、驱动崩溃报告、最近的 WindowServer 崩溃报告以及 OpenCore 启动日志(已移除姓名、序列号和地址),每项都附带站点校验的 SHA-256,并显示一个可在 NullMoth Discord 中引用的报告 ID。
macOS 26 Tahoe(测试版): 软件包内含 Tahoe 版 NVAccel。在系统设置中升级前请点击 Prepare this Mac for Tahoe;Tahoe 首次启动时会设置驱动并重启一次。尚未在实机上测试。
应用运行期间请保持 OpenCore 启动所用的 U 盘或磁盘处于连接状态:那正是它要修改的配置。它只编辑 SMBIOS 机型与本机匹配的配置,若未检测到则停止。安装完成后重启;首次带驱动启动时会在"PCI configuration end"处暂停最多一分钟,等待 GPU 初始化。
接入现有 OpenCore 配置
这些 kext 安装到 /Library/Extensions 并从 Auxiliary Kernel Collection 加载——不要同时从 EFI/OC/Kexts 注入。OpenCore 只需设置 SIP 和 boot-args。
NVRAM → Add → 7C436110-AB2A-4BBB-A880-FE41995C9F82
| 键 | 值 | 原因 |
|---|---|---|
csr-active-config | <430A0000>(Data) | 已测试的值:允许未签名 kext,外加 root 补丁所需 |
boot-args | nvfb=1 nvaccel=1 nvfbheads=4 -nvkmsnosmooth amfi_get_out_of_my_way=0x1 amfi=0x80 | 帧缓冲 + 加速器,4 个显示头;AMFI 参数让 WindowServer 能加载驱动包 |
把你设置的每个键同时加入 NVRAM → Delete,确保每次启动时重新写入。
| 设置 | 值 | 原因 |
|---|---|---|
UEFI → Quirks → ResizeGpuBars | 13 | 8 GB BAR:完整内存带宽(已在 RTX 5060 上测试) |
Booter → Quirks → ResizeAppleGpuBars | -1 | macOS 可见完整 BAR |
Kernel → Block | com.apple.iokit.IONDRVSupport,Strategy Exclude | 否则固件帧缓冲会抢占 NVRMFB 的显示索引 0 |
Misc → Security → SecureBootModel | Disabled | Apple 安全启动会拒绝非 Apple 签名的 kext |
macOS 安装器需要相反的 BAR 设置(ResizeAppleGpuBars 设为 0、ResizeGpuBars 设为 -1、不排除 IONDRVSupport):它没有 NVIDIA 驱动,运行在固件屏幕上。1401 构建安装器时即采用该方式,1401 Mac 应用在安装驱动时切换到上述值。
还需要:
- BIOS: Above 4G Decoding 开启(显卡会映射 4 GB 以上内存),CSM 关闭。
- SMBIOS: 选择一个可运行 macOS 15 且带独立显卡的 Mac 机型(已测试:
iMacPro1,1,1401 使用该机型)。 - 移除任何
nv_disable=1、WhateverGreen NVIDIA 补丁或该卡对应的agdpmod=pikera。 - NVIDIA 显卡无需
DeviceProperties。
重启后验证:
kmutil showloaded --list-only | grep nullmoth # 4 行
system_profiler SPDisplaysDataType | head -20 # 你的 GeForce,Metal: supported
双系统
驱动不会触碰其他磁盘。OpenCore 选择器可与 macOS 一起引导 Windows(ScanPolicy 设 0 或包含 NTFS)和 Linux(在 UEFI → Drivers 中加入 OpenLinuxBoot.efi,LauncherOption = Full)。
卸载
sudo ./uninstall.sh && sudo shutdown -r now
从源码构建
需要 Xcode 16、Rust(stable)、Meson/Ninja,以及标签为 610.57.04 的 NVIDIA open-gpu-kernel-modules。
build/build_xlate.sh # 翻译器 -> libnvmtl_translate.dylib
RELEASE=1 build/build_plugin.sh # 插件 -> NVMTLDriver.bundle(RELEASE=1 移除所有诊断输出)
build/build263.sh # NVK:先对 Mesa 17ca6174 应用 nvk/nvk-macos.patch
build/accel_build.sh <src> <out> # kexts
许可证
免费使用,附带源码。任何人不得出售该软件或将其用于牟利。
plugin/、kexts/、build/、package/:PolyForm Noncommercial 1.0.0(见LICENSE),© NullMoth Systems。允许个人、研究、教育及非营利使用;禁止任何商业使用。translator/:LGPL-3.0-or-later(见translator/LICENSE):基于 metal2vulkan,其许可证随之沿用。nvk/:对 Mesa 的修改(MIT)。- GSP 固件:NVIDIA 可再分发固件许可证。
第三方致谢见 NOTICE。