This guide was not originally intended for Snow Leopard, so if you've come here looking for an SL solution, your results may vary. For SL, I recommend researching the Chameleon Bootloader (preferably RC3, the most current version as of this writing), and loading your hardware via a DSDT patch. That is the most preferred way to run the 8800GT now (as well as other hardware), and is a verified 100% working solution.
There are countless guides on how to make this happen by guys much more knowledgeable than myself. Doing a search will be sure to bring up lots of helpful information. If you don't want to try DSDT patching, the (old) EFI methods described in this guide may or may not still work for you in SL, but I offer no promises. As time goes on, this guide will be visited by fewer and fewer people, and it may be a good idea to move on to more current methods that are more widely supported.
UPDATE #1 (6/24/08):
There's a new app for building and integrating EFI strings for most cards, including the 8800GT. I haven't tried it, but if it works as promised, it should make my tutorial obsolete. Please try it first. If you can't get it to work properly, then come back and try my tutorial. Thanks to karaakeha1 for pointing this out!
DOWNLOAD EFI STUDIO HERE
NVIDIA GeForce 8800GT 512MB (G92) GFX-EFI Tutorial
This is version 2.0 of the tutorial, updated on 5/31/08.
NOTE #1: This is not a generic 8800GT support thread. It's for people who want to use GFX-EFI strings for their 8800GT instead of NVinject. If you are coming here for 8800GT support, please make sure you are not using NVinject or one of the package installers out there (i.e. NVinstaller, etc.). This tutorial is for users of the EFI strings only, and if you are coming here reporting problems with NVinject or a package installer, you are going to cause more confusion here, as well as within the community.
NOTE #2: See Appendix at the end of the tutorial for more information about GFX-EFI strings in general (i.e. when to use them, why you need them, advantages, disadvantages, etc.)
After many days of discussion over in my other 8800GT-related thread, I decided that a 8800GT GFX-EFI tutorial was needed in order to clarify a few things for some users. So here it is! I want to thank cyclonefr, macgirl, netkas, and most of all zephyroth for their original files, guides, and knowledge. Without them, this tutorial would not have been possible.
DISCLAIMER: This tutorial is provided as a means of helping other users. I am NOT responsible for any damage you do to your Leopard installation or your computer. Proceed at your own risk.
Before you continue, make sure you meet the following requirements:
- Intel or AMD hackintosh. This method will work for either platform, but I don't want to see real Mac users coming here trying to do something with this tutorial. This is not for you!
- Leopard 10.5.2 (9.2.0 kernel) or higher installed. 10.5.3 or higher recommended.
- A stable, working system so that you can rule out all other issues if this tutorial doesn't work for you.
- EFI v8 installed and working. Other versions of EFI are not supported.
- 8800GT with 512MB (256MB/1GB versions are not supported by this tutorial)
- You must be comfortable with the Terminal. We'll be using it quite a bit in this tutorial, so if you aren't familiar with it, you may want to stop now or get a friend to help you
For ALL users:
8800GT_EFI_Pack_v2.zip 42.89KB 6079 downloads
The following files are included in this pack:
- 8800GT plist files - one by me and one by cyclonefr
- gfxutil - needed to get your device path and to create your GFX string
- CPUID patcher for AMD systems ONLY (warning Intel users: DO NOT use these files)
Download the Leopard Graphics Update from Apple HERE. Do not install it yet!
Download my 8800GT Kexts Pack HERE. (This pack includes GeForce & NVidia kexts with 8800GT device ID pre-added by me. It is not needed for 10.5.3 users.)
STEP 1: Plugging into the correct DVI port
The most important step in this tutorial is choosing the correct DVI port to plug your monitor into. The correct port will be the one closest to the motherboard when the card is installed (considered DVI port #1). If you are not plugged into this port, you may experience problems (unchangeable resolutions, blue screen, color calibration problems, etc). You will still be able to use the other port for dual monitor setups, but only if you have both monitors plugged in at the same time. The reason for this is not clearly defined, but it is believed that this is a bug that may even affect real mac users.
STEP 2: Choosing a plist
First, unzip my 8800GT EFI Pack to your desktop. Do not unzip it into any other folders or anywhere else! Go into the subfolder called "gfxutil". You will see two plist files here to choose from - one plist file by cyclonefr and one by me. Typically, you will want to choose the one by cyclonefr. If you have problems with it later, you can go back to this step and try mine. There are some differences between the two files. Mainly, cyclonefr's plist is taken from a genuine Mac Pro 8800GT, and mine is a generic plist (courtesy of zephyroth) that I edited. Whichever one you choose, rename it to "in.plist" then open it up using TextEdit. We'll come back to this later.
STEP 3: Creating the string
When creating a GFX-EFI string, the first thing you need is the device path to your video card. To get this, go into Terminal and type the following:
sudo -s [enter your password at the prompt] cd ~/Desktop/8800GT_EFI_Pack_v2/gfxutil/ ./gfxutil -f display
You should see an output line similar to the following. Copy the entire line WITHOUT the "DevicePath = " part:
Now go back to the "in.plist" file and paste it where you see the text that says "PASTE DEVICE PATH HERE". The entire line should now look something like this:
Save the in.plist file now and close it. Next, go back to the Terminal and type:
./gfxutil -i xml -o hex ./in.plist ./out.hex
This will create a file called "out.hex" in the gfxutil folder. Go to that file now and open it in TextEdit. You will see a very long string of characters here. Copy the ENTIRE string, making sure not to leave any part of it out!
STEP 4: Inserting the string
Once you've copied the string, go back to the Terminal and type the following:
You will now be in a shell editor with a bunch of text. The last two lines should look like this:
ABOVE these two lines, add the following:
<key>device-properties</key> <string>PASTE THE STRING FROM OUT.HEX HERE!</string>
Make sure to paste the string from "out.hex" as indicated. It should be one continuous line, free of any spaces or hard returns. Now press CONTROL + X and press Y at the prompt, then hit ENTER to save the file.
You are almost done now. If you have NVinject.kext inside your Extensions folder, you must remove it first with the Terminal command below. If you are not sure whether or not you have it, you can use this command anyway:
rm -rf /System/Library/Extensions/NVinject.kext
10.5.2 USERS: Skip to Step 6.
10.5.3 AMD USERS: Go to Step 5.
10.5.3 INTEL USERS: Reboot your system by typing "reboot" at the prompt. When your system restarts, boot with the -f flag to rebuild kext cache information. When Leopard loads up, your 8800GT should be fully working with scalable resolutions, dual monitor support, and QE/CI!
STEP 5: 10.5.3 AMD USERS ONLY!
Reboot your system by typing "reboot" at the prompt. When your system restarts, boot with the -s flag for single-user mode. When you see the command prompt, type the following:
/sbin/mount -uw / cd /Users/Your user name/Desktop/8800GT_EFI_Pack_v2/patches/ ./patcher cpuid.txt reboot
This step patches some of the OpenGL files and is required for all AMD users. When your system reboots again, use the -f flag to rebuild kext cache information. Leopard should now boot to the desktop and your 8800GT should be fully working with scalable resolutions, dual monitor support, and QE/CI!
STEP 6 (for 10.5.2 users only): Installing the Graphics Update and replacing the video kexts
First, unzip my 8800GT Kexts Pack to your desktop. Do not unzip it into any other folders or anywhere else! Leave these files alone for now - we'll come back to them later.
Next, run the Leopard Graphics Update and follow the instructions to install it. When it finishes, restart your computer and boot with the -s flag (single user mode). When you see the command prompt, type the following:
/sbin/mount -uw / cd /System/Library/Extensions/ mkdir ../Extensions.update/ mv Ge* ../Extensions.update/ mv NV* ../Extensions.update/
In this step, we are making a new folder and moving the newly installed video kexts into it. This will back them up in case you need them later for some reason. Next, type:
cd /Users/Your user name/Desktop/8800GT_Kexts_Pack/ chown -R 0:0 * chmod -R 755 * mv * /System/Library/Extensions/
Here, we are giving proper permissions to my modified kexts and then moving them into the extensions folder. Now, we'll clear the cache to ensure that old kext information is discarded by typing the following:
rm -rf /System/Library/Extensions.mkext rm -rf /System/Library/Extensions/Caches/ rm -rf /System/Library/Caches/
10.5.2 AMD USERS: Go to Step 7.
10.5.2 INTEL USERS: Reboot your system by typing "reboot" at the prompt. When your system restarts, boot with the -f flag to rebuild kext cache information. When Leopard loads up, your 8800GT should be fully working with scalable resolutions, dual monitor support, and QE/CI!
STEP 7: 10.5.2 AMD USERS ONLY!
While you are still at the single user mode prompt, type the following:
cd /Users/Your user name/Desktop/8800GT_EFI_Pack_v2/patches/ ./patcher cpuid.txt reboot
This step patches some of the OpenGL files installed by the Leopard Graphics Update, and is required for all AMD users. When your system reboots again, use the -f flag to rebuild kext cache information. Leopard should now boot to the desktop and your 8800GT should be fully working with scalable resolutions, dual monitor support, and QE/CI!
Thanks for checking out my tutorial! Hopefully it worked for you, but if not, please post your problems here and either I or someone else will try to help you. Please let me know if there are any errors with any of the methods or code above, and I will do my best to quickly fix them.
I had too many people asking me why they should use EFI strings, so I decided to add this section for such questions. If you still have questions after reading this FAQ, please go to forum.netkas.org to find even more information on the subject.
Q: Are the modified kexts required for 10.5.3?
A: In my experience (see my sig for system details), I have found that modified kexts are NOT needed in 10.5.3. Some users even debate whether or not they are needed in 10.5.2. If you are skeptical, my suggestion is to try this tutorial without them first, and if you aren't having any luck, then try the modified kexts.
Q: Why do I need EFI strings for my video card?
A: Well, you don't NEED them. Simply put, some users prefer to use them instead of injectors (such as NVinject.kext) because they allow the EFI boot-up sequence to recognize the card more like it would if they were using a real Mac. They're mostly appealing to users who run a "vanilla" installation of OSX, since they keep unnecessary kexts from populating and loading from the Extensions folder.
Q: Will EFI strings improve the performance of my card? Will it work better than it did with NVinject?
A: In theory, NO. The only time they would improve performance is if you did not properly install NVinject or if you were using a version of NVinject that was not optimized for your card. On the other hand, the modified kext files included in this tutorial could improve performance if the ones you were using were not modified previously. In short, if you think you may have a less-than-perfect setup for your card, give this tutorial a try. It won't hurt.
Q: I can't get my 8800GT to work with NVinject. Will EFI strings help me?
A: It depends on how hard you tried to get NVinject to work. If you spent some serious time trying to get it to work and it still fails, then I'd say EFI wont work for you either. This could be a problem with your card, your installation of Leopard, or the simple possibility that you are too inexperienced with OSX to do this stuff. This tutorial is meant for intermediate to advanced users of OSX. That doesn't mean that a beginner couldn't follow these steps, but they'll have a harder time understanding exactly what they are doing, so there's a greater chance that they'll mess it up. That said, I've seen very few 8800GT users who couldn't get EFI strings to work, so your chances of success are actually very high.
Q: Will this tutorial work for my GTS, GTX, or GS? Will it work for a version of the GT other than 512MB?
A: No. The plist files are not set up for any version of the 8800 other than the GT 512MB. It will work with 8800GT cards with different VRAM sizes, but it will not report the correct amount of VRAM. You can do a google search to find out how to specify the amount of VRAM to be reported. If I get enough requests, I may consider providing multiple plist files for the different VRAM sizes. It is not a priority for me though, so chances are I wont do it