The given way is manual in the sense you'll need to do yourself several steps through terminal and plist editor, instead of just clicking a few buttons from an installer.
You can use any injector or NVEnabler that needs no special tweaking thanks to automatic detection.
Pros :
- You now what you do
- You now what files you're using.
- The chances of success are almost 100% if you follow the guide correctly.
- You can tweak the driver for your hardware
- You learn
Cons :
- Requires 2% of a brain
Supported :
QUOTE
-Almost all models (whatever the brand is) from 4800 (not MX) to current ones are supported, including resolution change + QE/CI. Only some specific kinds of chips are not supported, see the list below.
-Support of older cards decreases as OSX versions go. Infos about OSX compatibility for each card range are detailed below.
-Support of older cards decreases as OSX versions go. Infos about OSX compatibility for each card range are detailed below.
Unsupported :
QUOTE
- Graphic controllers integrated to the chipset, with shared memory. Those models usually have a number below 300 (eg : 7150, 8200).
- Some Quadro NVS 140 (120 & 130 are the same model) & NVS 570. After investigations, it seems the problem is because of a non-standard BIOS that can't be accessed by the kext. Possible solutions are to patch the kext to point it to the right place, or make a kind of bridge to it, or hotload a BIOS image that would be used, as it's currently done for some ATIs. However, trials have been done on this side without success.
- VAIO displays. The graphic card is not responsible by itself, the problem comes from an internal display controller. Only external output can be used.
*********************************************************************
Installation guide :
Before proceeding ensure you have the right stock kexts from the right OSX version (see below the guide relevant to your card generation to know about required kexts).
If you don't and need to recover them check this thread (on the bottom).
The installation process is the same for any model, only the NVDANV kext number varies, depending on the generation.
To edit a plist it's recommended that you use "property list editor" (available in dev tools) or "plist edit pro" (available on the web) especially for NVCAP editing otherwise it won't be displayed in hexa but in base64 which is unusable, else, the default textedit is ok.
Device ID must look like this :
<key>IOPCIPrimaryMatch</key>
<string>0x01d010de 0x01d010de&0xfff0ffff 0x039010de&0xfff0ffff 0x029010de&0xfff0ffff</string>
Add your ID like the sample in red, don't bother about the ones that are already there, you can ignore or delete them.
Manually define memory size (Optionnal) :
QUOTE
If your injecter is unable to detect memory size (fixed, not including shared) you can define it yourself in the plist. String and keys are as follows :
"VRAM,totalsize" :
<00000008> - 128Mb
<00000010> - 256Mb
<00000014> - 320Mb
<00000020> - 512Mb
<00000028> - 640Mb
<00000030> - 768Mb
<00000038> - 896Mb
<00000040> - 1024Mb
<00000060> - 1,5Gb
<00000080> - 2Gb
"VRAM,totalsize" :
<00000008> - 128Mb
<00000010> - 256Mb
<00000014> - 320Mb
<00000020> - 512Mb
<00000028> - 640Mb
<00000030> - 768Mb
<00000038> - 896Mb
<00000040> - 1024Mb
<00000060> - 1,5Gb
<00000080> - 2Gb
geForce GTX 200 series (Require Leopard 10.5.7 or above):
Add your device ID in /system/library/extensions/NVDAResman.kext/contents/info.plist
Add your device ID in /system/library/extensions/NVDANV50Hal.kext/contents/info.plist
Find/download an injecter (any one will do, they're basically the same thing, only plists differ)
Add your device ID in (some_injecter.kext)/contents/info.plist
In the same plist, set the NVCAP string correctly (More informations here) and replace the IOProbeScore number by 0.
launch terminal and type
sudo chown -R root:wheel /system/library/extensions
sudo chmod -R 755 /system/library/extensions
sudo rm /system/library/extensions.mkext
reboot
geForce 8000 & 9000 & GT100 series (cards with G94 or G95 GPU require Leopard 10.5.5 build 9F2114 or above, you can also find the kexts in the 1st Macbook software update 1.2 , those with G84 or G86 need 10.5.2 with graphic update or above, or 10.4.11):
Add your device ID in /system/library/extensions/NVDAResman.kext/contents/info.plist
Add your device ID in /system/library/extensions/NVDANV50Hal.kext/contents/info.plist
Find/download an injecter (any one will do, they're basically the same thing, only plists differ)
Add your device ID in (some_injecter.kext)/contents/info.plist
In the same plist, set the NVCAP string correctly (More informations here) and replace the IOProbeScore number by 0.
launch terminal and type
sudo chown -R root:wheel /system/library/extensions
sudo chmod -R 755 /system/library/extensions
sudo rm /system/library/extensions.mkext
reboot
geForce 6000 & 7000 series (6100 and 6150 not supported) (only work in 32bit mode after 10.6.2. With Lion you must use NVDAResmanG7xxx & NVDAResmanG7xxx.kext instead) :
Add your device ID in /system/library/extensions/NVDAResman.kext/contents/info.plist
Add your device ID in /system/library/extensions/NVDANV40Hal.kext/contents/info.plist
Find/download an injecter (any one will do, they're basically the same thing, only plists differ)
Add your device ID in (some_injecter.kext)/contents/info.plist
In the same plist, set the NVCAP string correctly (More informations here) and replace the IOProbeScore number by 0.
launch terminal and type
sudo chown -R root:wheel /system/library/extensions
sudo chmod -R 755 /system/library/extensions
sudo rm /system/library/extensions.mkext
reboot
geForce 5000 series (Support dropped with 10.5.6 you must use prior kexts):
Add your device ID in /system/library/extensions/NVDAResman.kext/contents/info.plist
Add your device ID in /system/library/extensions/NVDANV30Hal.kext/contents/info.plist
Find/download an injecter (any one will do, they're basically the same thing, only plists differ)
Add your device ID in (some_injecter.kext)/contents/info.plist
In the same plist, set the NVCAP string correctly (More informations here) and replace the IOProbeScore number by 0.
launch terminal and type
sudo chown -R root:wheel /system/library/extensions
sudo chmod -R 755 /system/library/extensions
sudo rm /system/library/extensions.mkext
reboot
geForce 3000 & 4000 series (not MX models) :
Add your device ID in /system/library/extensions/NVDAResman.kext/contents/info.plist
Add your device ID in /system/library/extensions/NVDANV20Hal.kext/contents/info.plist
Find/download an injecter (any one will do, they're basically the same thing, only plists differ)
Add your device ID in (some_injecter.kext)/contents/info.plist
In the same plist, set the NVCAP string correctly (More informations here) and replace the IOProbeScore number by 0.
launch terminal and type
sudo chown -R root:wheel /system/library/extensions
sudo chmod -R 755 /system/library/extensions
sudo rm /system/library/extensions.mkext
reboot
TV out support :
TV out usually works nice with Tiger but not with Leopar. NVEnabler contains built-in TV fix, however you might still need to manually set @X,display-cfg string to get good results.
*********************************************************************
Optional infos for people who want to go further :
Here is a sample of a plist that works fine with 7600GS :
QUOTE
<key>@0,AAPL,boot-display</key>
<data></data>
<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,device_type</key>
<string>display</string>
<key>@0,display-cfg</key>
<data>//82AA==</data>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,NVMT</key>
<data>CgD/IAAAAAAgA1gCAARAA5ADAABuAlkCXAIAAEAhRwIAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAD//wAAAAAAAAAAAAABAAAAAAAAAA==</data>
<key>@1,can-hot-plug</key>
<data></data>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,device_type</key>
<string>display</string>
<key>@1,display-cfg</key>
<data>AP8+AQ==</data>
<key>@1,fboffset</key>
<data>AAACAA==</data>
<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>AAPL,aux-power-connected</key>
<data>AQAAAA==</data>
<key>AAPL,backlight-control</key>
<data>AAAAAA==</data>
<key>NVCAP</key>
<data>BAEBAAAACAAHAAAAAAAACgAAAAA=</data>
<key>NVDA,Features</key>
<data>7wIABA==</data>
<key>device_type</key>
<string>NVDA,Parent</string>
<key>model</key>
<string>NVIDIA GeForce 7600 GS</string>
<key>rom-revision</key>
<string>3011</string>
<key>saved-config</key>
<data>CgguAgAEAABBAAAAAAAAAAIGIANYAiAEKACoAHQCAQAFAAAAoA8AAAAAAAAAAAAAAAAAAAAAAAAAA
AAAP8CgAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAA==</data>
<key>subsystem-id</key>
<data>AAQAAA==</data>
<data></data>
<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,device_type</key>
<string>display</string>
<key>@0,display-cfg</key>
<data>//82AA==</data>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,NVMT</key>
<data>CgD/IAAAAAAgA1gCAARAA5ADAABuAlkCXAIAAEAhRwIAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAD//wAAAAAAAAAAAAABAAAAAAAAAA==</data>
<key>@1,can-hot-plug</key>
<data></data>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,device_type</key>
<string>display</string>
<key>@1,display-cfg</key>
<data>AP8+AQ==</data>
<key>@1,fboffset</key>
<data>AAACAA==</data>
<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>AAPL,aux-power-connected</key>
<data>AQAAAA==</data>
<key>AAPL,backlight-control</key>
<data>AAAAAA==</data>
<key>NVCAP</key>
<data>BAEBAAAACAAHAAAAAAAACgAAAAA=</data>
<key>NVDA,Features</key>
<data>7wIABA==</data>
<key>device_type</key>
<string>NVDA,Parent</string>
<key>model</key>
<string>NVIDIA GeForce 7600 GS</string>
<key>rom-revision</key>
<string>3011</string>
<key>saved-config</key>
<data>CgguAgAEAABBAAAAAAAAAAIGIANYAiAEKACoAHQCAQAFAAAAoA8AAAAAAAAAAAAAAAAAAAAAAAAAA
AAAP8CgAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAA==</data>
<key>subsystem-id</key>
<data>AAQAAA==</data>
Those values give full support with that card : dual screen + mirror mode working fine + TV out
There is 1 cons, it needs a plug/unplug of the DVI to VGA adapter at GUI so that it redetects the displays, otherwise the screen stays black. I'm still working on this problem and will update ASAP.
The keys in red are those that need particular attention because they are highly related to proper display support and vary from one model to an other.
Here is a suggestion of alternative values for the cards that are closer to the 8600GT
QUOTE
<key>@0,NVMT</key>
<data>CwN/ICLwzyaAB7AEIAiwB9AHAADTBLMEuQQAAIDaLQkAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAD//wAAAAAAAECz1QkBAAAAAAAAAAAIAAAAAAAA</data>
<key>@0,compatible</key>
<data>TlZEQSxOVk1hYw==</data>
<key>@0,device_type</key>
<data>ZGlzcGxheQ==</data>
<key>@0,display-cfg</key>
<data>AwEAAA==</data>
<key>@0,fboffset</key>
<data>AAAGAA==</data>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,device_type</key>
<data>ZGlzcGxheQ==</data>
<key>@1,display-cfg</key>
<data>//8AAQ==</data>
<key>@1,name</key>
<data>TlZEQSxEaXNwbGF5LUI=</data>
<key>AAPL,aux-power-connected</key>
<data>AQAAAA==</data>
<key>AAPL,backlight-control</key>
<data>AAAAAA==</data>
<key>NVCAP</key>
<data>BQAAAAAADAADAAAAAAAACwAAAAA=</data>
<key>NVDA,Features</key>
<data>/wJPBQ==</data>
<key>device_type</key>
<data>TlZEQSxQYXJlbnQ=</data>
<key>model</key>
<data>TlZJRElBIEdlRm9yY2UgODgwMCBHVA==</data>
<key>rom-revision</key>
<data>MzIzMw==</data>
<key>subsystem-id</key>
<data>TwUAAA==</data>
<data>CwN/ICLwzyaAB7AEIAiwB9AHAADTBLMEuQQAAIDaLQkAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAD//wAAAAAAAECz1QkBAAAAAAAAAAAIAAAAAAAA</data>
<key>@0,compatible</key>
<data>TlZEQSxOVk1hYw==</data>
<key>@0,device_type</key>
<data>ZGlzcGxheQ==</data>
<key>@0,display-cfg</key>
<data>AwEAAA==</data>
<key>@0,fboffset</key>
<data>AAAGAA==</data>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,device_type</key>
<data>ZGlzcGxheQ==</data>
<key>@1,display-cfg</key>
<data>//8AAQ==</data>
<key>@1,name</key>
<data>TlZEQSxEaXNwbGF5LUI=</data>
<key>AAPL,aux-power-connected</key>
<data>AQAAAA==</data>
<key>AAPL,backlight-control</key>
<data>AAAAAA==</data>
<key>NVCAP</key>
<data>BQAAAAAADAADAAAAAAAACwAAAAA=</data>
<key>NVDA,Features</key>
<data>/wJPBQ==</data>
<key>device_type</key>
<data>TlZEQSxQYXJlbnQ=</data>
<key>model</key>
<data>TlZJRElBIEdlRm9yY2UgODgwMCBHVA==</data>
<key>rom-revision</key>
<data>MzIzMw==</data>
<key>subsystem-id</key>
<data>TwUAAA==</data>
You'll want to insert those strings inside the plist of your injecter, using the standard text editor, in the section called <key>entriesToAdd</key> between the 2 <dict> and </dict> markups.
Those strings are encoded in base64.
Here is an attempt to detail the various strings that may be used. It may and probably does contain errors, feel free to experiment and submit your findings.
QUOTE
Mandatory data :
self explanatory // enabled if key is present, no value
@0,compatible = NVDA,NVMac
fixed
@0,device_type = display
fixed
@0,display-cfg = <ffff3600>
needs to be set for mirror mode good working, meaning unkown, known to play a role in outputs definition, must be used along with @1,display-cfg
@0,name = NVDA,Display-A
tells display on hardware channel @0 is node "Display-A"
@1,AAPL,boot-display = <>
display on channel @1 is used for boot screen // enabled if key is present, no value
@1,can-hot-plug = <>
self explanatory // enabled if key is present, no value
@1,compatible = NVDA,NVMac
fixed
@1,device_type = display
fixed
@1,display-cfg = <00ff3e01>
needs to be set for mirror mode good working
@1,name = NVDA,Display-B
tells display on hardware channel @1 is node "Display-B"
@1,fboffset = <00000200>
must be set for the logical primary display, is 200 for 7300/7600
AAPL,aux-power-connected = <01000000>
must be set to 1 otherwise the OS will warn about unplugged GFX power cord
AAPL,backlight-control = <01000000>
backlight control enabled if set to 1 (so should be 0 for PCI cards)
Internal screen specific (values taken from iMac 24" with 7600GT)
@0,EDID = <insert EDID here>
EDID in hex
@0,backlight-control = <01000000>
hardware channel 0 uses backlight control // Back light control must be enabled with AAPL,backlight-control
@0,built-in = <>
self explanatory // enabled if key is present, no value
@0,panelinfo = <00641500>
unknown
@0,use-backlight-blanking = <>
self explanatory // enabled if key is present, no value
AAPL00,DataJustify = <01000000>
unknown
AAPL00,Dither = <00000000>
enables dithering for displays that don't support 24bit colours
AAPL00,DualLink = <01000000>
enables dual link
AAPL00,Inverter = <01000000>
unknown
AAPL00,InverterCurrent = <00000000>
unknown
AAPL00,InverterFrequency = <08520000>
inverter frequency, unkown format
AAPL00,LinkFormat = <01000000>
unknown, might be the signal format
AAPL00,LinkType = <00000000>
unkown, might be the connector type
AAPL00,PixelFormat = <01000000>
unkown
AAPL00,T1 = <00000000>
AAPL00,T2 = <01000000>
AAPL00,T3 = <c8000000>
AAPL00,T4 = <c8000000>
AAPL00,T5 = <01000000>
AAPL00,T6 = <00000000>
AAPL00,T7 = <90010000>
Unkown
- @0 is hardware channel 0
- @1 is hardware channel 1
- AAPL belongs to generic display data like board or screen info.
- AAPL00 is related to internal primary display
- AAPL01 is related to internal secondary display (not seen here, used with GMA)
self explanatory // enabled if key is present, no value
@0,compatible = NVDA,NVMac
fixed
@0,device_type = display
fixed
@0,display-cfg = <ffff3600>
needs to be set for mirror mode good working, meaning unkown, known to play a role in outputs definition, must be used along with @1,display-cfg
@0,name = NVDA,Display-A
tells display on hardware channel @0 is node "Display-A"
@1,AAPL,boot-display = <>
display on channel @1 is used for boot screen // enabled if key is present, no value
@1,can-hot-plug = <>
self explanatory // enabled if key is present, no value
@1,compatible = NVDA,NVMac
fixed
@1,device_type = display
fixed
@1,display-cfg = <00ff3e01>
needs to be set for mirror mode good working
@1,name = NVDA,Display-B
tells display on hardware channel @1 is node "Display-B"
@1,fboffset = <00000200>
must be set for the logical primary display, is 200 for 7300/7600
AAPL,aux-power-connected = <01000000>
must be set to 1 otherwise the OS will warn about unplugged GFX power cord
AAPL,backlight-control = <01000000>
backlight control enabled if set to 1 (so should be 0 for PCI cards)
Internal screen specific (values taken from iMac 24" with 7600GT)
@0,EDID = <insert EDID here>
EDID in hex
@0,backlight-control = <01000000>
hardware channel 0 uses backlight control // Back light control must be enabled with AAPL,backlight-control
@0,built-in = <>
self explanatory // enabled if key is present, no value
@0,panelinfo = <00641500>
unknown
@0,use-backlight-blanking = <>
self explanatory // enabled if key is present, no value
AAPL00,DataJustify = <01000000>
unknown
AAPL00,Dither = <00000000>
enables dithering for displays that don't support 24bit colours
AAPL00,DualLink = <01000000>
enables dual link
AAPL00,Inverter = <01000000>
unknown
AAPL00,InverterCurrent = <00000000>
unknown
AAPL00,InverterFrequency = <08520000>
inverter frequency, unkown format
AAPL00,LinkFormat = <01000000>
unknown, might be the signal format
AAPL00,LinkType = <00000000>
unkown, might be the connector type
AAPL00,PixelFormat = <01000000>
unkown
AAPL00,T1 = <00000000>
AAPL00,T2 = <01000000>
AAPL00,T3 = <c8000000>
AAPL00,T4 = <c8000000>
AAPL00,T5 = <01000000>
AAPL00,T6 = <00000000>
AAPL00,T7 = <90010000>
Unkown
Last updated on 26/12/11






Feb 17 2009, 01:16 AM





