ESC
开源 3 分钟阅读

nvidia-macos-driver:为 macOS 15 Sequoia(Intel / OpenCore)打造的 NVIDIA GeForce RTX Metal 驱动,免费且开源

NullMoth Systems 发布免费开源的 Metal 驱动,让 NVIDIA Turing 及之后架构显卡(GTX 16、RTX 20/30/40/50、TITAN RTX 等)在 Intel Mac 与 OpenCore 黑苹果上运行 macOS 15 Sequoia,支持 Metal 3、光线追踪、Core ML、OpenGL、OpenCL。驱动将 Apple AIR 着色器翻译为 S

来源:GitHub

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

macOS15 Sequoia(已测试 15.7.x 和 15.8.1),x86_64
GPUGSP 设备表中的 NVIDIA Turing 及之后显卡;已实测:RTX 5060
MetalMetal 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.bundleplugin/
着色器翻译器插件内(libnvmtl_translate.dylib)translator/(LGPL-3.0,基于 metal2vulkan)
Vulkan 后端(NVK)/Library/GPUBundles/nvmtl/Mesa 17ca6174 上的 nvk/nvk-macos.patch
内核扩展/Library/Extensions/NVRM, NVAccel, NVRMFB, NVRMAGDCkexts/
GPU 固件(GSP)/Users/Shared/nvfw/nvidia/610.57.04NVIDIA,未修改

内核侧在 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-argsnvfb=1 nvaccel=1 nvfbheads=4 -nvkmsnosmooth amfi_get_out_of_my_way=0x1 amfi=0x80帧缓冲 + 加速器,4 个显示头;AMFI 参数让 WindowServer 能加载驱动包

把你设置的每个键同时加入 NVRAM → Delete,确保每次启动时重新写入。

设置值原因
UEFI → Quirks → ResizeGpuBars138 GB BAR:完整内存带宽(已在 RTX 5060 上测试)
Booter → Quirks → ResizeAppleGpuBars-1macOS 可见完整 BAR
Kernel → Blockcom.apple.iokit.IONDRVSupport,Strategy Exclude否则固件帧缓冲会抢占 NVRMFB 的显示索引 0
Misc → Security → SecureBootModelDisabledApple 安全启动会拒绝非 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。