Kext Mod

How To Add Support for Specific Hardware in OS X Extension

When and Why it needs to be done

Some cards can be made to work in OS X with custom ROM, however OS X extensions does not support the card's hardwired device ID, so it would result in a Kernel Panic at boot. If the card is close to another officially supported card in OS X or use the same GPU, there's an easy hack which will allow it to operate in OS X.

* Here is a concrete example:

NVIDIA Quadro 4 (nv25) series, the card is very close to GeForce 4 Ti series, using same GPU and PCB layout. Some even have dual DVI outputs.
Custom GeForce 4 Ti ROM will make the card work as a Mac Card, but a Kernel Panic will happen every time you try to boot with original NVIDIA extensions.

* What you need:

o Know the hardware Device ID of your card
o Have your card flashed and working with a Mac ROM, you can test your card in OS 9 (currently available ROM for Quadro 4 700 XGL)
o have XCODE tools installed (available on original OS X install CD or DVD), you only need Property List Editor for this hack.

* Here we will continue to deal with the Quadro 4 700 XGL

o Device ID of the card is 025B (Quadro 4 700 XGL) 10DE (NVIDIA)
o ROM is available in the WikiDownloads
o Quadro 4 / GeForce 4 Ti series will use 2 OS X extensions to operate. First is NVDAResman.kext (used by every NVIDIA card), second is NVDANV20Hal.kext (specific kernel extension for GeForce 4 series / NV2x GPUs)

Before you physically install your Mac flashed card, let's proceed with the Extensions hack.

1. Go to your root disk (OS X installation) and go to folder /System/Library/Extensions
2. Back up the extensions you're going to modifiy (here NVDAResman.kext and NVDANV20Hal.kext). Keep one copy of each in a safe place, and one copy of each in your desktop. Last 2 copies are going to be edited.
3. Right-Click on the first extension you copied on your desktop and use "show package content" option. The extension will open as a classic folder.


Open the "Contents" folder and Open the file Info.plist with Property List Editor.


4. Add your hardware Device ID in the Info.plist file with Property List Editor :
- Click on the arrow to show the file content until you see this string : IOPCIMatch


- and add your card's device ID as shown (here 025B 10DE)

5. Save the edited Info.plist and proceed the same way with the second extension.
6. Copy the edited extensions packages back to your Extensions folder ( /System/Library/Extensions ), OS X will ask you the administrator password.
7. Use Disk Utility or Terminal command line to repair OS X permissions and shut your Mac down.
8. Install you card, boot and enjoy !


This method has been tested with OS X Panther 10.3.0 and OS X Tiger 10.4.8
Other NVIDIA cards might need to edit other files the same way, depending on the OS X extensions they rely on.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.