Jump to content

Why use EFI graphics string?


Gantlett
 Share

11 posts in this topic

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]
 Displays:
  Display Connector:
 Status:	No display connected
  SyncMaster:
 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!

Link to comment
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!

Link to comment
Share on other sites

  • 1 year later...
  • 1 year later...

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

kexts

DSDT

Link to comment
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.

Link to comment
Share on other sites

  • 2 weeks later...
 Share

×
×
  • Create New...