MULTIPLE NVIDIA card installation


IMPORTANT, READ INSTRUCTIONS FROM START TO FINISH BEFORE BEGINNING

part one:

getting card details

use a program called textwrangler, google it, it's an excellent text editor with some
features that will make following this guide alot easier for yourself I promise you,

Creat a text file on your desktop called whatever, i'll call mine info.txt

now copy the corresponding string between the < > below of the Video RAM size your
video card has labelled as "video ram":
the digit after 0x are multiples of 256, the ones after 0x0 are multiples of 16.
<0x08000000> - 128Mb
<0x10000000> - 256Mb
<0x14000000> - 320Mb
<0x20000000> - 512Mb
<0x28000000> - 640Mb
<0x30000000> - 768Mb
<0x38000000> - 896Mb
<0x50000000> - 1280Mb
<0x60000000> - 1536Mb

next choose the type of outputs on the particular card labelled as "connectors":
the connector layout: Mainboard side of card / SLI connector side of card
<BAAAAAAAAwAMAAAAAAAABwAAAAA=> - DVI-I / DVI-I
<BAAAAAAAAQAGAAAAAAAAAAAAAAA=> - VGA / DVI-I
<BAAAAAAAAwAEAAAAAAAABwAAAAA=> - DVI-I / VGA

now complete part one for your second card if you are going with 2 cards, and remember
to keep the details for each card clearly labelled for that card.

Part two:

getting the card location

if your going to use 2 cards, you must do this step twice, starting with your primary
card inserted into your PC without the secondary card in the system, then repeat the
process with the secondary card in the secondary slot it will occupy with the primary
card removed. so in short, get first card location, swap out the card then get the
secondary card location.

this is how:

you need root access, go here to learn how to get it: support.apple.com/kb/ht1528
with your primary or only card installed in the slot you intend to use it in, extract
gfxutil to your desktop, open terminal and type:

su [hit enter]

[enter your root password then hit enter]

cd \Users\[your username]\Desktop\ [hit enter]

./gfxutil -f display [hit enter]

OK once you enter that last line you should get an outpu on screen like:

PciRoot(0x4)/Pci(0x1,0x0)/Pci(0x0,0x0)

label it as "location"

copy it by dragin over with your mouse and right click, copy, then paste into you text
file "info.txt" you recorded you video card details to, if using 2 cards make sure it's
labelled for the card currently in your system then repeat with your second card fitted
to it's slot again, only if you going to use 2 cards.

Your almost done, your info.txt should read something like this:

card a

video ram:0x20000000
connectors:BAAAAAAAAwAMAAAAAAAABwAAAAA=
location:PciRoot(0x4)/Pci(6x1,0x0)/Pci(0x0,0x0)

card b (only if using 2 cards)

video ram:0x20000000
connectors:BAAAAAAAAwAMAAAAAAAABwAAAAA=
location:PciRoot(0x4)/Pci(0x6,0x0)/Pci(0x0,0x0)


part three:

modding the in.plist

this is the part where you cop over your collected data to the template in.plist file.
open it with textwrangler.

locate the text "LOCATION" and paste your location info in it's place.

locate the text "VRAMINFO" and paste your video ram info in it's place.

locate the text "CONNECTORS" and paste your connectors info in it's place.

locate the text "VIDEOCARDNAME" and paste your video card name in it's place.
<key>model</key>
<string>NVIDIA GeForce GTX 275 - 896MB</string> for example.

now if your only using one video card you can delete everything after "</dict>" up until the second
occurrence of </dict>so there will be a total of 2 x </dict> at the end of the file like this:

</dict>
</dict>
</plist>

now procede to part four.

If your using 2 video cards, do the same again for card b

locate the text "LOCATIONB" and paste your location info in it's place.

locate the text "VRAMINFOB" and paste your video ram info in it's place.

locate the text "CONNECTORSB" and paste your connectors info in it's place.

locate the text "VIDEOCARDNAMEB" and paste your video card name in it's place.
<key>model</key>
<string>NVIDIA GeForce 8800GT- 512MB</string> for example.


part four:

this part is where you convert your in.plist to an EFI string.

save your info.txt and in.plist.

Open terminal again with root access and type:

cd /Users/[your username]/Desktop/

./gfxutil -i xml -o hex ./in.plist ./out.hex

ok, now open the out.hex file with textedit, hit Command + A to select all and Command + C
to copy to your clipboard.

go back to terminal and type:

nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

this opens up the nano text editor, use the arrow keys to go </dict> and enter a line
above it indented just like the others above that, and enter:

<key>device-properties</key>
<string>"PASTE EFI STRING HERE"</string>

so when your done it will look like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
<key>Graphics Mode</key>
<string>1920x1200x32</string>
<key>GraphicsEnabler</key>
<string>Yes</string>
<key>Kernel Flags</key>
<string></string>
<key>device-properties</key>
<string>ce0700000100000002000000e20300001500000002010c00d041030a04</string>
</plist>

The EFI string you paste may look wierd but as long as it has no leading or trailing
spaces between <string>and</string> you all good.

now to save the file, you press Control + X, then hit Y to confirm overwrite of old file.

Your done. Shutdown the PC, install all video cards into their slots and Boot the PC, and it
should work, if not, try NVEnabler.kext for single cards, or research the forums and OSX
HCL pages on the OSX86 Wiki links above. This is AFAIK the only way to get 2 differing
NVIDIA cards to work in the same OSX system.