EXPERIMENTAL — MAY PANIC macOS, HANG THE GPU, OR LOSE UNSAVED DATA. This is not a usable NVIDIA driver. Linux must remain the primary operating system of the test machine, and every hardware run requires physical presence and a known-good recovery boot.
RTXDarwin is an independent, open research project attempting to bring one specific Gigabyte GeForce RTX 3060 12 GB to one frozen Hackintosh target:
- Ryzen 7 5700X;
- ASUS TUF GAMING B450M-PRO II, BIOS 4002 (reported by the Linux baseline);
- macOS Tahoe 26.6.2 build 25G83;
- SMBIOS MacPro7,1;
- NVIDIA
10de:2487, Gigabyte subsystem1458:40e2, VGA function 0.
The long-term order of proof is PCI probe → GSP/VRAM/channels → native GPU compute → NVK Vulkan Compute → one 60 Hz framebuffer → Metal compute.
The repository is at v0.0.0-dev bootstrap. It implements the safe half of
the future v0.0.1-probe release; it does not claim that the RTX 3060 has run
under macOS yet.
| Capability | Status | Evidence required to advance |
|---|---|---|
| Reproducible x86_64 kext build | Implemented and locally verified on Xcode 26.6 | CI must stay green |
| Exact PCI/subsystem/build/SMBIOS gates | Implemented; measured identity configured | Physical match/refusal tests still required |
| Read-only PCI identity and BAR-length probe | Implemented in source | 20 physical Tahoe boots, IDs matched to Linux, no panic |
Root-only ABI v1 and rtxctl probe/faults |
Implemented | Hardware output archive |
| GSP, interrupts, VRAM | Not implemented | v0.0.2-gsp gate |
| Command queue and vector-add | Not implemented; CPU fallback is explicitly forbidden | v0.1-compute gate |
| Vulkan, framebuffer, Metal | Not implemented | Later gates in the roadmap |
The default CI build uses an impossible placeholder identity and cannot attach to any GPU. An attachable build can only be generated from a validated local hardware report.
RTXDarwin.kextis an x86_64 Mach-O kext bundle with kernel module entry metadata and IOKit classes.- Probe mode only reads PCI configuration identity/class registers and BAR descriptor lengths. It does not enable bus mastering, map a BAR, write PCI configuration space, or submit work.
- The public ABI uses fixed-width fields, version/size headers, opaque 64-bit handles, fixed request sizes, overflow-safe ranges, and root-only opens.
- Only
GET_DEVICE_INFOandGET_FAULTexecute in the bootstrap. Every later ABI operation validates its envelope and returnskIOReturnUnsupported. rtxctl compute vector-add --verifyfails withEX_UNAVAILABLEand reports"cpuFallback":false; it cannot manufacture a false compute success.- The Linux collector omits hostname, serials, MAC addresses, GPU UUID, raw EDID, and VBIOS bytes.
- The firmware tool accepts only NVIDIA's official 570.144 filename and pinned SHA-256, extracts locally, and writes only under a gitignored directory.
See architecture and safety invariants.
Requirements: macOS Tahoe, Xcode 26.6, the macOS 26.5 Kernel SDK, Python 3, GNU Make, and Apple command-line tools.
make checkThis produces:
build/RTXDarwin.kext x86_64, deliberately unmatchable
build/bin/rtxctl universal arm64 + x86_64
build/bin/librtxdarwin.a universal userspace client library
Do not install the placeholder kext. To build for the measured test card:
HARDWARE_CONFIG=.local/evidence/linux-baseline.json make checkThe generator rejects a non-NVIDIA device, a non-Gigabyte subsystem, an
unknown OpenRM 570.144 RTX 3060 ID, function other than zero, placeholders,
another macOS build, or another SMBIOS.
It also rejects contradictory PCI identity fields in a full baseline.
Do not run a subsequent bare make check and install its result: that rebuilds
the intentionally unmatchable placeholder. Pass HARDWARE_CONFIG every time.
The public identity-only profile config/hardware.gigabyte-2487-40e2.json is
also built in CI, so the configured driver cannot be optimized out of every
software check. Neither CI profile is hardware evidence or a release.
From a clean committed checkout, prepare a local ZIP with a fresh configured
make check, module inspection, source/input hashes, and the Russian runbook:
python3 tools/package_probe.py --config .local/evidence/linux-baseline.jsonOutput goes under ignored outputs/. The packager never installs/loads code,
modifies EFI, signs a kext, or includes the original hardware report/firmware.
Run this from a checkout on the Linux RTX machine:
python3 tools/collect_linux_baseline.py \
--output .local/evidence/linux-baseline.jsonOptionally hash an existing VBIOS dump without copying it into the report:
python3 tools/collect_linux_baseline.py \
--vbios /path/to/existing/read-only-dump.rom \
--output .local/evidence/linux-baseline.jsonReview the JSON before sharing it. Do not add .local with git -f. The same
JSON is the input to the exact-match build generator. The full physical
procedure is in the Russian bring-up runbook.
- NVIDIA Open GPU Kernel Modules 570.144 at commit
8ec351aeb96a93a4bb69ccc12a542bf8a8df2b6f; - Mesa 26.2.0 at commit
9f0a761020bca92f2b07156a0621e5360cb8eca5; - OpenCore 1.0.7 at commit
6651fc36a8c3dca36a3231ba00679611100dbe85; - AMD Vanilla patches at commit
eaf52ef292abf4ebec899df6d48626569ba50cc6.
Run ./scripts/verify_locked_sources.sh to confirm that the upstream refs still
resolve to the lock. Run python3 tools/fetch_locked_sources.py to create
detached, shallow local checkouts under .local/sources.
OpenRM is reference material, not a drop-in Darwin driver. Its files require per-file license review before any port is committed. GSP firmware and VBIOS are never redistributed. Details are in DEPENDENCIES.lock.json and the licensing notes.
NVIDIA publishes an open kernel RM with Ampere/RTX 3060 entries and a GSP interface, and Mesa NVK supports Ampere. Those facts make research possible; they do not solve the Darwin PCI/DMA/interrupt port, display modesetting, or Apple's private GPU companion integration. Tahoe still supports the 2019 Intel Mac Pro, which preserves an x86_64 macOS target, but Metal registration remains the highest-risk milestone.
Primary references: NVIDIA Open GPU Kernel Modules, Mesa NVK, and Apple Tahoe compatibility.
RTXDarwin's original source is available under the MIT License. Third-party software and firmware retain their own terms. RTXDarwin is not affiliated with Apple, NVIDIA, Gigabyte, or Mesa.