Jump to content

[HOW TO] GFX-EFI Tutorial for NVIDIA GeForce 8800GT 512MB (G92)


264 posts in this topic

Recommended Posts

UPDATE #2 (12/01/09):

 

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.)

 

FOREWORD

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.

 

REQUIREMENTS

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 :P

FILES YOU WILL NEED

For ALL users:

8800GT_EFI_Pack_v2.zip

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)

For 10.5.2 users ONLY:

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:

 

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

 

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:

 

<key>PciRoot(0x1)/Pci(0xe,0x0)/Pci(0x0,0x0)</key>

 

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:

 

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

 

You will now be in a shell editor with a bunch of text. The last two lines should look like this:

 

</dict>
</plist>

 

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!

 

END

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.

 

APPENDIX (FAQs)

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.

 

NEW!

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. :D

 

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 :)

 

Best Regards,

agra

This looks great! Wish I had this card so I could use it. I can't seem to find a halfway decent tutorial for GFX strings on my ATI card.

 

you should pick one up, they're great cards. right now mwave has them on sale with $30 rebate until the end of this month and free shipping on it too! it's a great deal: http://www.mwave.com/mwave/viewspec.hmx?sc...mp;RSKU=AA72526

Hi,

 

I have tried all superduperspecialwonderkexts in an attempt to get my 8800GT (g92) to work, none did what i wanted...

 

Except the drivers and instructions given in this post. It worked a charm. I've got full support QE/CI, Dunno if dualscreen works tho as i've only got one monitor.

 

I'm playing World Of Warcraft in the background now :D

 

As i said, instructions were correct, except that i couldn't prevent a reboot after the Apple Driverupdate were done, as my computer crashed when initiating the kexts.

 

But i just booted with -x -s and continued following the instructions. Only thing there that didn't work was repair permissions via DiskUtility. So make sure you do it right the first time.

 

agrafuese. If we ever meet in real life, I'll give you a hug wether you want it or not ;)

 

My specs:

Zeph's AMD 10.5.2

Albatron Geforce 8800GT (G92) 512 Mb

ASUS M2N-SLI

AMD 64 3500

2 Gb "somebrand" ddr2 ram

80 GB IBM IDE Hdd

NEC DVD/RW IDE

 

Note: I have working kexts for the onboard NIC on this motherboard and for the M2N4-SLI mobo, anyone interested?.

i'll take all the free hugs i can get! :( but seriously, glad i could help, and i'm also happy to see you signed up to these forums just to post that! i am honored :) welcome to the community by the way - it's a great place, and you'll be sure to find much more help on anything else you have trouble with. also, thanks for pointing out the crash after initiating kexts. if i have some more time i'll look into that and maybe post an alternate solution, such as the work around you did. and yeah, booting into single user mode doesn't give you access to diskutil/repairPermissions, but really if you do everything else properly, you shouldn't even need it - it's just a dummy-proof extra step :) again, thank you so much for the good words. enjoy!

 

@frankye: you must have a 8800GTS/GTX? this tutorial is for the GT only, sorry. try looking at netkas forums here: http://forum.netkas.org ...good luck.

Thanks; it worked like a charm.

 

The calibration tool (in System Preferences / Displays / Color) still doesn't work however. I used NVInject previously to testing the EFI trick and thought it would maybe help but to no use.

 

Does anyone have any idea about this? I mean, the applet is launching but moving the sliders doesn't do nada.

Thanks; it worked like a charm.

 

The calibration tool (in System Preferences / Displays / Color) still doesn't work however. I used NVInject previously to testing the EFI trick and thought it would maybe help but to no use.

 

Does anyone have any idea about this? I mean, the applet is launching but moving the sliders doesn't do nada.

 

Change your DVI port.

Sorry to 'pop-in' on this board with a subject some will find not related. I just read all your work on the 8800 GT and i am really impressed. The reason why i post this message is that we are a few out there trying to find a way to flash the PC 8800 GTS 512 Mo to have it work on a Mac. For timebeing it is a 50% success as the card flashed with the 8800 GT Mac EPROM works fine in Leopard but won't work in Windows (bootcamp) --> black screen then goes off.

Apparently the prob comes from the "device ID" that is not properly set to be seen both in windows and Mac. Do you guys have any idea where/how to modify the EPROM to get it to work. Thank's if you can help.

agrafuese,thanks for your tutorial, that really save me a lot of time.

i get it done for the first trial, all things go correctly as expected.

NVIDIA GeForce 8800 GT:

 Chipset Model:	NVIDIA GeForce 8800 GT
 Type:	Display
 Bus:	PCIe
 PCIe Lane Width:	x8
 VRAM (Total):	512 MB
 Vendor:	NVIDIA (0x10de)
 Device ID:	0x0611
 Revision ID:	0x00a2
 ROM Revision:	3233
 Displays:
X192W:
 Resolution:	1440 x 900 @ 75 Hz
 Depth:	32-bit Color
 Core Image:	Hardware Accelerated
 Main Display:	Yes
 Mirror:	Off
 Online:	Yes
 Quartz Extreme:	Supported
 Rotation:	Supported
LCD-15DX3:
 Resolution:	1024 x 768 @ 60 Hz
 Depth:	32-bit Color
 Core Image:	Hardware Accelerated
 Mirror:	Off
 Online:	Yes
 Quartz Extreme:	Supported
 Rotation:	Supported

agrafuese,thanks for your tutorial, that really save me a lot of time.

i get it done for the first trial, all things go correctly as expected.

No problem, thanks for the feedback. Have fun :thumbsup_anim:

 

Sorry to 'pop-in' on this board with a subject some will find not related. I just read all your work on the 8800 GT and i am really impressed. The reason why i post this message is that we are a few out there trying to find a way to flash the PC 8800 GTS 512 Mo to have it work on a Mac. For timebeing it is a 50% success as the card flashed with the 8800 GT Mac EPROM works fine in Leopard but won't work in Windows (bootcamp) --> black screen then goes off.

Apparently the prob comes from the "device ID" that is not properly set to be seen both in windows and Mac. Do you guys have any idea where/how to modify the EPROM to get it to work. Thank's if you can help.

Thanks for the good words. I have to say I am clueless about flashing cards. I didn't know that the G92 8800GTS cards had these issues. They will likely get better support in Leopard/Windows(bootcamp) if Apple comes out with their own version of the card. This was the same story with the GT when it first came out, but then things got easier once Apple released the GT with the new Mac Pros and gave it native support. In any case, I hope you can find some answers soon. Good luck!

No problem, thanks for the feedback. Have fun :(

 

 

Thanks for the good words. I have to say I am clueless about flashing cards. I didn't know that the G92 8800GTS cards had these issues. They will likely get better support in Leopard/Windows(bootcamp) if Apple comes out with their own version of the card. This was the same story with the GT when it first came out, but then things got easier once Apple released the GT with the new Mac Pros and gave it native support. In any case, I hope you can find some answers soon. Good luck!

 

Thank's anyhow. You are 100 % right ! as soon as the Mac version of the G92 GT 8800 came out and a native EPROM was available, flashing a PC version of the card became a kid's play. I did it with a JETWAY GT 8800 and it works like a charm (EPROM must be 128 k). I will let you know if we make progress before (if?) Apple releases an GTS card :thumbsup_anim:

Thank you agrafuese! I must admit I am quite new to OSx86 so I was a bit clueless when it came to getting my 8800GT to work properly, fortunately I stumbled across your guide and it's all working now - thanks again!

 

Just a note though, after installing the Leopard graphics update I get forced to reboot by a little grey box that overlays itself over my screen and tells me to reboot. I couldn't seem to get control of my screen back so I rebooted into single user mode and then performed the remaining steps from there, which worked as well and is making me very happy. :)

Thank you agrafuese! I must admit I am quite new to OSx86 so I was a bit clueless when it came to getting my 8800GT to work properly, fortunately I stumbled across your guide and it's all working now - thanks again!

 

Just a note though, after installing the Leopard graphics update I get forced to reboot by a little grey box that overlays itself over my screen and tells me to reboot. I couldn't seem to get control of my screen back so I rebooted into single user mode and then performed the remaining steps from there, which worked as well and is making me very happy. :(

 

Hey thanks for letting me know. There was one other user here that had that same forced-reboot problem. Fortunately, both of you knew how to proceed in single user mode. I am wondering why this happens for some people and not others, as you two are the only ones to report it so far. Very strange. I may make some notes in my tutorial regarding this issue for people who may not know about single user mode. Thanks again, and glad to hear you got it all working.

I've been using NVinject on 10.5.2 with Graphics Update so far, and I'm looking to switch to EFI for GFX and SFX. What is the difference between the kexts in the EFI pack versus the ones they replace in the vanilla kexts?

 

The kexts just have the 8800GT device ID added to them. Most users have problems with this part of setup, so I've done it for them. If you have a working setup already with NVinject, then they wont do anything new for you.

×
×
  • Create New...