Installation Guide
Terminal basics
Kext list
Install a kernel:
CODE
sudo cp /Users/<username>/Downloads/<kernelname> /<kernelname>
sudo chown root:wheel /<kernelname>
sudo chmod 644 /<kernelname>
sudo chown root:wheel /<kernelname>
sudo chmod 644 /<kernelname>
Install a kext:
drag and drop the .kext into the /System/Library/Extensions/ folder, click "authenticate" if it asks you to. Type your password, then open a terminal and type:
CODE
sudo chown -R root:wheel /System/Library/Extensions/<kextname>.kext
sudo chmod -R 755 /System/Library/Extensions/<kextname>.kext
sudo chmod -R 755 /System/Library/Extensions/<kextname>.kext
Add a vendor/device ID combo into a plist:
First you must go *into* the kext, as kexts are merely folders containing other things
You can cd into the kext directory, and then deeper into the Contents directory, to be in the same directory as the Info.plist. For the purpose of explanation, we'll go into the NVDAResman.kext.
CODE
cd /System/Library/Extensions/NVDAResman.kext/Contents/
If you were to cat the the Info.plist then you would see the following: (notice in hot pink the list of vendor/device ID combos that this device supports.)
QUOTE
bender:/ realityiswhere$ cd /System/Library/Extensions/NVDAResman.kext/Contents/
bender:Contents realityiswhere$ cat Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>NVDAResman</string>
<key>CFBundleGetInfoString</key>
<string>NVDAResman 1.5.36.25 (17.3.5f14)</string>
<key>CFBundleIdentifier</key>
<string>com.apple.NVDAResman</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>NVIDIA Resman Kernel Extension</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.5.36</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>5.3.6</string>
<key>IOKitPersonalities</key>
<dict>
<key>NVidiaRM</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.NVDAResman</string>
<key>IOClass</key>
<string>NVDA</string>
<key>IOMatchCategory</key>
<string>IOFramebuffer</string>
<key>IONameMatch</key>
<array>
<string>MNCA,GeForce2MX</string>
<string>NVDA,NVMac</string>
</array>
<key>IOProbeScore</key>
<integer>60000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>
<key>NVidiaRMPCIMatch</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.NVDAResman</string>
<key>IOClass</key>
<string>NVDA</string>
<key>IOMatchCategory</key>
<string>IOFramebuffer</string>
<key>IONameMatched</key>
<string>NVDA,NVMac</string>
<key>IOPCIPrimaryMatch</key>
<string>0x011010de&0xfff8ffff 0x017010de&0xfff8ffff 0x017910de 0x018010de&0xfff8ffff 0x018810de 0x018910de 0x020010de&0xfff8ffff 0x025010de&0xfff8ffff 0x028010de&0xfff8ffff 0x030010de&0xfff8ffff 0x031010de&0xfff8ffff 0x031910de 0x034910de</string>
<key>IOProbeScore</key>
<integer>50000</integer>
<key>IOPropertyMatch</key>
<dict>
<key>name</key>
<string>display</string>
</dict>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>
<key>NVidiaRMTwinView</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.NVDAResman</string>
<key>IOClass</key>
<string>NVDA</string>
<key>IOMatchCategory</key>
<string>IOFramebuffer</string>
<key>IONameMatch</key>
<array>
<string>MNCA,GeForce2MX</string>
<string>NVDA,NVMac</string>
</array>
<key>IOProbeScore</key>
<integer>60000</integer>
<key>IOProviderClass</key>
<string>IONDRVDevice</string>
</dict>
</dict>
<key>OSBundleCompatibleVersion</key>
<string>1.2.0</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IOGraphicsFamily</key>
<string>1.5</string>
<key>com.apple.iokit.IONDRVSupport</key>
<string>1.5</string>
<key>com.apple.iokit.IOPCIFamily</key>
<string>2.4</string>
<key>com.apple.kpi.bsd</key>
<string>9.0.0</string>
<key>com.apple.kpi.iokit</key>
<string>9.0.0</string>
<key>com.apple.kpi.libkern</key>
<string>9.0.0</string>
<key>com.apple.kpi.mach</key>
<string>9.0.0</string>
</dict>
<key>OSBundleRequired</key>
<string>Safe Boot</string>
</dict>
</plist>
bender:Contents realityiswhere$
bender:Contents realityiswhere$ cat Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>NVDAResman</string>
<key>CFBundleGetInfoString</key>
<string>NVDAResman 1.5.36.25 (17.3.5f14)</string>
<key>CFBundleIdentifier</key>
<string>com.apple.NVDAResman</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>NVIDIA Resman Kernel Extension</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.5.36</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>5.3.6</string>
<key>IOKitPersonalities</key>
<dict>
<key>NVidiaRM</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.NVDAResman</string>
<key>IOClass</key>
<string>NVDA</string>
<key>IOMatchCategory</key>
<string>IOFramebuffer</string>
<key>IONameMatch</key>
<array>
<string>MNCA,GeForce2MX</string>
<string>NVDA,NVMac</string>
</array>
<key>IOProbeScore</key>
<integer>60000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>
<key>NVidiaRMPCIMatch</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.NVDAResman</string>
<key>IOClass</key>
<string>NVDA</string>
<key>IOMatchCategory</key>
<string>IOFramebuffer</string>
<key>IONameMatched</key>
<string>NVDA,NVMac</string>
<key>IOPCIPrimaryMatch</key>
<string>0x011010de&0xfff8ffff 0x017010de&0xfff8ffff 0x017910de 0x018010de&0xfff8ffff 0x018810de 0x018910de 0x020010de&0xfff8ffff 0x025010de&0xfff8ffff 0x028010de&0xfff8ffff 0x030010de&0xfff8ffff 0x031010de&0xfff8ffff 0x031910de 0x034910de</string>
<key>IOProbeScore</key>
<integer>50000</integer>
<key>IOPropertyMatch</key>
<dict>
<key>name</key>
<string>display</string>
</dict>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>
<key>NVidiaRMTwinView</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.NVDAResman</string>
<key>IOClass</key>
<string>NVDA</string>
<key>IOMatchCategory</key>
<string>IOFramebuffer</string>
<key>IONameMatch</key>
<array>
<string>MNCA,GeForce2MX</string>
<string>NVDA,NVMac</string>
</array>
<key>IOProbeScore</key>
<integer>60000</integer>
<key>IOProviderClass</key>
<string>IONDRVDevice</string>
</dict>
</dict>
<key>OSBundleCompatibleVersion</key>
<string>1.2.0</string>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IOGraphicsFamily</key>
<string>1.5</string>
<key>com.apple.iokit.IONDRVSupport</key>
<string>1.5</string>
<key>com.apple.iokit.IOPCIFamily</key>
<string>2.4</string>
<key>com.apple.kpi.bsd</key>
<string>9.0.0</string>
<key>com.apple.kpi.iokit</key>
<string>9.0.0</string>
<key>com.apple.kpi.libkern</key>
<string>9.0.0</string>
<key>com.apple.kpi.mach</key>
<string>9.0.0</string>
</dict>
<key>OSBundleRequired</key>
<string>Safe Boot</string>
</dict>
</plist>
bender:Contents realityiswhere$
We can take a look at the PCI Database to find out information about the first one in the list (again, as an example) 0x011010de . Also, note the key that these IDs are found under, IOPCIPrimaryMatch. Ignore the 0x, this just signifies it's a hex code, the first four after the hex are 0110, this is a device id, and the 10de is the vendor ID. More information on the specifics can be found at Wikipedia. Basically, the device/vendor ID combination is very specific to that one device, and every PCI device (meaning a device that uses a PCI bus, not just "PCI" specifically). Section 2A of this page describes how you can find these IDs under Linux or Windows. What we are doing by editing these plists are forcing the PCI bus to match ( IOPCIPrimaryMatch ) against the hardcoded IDs on the device.
Usually all that's required for these pre-existing kernel extensions to act as a driver for normal PC hardware is for the device/vendor ID combo to be added to the requisite kext's info.plist, and sometimes an injector. B166ER shows some of the details about adding in Nvidia driver functionality using this exact explained method in this topic.
Make hidden files visible:
CODE
defaults write com.apple.finder AppleShowAllFiles TRUE
How to update properly
Some OSx86 history
Set your partition to Active using fdisk:
1. Boot the installation dvd for Mac OS X.
2. When you get to the installation screen click Utilities, and then Terminal.
3. Type
CODE
diskutil list
to show a list of your disks and partitions,