I'm a long time lurker on these forums and over the years have installed osx on lots of pc's
all good fun and thought i'd give a little back,
There are some poeple who have written good guides and how-to's on EFI strings method
for nVidia video card recongnition in OSX, most of them don't cover all the bases and
usually focus on a single card or specific setup.
My aim in this guide is to be broad in demonstrating installation of all nVidia cards with the
EFI string method and also who how to do it with multi card setups too, I aim to show all
the necessary commands in the terminal in order for a complete noob to be able to
understand and confidently follow along.
Please note this guide is only for the EFI string preparation and installation into the
apple.com.Boot.plist file. Any thing to do with customisation of KEXTS is not part of this
guide, so be sure to check the usual places for custom KEXTs if needed, Some good
places to start:
www.osx86.net - formerly www.kexts.com
and most importantly
in.plist -modded but sourced from "agrafuese" from their insanelymac forum guide.
textwrangler - google it.
IMPORTANT, READ INSTRUCTIONS FROM START TO FINISH BEFORE BEGINNING
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.
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:
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 b (only if using 2 cards)
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.
<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:
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.
<string>NVIDIA GeForce 8800GT- 512MB</string> for example.
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.
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.
NVIDIA EFI Strings - HOWTO.zip