Jump to content
InsanelyMac Forum
  • Announcements

    • Allan

      Solution to create a topic or post.   04/24/2018

      Hello guys. The majority of you are having issues to create a topic or post here. This are a problem with our current theme InsanelyMac.  Now the theme will be the Default IPS. Sorry for any inconvenience.

Why use EFI graphics string?

Recommended Posts

I just successfully created an EFI graphics string for my nVidia 8400GS card, but I don't see any difference...


This is my system:

OS= Kalyway 10.5.1 (Vanilla chosen at installation) + 10.5.2 Update using Software Update

Features= EFI V8, GUID, ToH kernel (to enable Shut Down and Sleep).

CPU= E6550 2.33GHz @ 2.975GHz (425MHz x 7)

MB= GA-P35C-DS3R Rev. 2.0

RAM= 4x1GB Kingston 800MHz @ 850MHz (1:1 FSB->RAM ratio)

VGA= 8400GS PCI-E 256MB with EFI string


This is what Apple System Profiler shows:


nVidia GeForce 8400 GS:

 Chipset Model:	nVidia GeForce 8400 GS
 Type:	Display
 Bus:	PCIe
 PCIe Lane Width:	x16
 VRAM (Total):	256 MB
 Vendor:	NVIDIA (0x10de)
 Device ID:	0x0422
 Revision ID:	0x00a1
 ROM Revision:	nVidia GeForce 8400 GS OpenGL Engine [EFI]
  Display Connector:
 Status:	No display connected
 Resolution:	1280 x 1024 @ 75 Hz
 Depth:	32-bit Color
 Core Image:	Hardware Accelerated
 Main Display:	Yes
 Mirror:	Off
 Online:	Yes
 Quartz Extreme:	Supported
 Rotation:	Supported


I have also removed the NVinjext kext I had and rebuilt the kext caches.


But what is the advantage here over NVinject?


My graphics performance isn't as smooth as a real Mac's. I thought the EFI string would solve that, but it didn't. Any ideas why? For instance, when I open a folder and close it before the animation effect completes I get a messed up "folder opening" and "folder closing" at-the-same-time animation. On my Intel Mac Mini at work (running 10.5.2), when I do this the "folder opening" animation stops in the middle and changes to "folder closing" without any mess. Just try too - this is interesting:


Highligh a folder.


Hold down the Apple key and rest one finger on the "Down" arrow and another on the "W" key.


Keep the Apple key pressed at all times.


Now hit the "Down" arrow key, but before the animation effect completes (somewhere in the middle, doesn't matter where, as long as it's before the effect has completed and the folder's contents is displayed) hit the "W" key. This will make the folder close before it has completely opened.


On a real Mac the whole animation is completely smooth. I.E., the moment I press the "W" key after I opend the folder the animation transitions smoothly from "open" to "close". On my Hackintosh however I get a messed up animation of "folder open" and "folder close" at the same time.


Now my Mac Mini has a mere Intel GMA950 on board. The 8400GS on my Hackintosh is stronger, so it's not a "performance" problem or limitation.


Also, "Spaces" doesn't perform as smoothly on my Hack as it does on a real Mac.


Another thing - when I choose to close many folders in one go (Apple+Option+W) the graphics are not smooth at all. Not so on a real Mac too.


Does anyone know why this happens?


Also, does using an EFI string protect me from display problems which may occur from a system update?


Thanks very much!

Share this post

Link to post
Share on other sites

the strings are for replacing nvinject etc. You need the correct one, which is hard to find on a card that the real macs dont have. And there might be some features that are not fullt programmed on those cards.

Share this post

Link to post
Share on other sites

I understand.


So it'll never be perfect as long as I keep using the 8400GS. Fair enough.


Does using an EFI graphics string protect me from display problems after a MacOS system update (since I dumped the NVinject.kext)?


I updated my previous setup (NVinject) directly to 10.5.4 using the Combo Update and got a blue screen with no mouse after the restart. Will the EFI string protect me from this problem (in other words - how do I solve the display problem after the 10.5.4 update :( ?)


Thank you for your help!

Share this post

Link to post
Share on other sites

Hey Gringo, I'm going to pick your brain here. If that's the case, (EFI) strings being a hit or miss, what is the preferred way of getting your video card recognized if your system doesn't automatically recognize it?


To my knowledge, the choices are:

EFI String



Share this post

Link to post
Share on other sites

I believe that the best method is the one that works for you.


I didn't say that EFI strings were hit and miss, I said that using someone elses's EFI string is hit and miss.


You and I are lucky to have a video card (9800GTX+ dev. ID 0x0612) that can work with unmodified nvidia drivers.


The reason why I'm talking about luck, is that there never was a 9800GTX+ for Mac. But thanks to the way the nvidia drivers work - supporting a range of device IDs rather than specific IDs - it does. Thank you nvidia.


If the drivers themselves don't know the video card's device ID then they will not load, and therefore none of the available injection methods will work.

Those who have a video card like that will have to manually add its device ID to one or two nvidia driver files in /System/Library/Extensions, as detailed here: http://www.projectosx.com/forum/index.php?showtopic=4

Note that in Snow Leopard (not sure since what version) it is no longer necessary to add the device ID to NVDAResman.kext.


This is a bit of a pain because it means that every time the nvidia drivers get updated you'll lose accelerated graphics and you have to do it all over again.

Maybe it's possible to create legacy kexts for this, this is something I haven't investigated.

Anyway, follow the link to Krazubu's "guide for all nvidia boards" above for more information, and read the NVEnabler thead on the same forum, both threads are full of important information (most of what I'm writing here I learned from reading those threads and experimenting).


Someone else's device-properties string might not have the same PCI Root as your motherboard and then it will not work.

Well, tbh this is just a theory but a device-properties string does contain the motherboard PCI root, so I'm pretty sure that my theory holds water.


My personal opinion is that video cards do not belong in DSDT unless they are on-board, DSDT is for devices that are part of the motherboard.


But sometimes it is necessary to place "external" devices in the DSDT. As far as I know there are only two ways to have two video cards working at the same time, one is via DSDT injection and the other is with NVEnabler.kext with the RM_Multiboard_Capable setting activated.

This is a complicated subject and a good bit of extra tweaking is required.

Also some people have had success with setting a PCI ethernet card as built-in/internal via DSDT. I think it's gross, but OS X requires a built-in network device as EN0, and this method works, so...


Krazubu, Fassl and Turbo's NVEnabler.kext is the most complete injector available (can inject the most properties + patch video BIOS on the fly) and Chameleon's GraphicsEnabler is (as far as I know) based on NVEnabler.

http://www.projectosx.com/forum/index.php?showtopic=370 (


I use (you know :-) GraphicsEnabler with a BIOS ROM patched by NVEnabler, Krazubu told me how to extract it from IOReg (see the NVEnabler thread at ProjectOSX forums). This is the best of both worlds. GraphicsEnabler doesn't enable my analog TV-out and NVEnabler does not work from a Chameleon boot CD because it has to be in /System/Library/Extensions in order to work.


With GraphicsEnabler and the patched ROM I can have hardware accelerated video AND working analog TV-out even when I use my Boot CD.

And one less kernel extension to worry about.


*Note I'm talking about nvidia video cards here. I don't know anything about other video cards or on-board video.

Share this post

Link to post
Share on other sites

Wow! Thanks for all the info! I had to re-read a few times to make sure I fully understood everything, not saying I do but it does add a few missing pieces to my puzzle.

Share this post

Link to post
Share on other sites

For now I'm good. It's a great overview which gave me a better understanding and luckily since my system is running like a champ, I don't need to delve any further :-)

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Posts

    • Sorry! I forgot, if you use SSDT V3 you have to remove the _DSM method from DSB1
    • Many thanks! Yeah I'll try again! Hopefully you can think of something later  
    • I check when I get home. I can tell you in advance that you have to use the SSDT V3 (with your ACPI path) if you have disconnected the cable, and your devices must be connected and turned on before boot. It's all still a work in progress
    • I expected it to not work, especially after so many attempts at different methods. This one sounded the least likely to work, and as soon as I booted, my Apollo turned on its HOST light and it's been working since!   I added my clover arbitrary device as 32:00.00 (my BR1A) and that's it. I only pulled the cable from the Mobo but not the card... not sure if that matters.
    • As the prices for Radeon cards have been dropping during the last weeks I finally decided to buy a Sapphire Radeon Nitro+ RX570 8GB and received the card this afternoon. With 10.13.4 Apple added a number of new framebuffer personalities to the AMD9500Controller.kext and as the framebuffer personality "Orinoco" matches the connector layout of my card (DP, DP, HDMI, HDMI, DVI) I decided to give it a try and got an instantly working system. No framebuffer patch is needed anymore. See for yourself:     Mieze