Contribute
Register

nVidia 8800 SLI + DVI->HDMI on SL possible DSDT fix?

Status
Not open for further replies.
Joined
Mar 28, 2010
Messages
51
Motherboard
MSI Z97 Gaming 7
CPU
Intel i7 4790
Graphics
Dual Geforce GTX 770 4GB
Mac
  1. MacBook Pro
Classic Mac
  1. 0
Mobile Phone
  1. Android
Ok it' s been a while since my last visit here. Mainly cause at some point I became satisfied with my Hackintosh setup and started to actually work with it ;)

To make it easier on the reader, this is my question:

Is it possible to simply disable a PCI-e device with a DSDT edit?
If so, how? :)

I'll explain why now:

Here' s the problem, guess it's pretty specific to my specific hw setup:

- AFAIK the only way to get a 8800GT to work with SL 10.6.1+ when connected via DVI->HDMI is to provide OSX with real 8800GT Mac Firmware, there is one available on the internet. One needs a 8800GT with a 128K EEPROM to get this working. Not sure about all the specifics, but my guess is this has something to do with HDCP.
- nVidia SLI is of course not an option on OSX on PC, however there is no reason 2 or more GPU' s can' t work in OSX, only not OOTB. Again AFAIK, there are some options:
- a custom EFI string. With EFI Studio this is really easy, just add a second GPU and modify the device pointer to match your 2nd GPU.
- a modified DSDT for 2 (or more) GPU's
- a recent NVInject, not sure about others but this one certainly works.

My setup: MSI P55-GD85, 2x Asus EN8800GT gpu's, 27" LCD monitor (DVI) + 37" LCD TV (DVI->HDMI), SL 10.6.5

This poses a big dilemma: I need to solve issue 1 and 2 at the same time. So far I've been unable to do so in a satisfying manor, best so far was actually flashing my main 8800GT with Mac Pro firmware (second one has a 64K EEPROM although it's the same brand and model!). That worked but I got severe artifacts :(

The only way (that I'm aware of) to load GPU firmware without actually flashing your card is a recent Chameleon build with VideoROM = romfile or UseNvidiaROM = yes depending on the version, this also needs EnableGraphics = Yes. The latter won't work with more then one 8800GT, also the rom loading routine seems to check GPU EEPROM size so again the second GPU seems to disrupt this solution.

If I could disable the second GPU for SL only I could try if the Chameleon based solution gets me any further. If anybody has different or better ideas, I'm more then willing to try them out. This issue has been haunting me for too long now, and it's ridiculous it has never been properly fixed by the community in the first place!

Until 10.6.5 came out, I used a very different, really hacky-wacky, solution: SL 10.6.2, 10.6.3 kernel and kexts, 10.6.1 nVidia kexts. Tried all kind of combos but this was the only one that actually worked. Needless to say I was never happy with the solution, but one needs to do something at a certain point I guess.

Apart from all of this: I've never seen a MSI P55-GD85 DSDT, so here' s one. Readout from Linux, bios 1.4, edited with minimal edits (PIC, TMR, HPET and additions for the 8800GT's). I can confirm it works just fine apart from the issue above ofcourse. Typing this right now on my fully working Hackintosh! Without the LCD TV attached that is :( One with and one without nVidia specific edits. At this point a dsl seemed the most appropriate, but can provide compiled DSDT's if needed.
 

Attachments

  • MSI-P55-GD85_DSDT.dsl
    262.7 KB · Views: 106
  • MSI-P55-GD85-nonvidia_DSDT.dsl
    254.9 KB · Views: 113
Ok an insane amount of debugging and trying has passed since I started this topic. Learned a lot, gained very little :rolleyes: Why is it that it's always the little things that take the most time and cause the most frustration :( Here's where I'm at now:

- Don't think my original question will do me any good after all. Even if I succeed in disabling my second GPU via DSDT edits, I don't think this will change anything from Chameleons perspective. So GraphicsEnabler will prob still fail, I will just see a single non functioning GPU in SL.
- One really does not need a original 8800GT Mac rom for flashing or injection to get DVI->HDMI on OSX 10.6.1+. This makes sense: EFI needs to be emulated on PC so how could OSX use the EFI part of the 8800?
- lots of 8800GT roms out there will work just fine, in fact with Asus the latest and greatest they offer for download just works(tm)! 62.92.5E that is. So even the remark on OSX forums that you need a rev1 rom from your vendor is not entirely true.
- I seem to have some funky frankenstein build of the 8800GT Asus hacked together :( The buildin firmware works just fine (62.92.1A), never had a single issue with them apart form SL. There is one update available on the net for this board (62.92.29 sys dev id 8267 not 8260), but every single firmware out there (even the ones from Asus itself for the exact same model!) don't cause a hw meltdown but massive artifacts nevertheless. Right from the bios screen onwards. Needless to say those 2 working roms don't fix the DVI->HDMI problem. I looked and looked with Nibitor and couldn't find a single difference, something must be very different with these 8800GT's though but it's just not voltage id's, frequency or mem timings as one would expect :crazy:
- NVEnabler seemed very promising for what I want to achieve, not OATB, but it can load a custom rom and should be able to handle multi GPUS. The bummer is the first part is well document, but multi GPU ... the devs say it can be done, but they never bothered to actually give a realworld example, just a "look on our forum for more information" (what information!!!) :banghead:
- Doesn't matter, every single enabler out there chokes on my setup in SL, even with just one GPU. It just won't work :( So far I just used an EFI string generated with EFI Studio and 10.6.1 nVidia kexts and lately I finally found out how to edit a original MSI DSDT for GPU. It's not that hard, just different from all the Gigabyte examples out there. But I became increasingly frustrated about my outdated SL, so here I am :)

So that was a lot of information! :) Hope it will help somebody out there, strugling and desparately looking for answers!! ;) The keyword seems to be the mysterious 8267 (not 8260) Asus EN8800GT. I believe these were quite popular back then, so perhaps somebody found a solution after all and it's just my google skills that are lacking :lol:

These seem to be my options:
- Find a rom that does work on real hardware, not by injection only.
- Fix NVEnabler
(- Fix Chameleon rc5 GraphicsEnabler .. yeah I know!)

1 seems to be the most promising right now and that really is a pitty :( Just don't like the tone on the NVEnabler forums :thumbdown: Yeah I don't like lazy noobs either and yes I do understand a community of enthousiasts is not a helpdesk you pay for and bother as you please. No problem there. But come on, how the hell are we supposed to fix this poorly documented black box???

The longshot would be to actually help better Chameleon GraphicsEnabler. Now I'm not completely clueless when it comes to programming and hacking somebodies code. And yes I did succeeded in building my own Chameleon RC5 hacked to load a complete nVidia rom as opposed to just the first bytes. But no, don't think so ;)

The question in all of this would be: does the enabler not recognising your 8800GT correctly part sound familiar? And if so how did you fix it, via a DSDT edit perhaps??
 
sorry, did not read your whole testament...

but if youre graphic board has dual dvi(or dual dvi + hdmi) you wont get them to work correctly with current kernel or session newer than 10.6.2, as u already know!

It is NOT supported by apple!
Moreover nvidia is not forced to support it with a proper hdcp handshaking driver :(
They are just not able to get one working properly!!

-> The ONLY working solution is a second card with dvi hdmi vga or dvi vga solution!!
NEARLY ALL graphic boards with VGA DVI HDMI || VGA DVI combination work via gfx string or dsdt entries!!

Ive got 6 monitor working on 3 graphic cards (all have vga dvi, or vga dvi hdmi)
3 monitors are connected through vga2vga and 3 via DVI2HDMI adapter

Ive got several other dvi dvi or hdmi and dvi cards... and never got them to work with dvi-hdmi when it comes to >10.6.2... (at least the rom thing wont work with more than one card)

I think there wont be a proper solution, cause its just not supported!
 

Attachments

  • ATI5000Controller.kext.zip
    69.3 KB · Views: 62
Can understand that, guess it was quite a read ;) Posted it mainly for reference for others anyway.

Actually I did learn it isn't all that black and white after all. For example with my very specific Asus EN8800GT's is does work as you describe, but other EN8800GT's (perhaps others too) should work just fine! The weird part is with Asus not only does a very early 2007 firmware work, but also the very latest late 2008 they made available on their website. That is not just a rumor, I actually tested it and got DVI and HDMI and full CI/QE on both but also severe artifacts right from the bios screen onwards :(

Guess the part worth investigating is why it is that EFI strings or DSDT edits are so damn easy and every single enabler out there just won't work with my hw config :crazy:
 
BTW great work thus far.

I have an ASUS 9800 GTX+ and I am having the same issue with an HDMI LCD monitor (Samsung BX 2450). The issue is the HDCP handshake with the card and the bios. Seems like the PC bios and MAC bios differ in this, hence why the new driver cause a problem.

I was using the rom bios inject (which is the samething Nvenabler does) until 10.6.5. Which broke everything.

Let get this resolved cause it affects a lot of G92 (8800 - 9800) owners.


Thanks
 
Thanks :)

This is actually helping. As said before, SL nVidia enablers never worked for my setup. Didn't need them anyway cause so far a simple EFI string from EFI Studio worked just fine.

Didn't know if the problems I have with NVEnabler are in any way related to the latest SL point release, so your input is helpfull.

Here's where I stand now:
- Chameleon seems to be doing its rom loading/patching part, at least it tells me it does. There is just no evidence whatsoever in ioRegistryExplorer it actually does anything :(
- nVenabler same story, but the NVDAResman KP afterwards must mean this one does something. Guess just not what I'm looking for ;)

So I went on looking for other means to just loading the right rom file instead of actually storing it on real hardware. I already know this can fix this problem, but since it also causes hardware problems it's no easy fix at least not for my setup.

After looking through the Chameleon source code I noticed in the end the patched rom file just ends up as a vbios hex string, not even the whole thing but just the first 10000 bytes. In the end I succeeded in loading the right string via my patched DSDT, it just wasn't patched and the info on the net was confusing on the part if you need to alter the hex ordering or not. Nothing to do with Apple being evil and doing whatever they can to frustrate us or something, just what they call endianness (the way computer systems store info in memory).

On to NVEnabler, yes it doesn't really work for me but I just needed it's injection magic. So I moved the nVidia kexts out of the way and booted up with NVEnabler configured to load my rom file. This time I got lots of nVidia related info with ioRegistry explorer, including a vbios hex string.

Right now I have that vbios string in my DSDT and it seems to work just fine, it just has grown a lot bigger :) Without my HDMI tv connected, everything loads as usual. Full recognition with CI/QE and ioRegistryExplorer shows the vbios hex string. It just still doesn't solve the HDMI problem :banghead:

The frustrating part is I really have no way to check if the rom is patched properly and even correct in the first place. Sure I can compare stuff, but didn't even bother. NVEnabler still is a closed blackbox, so can't add some simple debug statements to really confirm success or not.

Guess the next step will be to finally turn to the 'helpdesk' @projectosx :D Already completed their mandatory quiz succesfully! :eek:
To be continued...
 
Hi,

As far as i can tell NVenabler just loads the model number of the card and injects 8800gt rom (mac version).

I have been able to derive that the logical cause for all this trouble is the fact the bios for PC vs MAC for handling HDCP and sleep (MAC ROM breaks sleep) are completely different. The only viable solution is 1) to get a translator so the driver can talk to the PC BIOS. or 2) mod the PC bios to be more mac friendly (which may cause problems with the board). I do not have a comp sci background (business) so I cant help with the programming and testing .. but I am willing to run any test that may help you..

Hope that helps

Liquid_ic
 
If that would be a normal 9800GT I would say just try to force feed the latest Asus 8800GT bios to it (62.92.5E). If it works for your hardware you should be all set without any tradeoffs on the hardware part. Even so regardless of what people say, graphic cards are still more then the chip that powers them!

But on a 9800GTX you will loose some performance if it works at all, it just isn't the same card only a similar chip based on the original G92 core for the 8800GT. So it's really up to you if you want to do some gambling, as long as you understand and accept you're living on the edge ;)

The part that really is worth mentioning is this: most 8800GT bioses out there seem to be pretty much more of the same, even among different brands. Just not on my hw, so far only 2 bioses for exactly that device id seem to work properly. So I guess I'm just unlucky and need to take stuff a little further then most of us. Any 62.92.12 bios should do, Mac version or not.

Perhaps all that needs to be done now is to match my boards device id in the bios with the real hardware, dunno. I really think at this point the wise thing to do is to contact the guys that are the most knowledgeable on this stuff....
 
Ok giving up on this one, at some point you just have to let go! Even the 'divine' ones on ProjectOSX couldn't shed any lights on this, not really anyway :D

Yeah I know it could and should work. For now I'm just happy that at least I managed to simply disable DVI1 so I don't have to constantly unplug it. Can't have all I guess :|

Untill next point release!! ;)
 
Status
Not open for further replies.
Back
Top