Jump to content

Final solution (FIX) for GMA950 Desktop edition - NEW 28 DEC 08


Dr. Hurt
 Share

486 posts in this topic

Recommended Posts

This METHOD should work with any version of GMA950 and GMA X3100. The one I posted should only work with desktop GMA950 on boards similar to mine. ie. GA-945GCMX-S2, GA-945GCM-S2L, GA-945GCM-S2C... etc

 

GMA 3100 would need a lot of more work to be done, since it's not supported by vanilla apple kexts. I really don't think this card should not be discussed here - at least till we master this method for already supported cards

 

Laptop GMA950 and desktop/laptop GMA X3100 should work with this providing the proper address is written to the DSDT.aml

 

Since we can't have a universal DSDT.aml file due to differences between motherboards, I have contacted fassl to see if he could create a new/modified patcher to add desktop GMA950 code along with the fixed DSDT info related to the motherboard. Then we should make newer versions supporting Laptop GMA950 and GMA X3100. Remember that activating hardware using using DSDT.aml is still new, and the whole DSDT patching thing is new to OSX86.

Link to comment
Share on other sites

Many thanks to Dr. Hurt and roisoft. ;)

I have tested this DSDT fix on my Shuttle K45 and Shuttle SD30G2, both works perfectly!

 

Basically I added the following 2 sections into my DSDT.dsl files and recompiled them.

 

    Method (DTGP, 5, NotSerialized)
   {
       If (LEqual (Arg0, Buffer (0x10)
               {
                   /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
                   /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
               }))
       {
           If (LEqual (Arg1, One))
           {
               If (LEqual (Arg2, Zero))
               {
                   Store (Buffer (One)
                       {
                           0x03
                       }, Arg4)
                   Return (One)
               }

               If (LEqual (Arg2, One))
               {
                   Return (One)
               }
           }
       }

       Store (Buffer (One)
           {
               0x00
           }, Arg4)
       Return (Zero)
   }

 

            Device (PEGP)
           {
               Name (_ADR, 0x00020000)
               Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x1A)
                           {
                               "device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "model", 
                               Buffer (0x07)
                               {
                                   "GMA950"
                               }, 

                               "built-in", 
                               Buffer (One)
                               {
                                   0x01
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }

Link to comment
Share on other sites

Here, with GA-945GM-S2 / 10.5.6, sleep ok, restart no, rotate standard return only after new boot.

 

Finally someone tested. Congratulations. Now you can update os x without having to worry about graphics.

OK, for restart make sure you have openhaltrestart.kext installed. Otherwise, it's a DSDT issue.

Rotate did the same thing with me. Need reboot to get back to standard - no problem though.

 

Is everything else working properly?

Did you get any artifacts?

Link to comment
Share on other sites

Is there any way to use this with a laptop GMA 950? I have an Acer Aspire One and still need modified kexts and framebuffers (from 10.4! ;) )

 

Using the following EFI String (from iATKOS 5i dvd), I have my GMA950 laptop (Toshiba U200) working almost perfectly, vanilla 10.5.6 kexts and no artifacts:

 

7e0200000100000001000000720200000a00000002010c00d041030a000000000101060000027fff

4001c0000004100410050004c002c004800610073004c0069006400000008000000010000002a000

004100410050004c00300031002c0044006100740061004a00750073007400690066007900000008

00000010000001c0000004100410050004c00300031002c005000690070006500000008000000010

00001e0000004100410050004c00300031002c004400650070007400680000000800000020000000

60000004100410050004c002c004e0075006d0044006900730070006c00610079007300000008000

00040000001c0000004100410050004c00300031002c00450044004900440000008400000000ffff

fffffff004ca345490000000000110103802115780a87f594574f8c2727505400000001010101010

01010101010101010101ee1a008050201030103013004bcf100000190000000f0000000000000000

02387026401000000fe0053414d53554e470a2020202020000000fe004c544e31353458412d4c303

0a00412e0000004100410050004c002c004e0075006d004600720061006d00650062007500660066

065007200730000000800000002000000380000004100410050004c002c00530065006c006600520

65006600720065007300680053007500700070006f00720074006500640000000800000001000000

00000004100410050004c002c00480061007300500061006e0065006c00000008000000010000001

00000072006f006d002d007200650076006900730069006f006e0000002a0000004f70656e474c20

56e67696e6520616374697661746564207669612045464920537472696e67

 

Give it a shot!

Link to comment
Share on other sites

I can confirm it works on a Gigabyte GA-GC230D, No artifacts at all, one small problem, it thinks theres 2 displays. I had to log in via vnc to change the default display to this one. So once the extra display problem is fixed, its all perfect!

 

EDIT: Sleep works perfectly!

Link to comment
Share on other sites

I can confirm it works on a Gigabyte GA-GC230D, No artifacts at all, one small problem, it thinks theres 2 displays. I had to log in via vnc to change the default display to this one. So once the extra display problem is fixed, its all perfect!

 

EDIT: Sleep works perfectly!

 

 

Nice to hear that !!

 

I think i have a fix for the default display... may i pm you later, ? i´m still at work...

 

 

i´m working with a friend of mine with Intel DG31PR and GMA 3100, i´ll post the results. thx

Link to comment
Share on other sites

Nice to hear that !!

 

I think i have a fix for the default display... may i pm you later, ? i´m still at work...

 

No problem, remembered I had paulicats natit in my extensions folder so i removed it, restarted and its no longer working, screen stays blue, VNC'd to the computer, can see the desktop through that, installed natit again to make it work and its not... something has gone wrong again :blink: I'll just try and make it work again...

Link to comment
Share on other sites

Hello. Think this thread is misplaced..?! Shouldn't it be under OSx86?.. almost missed it :) EDIT: was misplaced.

Anyway.. i'd like to test this but, i have two doubts.

-The kexts in the zip, are they patched or plain stock kexts?

-My mobo is an Asus, though it's made for HP. Will this work with my mobo or do i have to patch my dsdt.aml?

Device id is: 2772

 

I'm not using DSDT.. still didn't found a real good reason to use it. This would be a real good reason!

I must say that i have out of the box support for GMA950, except for resolution change. For that i use "AppleIntelIntegratedFramebuffer 1.4.20.28" patched, i think. I get some artifacts with some apps.

It would be nice to use stock kexts :D

Thanks

Link to comment
Share on other sites

aghh! I don't know what happened, but its no longer working. Back to square one. My monitor is blue at boot, stays like that, yet if i connect via VNC it displays my desktop, go to system profiler, click on graphics and displays and system profiler crashes. Any thoughts anyone? I shall go back to the old framebuffer until i find a fix. It only happens when I have the DSDT files at the root of my HD. :)

 

EDIT: Ok, if i unplug the monitor and plug it back in again it works (and detects one screen), no artifacts but sleep doesn't work. what's happening? :D

Link to comment
Share on other sites

Hello. Think this thread is misplaced..?! Shouldn't it be under OSx86?.. almost missed it ;)

Anyway.. i'd like to test this but, i have two doubts.

-The kexts in the zip, are they patched or plain stock kexts?

-My mobo is an Asus, though it's made for HP. Will this work with my mobo or do i have to patch my dsdt.aml?

Device id is: 2772

 

I'm not using DSDT.. still didn't found a real good reason to use it. This would be a real good reason!

I must say that i have out of the box support for GMA950, except for resolution change. For that i use "AppleIntelIntegratedFramebuffer 1.4.20.28" patched, i think. I get some artifacts with some apps.

It would be nice to use stock kexts ;)

Thanks

 

The kexts are the stock (unmodified) ones from the 10.5.6 update.

This DSDT patch is confirmed to work on gigabyte boards. No one tested it with other boards yet. If you would like to test it, that will be really appreciated. If it doesn't work, you'll probably have to patch it manually or wait till someone writes an automated patcher.

Just make sure your bootloader supports DSDT.

 

Yes, this thread is misplaced!! :)

Link to comment
Share on other sites

Ok, so the story now is...

 

If I use the new frame buffer and 950 kexts from 10.5.6 with the DSDT fix, the screen turns blue on boot as if it can't detect the display. Unplug and plug display back in again, everything works perfectly apart from sleep. Go to system profiler and look and graphics displays it says "No Display connected"...

 

Use no DSDT fix, and use tiger framebuffer, everything works apart from I get poor graphics performance, artifacts and sleep doesn't work.

 

I don't know what happened before when I got two displays connected and sleep works, I can't recreate that scenario, don't know if that's an issue as now I at least get the correct number of displays detected provided i unplug and plug in again.

 

Dr. Hurt, Is anyone working on an automated patcher?

Link to comment
Share on other sites

@NebulOSX:

You're getting too many issues!!

It always says: "No Display connected" whether it works or not, so this is definitively not the problem.

The display detect could be due to hardware differences between our motherboards. DSDT needs to be specific, that's why I said that if you have skills you should patch your own DSDT to avoid such issues.

Also, I have have asked fassl to update his patcher to include the new GMA950 code as an option. Don't know if he's actually gonna do it!!

 

Try pressing the "detect displays" in the displays in the system prefs. Also remove natit, repair permissions, and delete kextcache. Make sure you have no graphics EFI strings, boot.plist settings....

Link to comment
Share on other sites

Sorry Dr. lol.. Detecting displays in system prefs does the same thing as it does on boot, goes blue and stays blue, unplug and plug in again for workage.. So yes, looks like hardware difference causing the problem... I shall await an automated script and shall google decompiling, adding code and compiling the aml. All I can say is thank you all you people who have discovered this VERY much for getting this graphics fix working, those artifacts were so damn annoying!

Link to comment
Share on other sites

Dr. Hurt & Raisoft Thank you very much!, ¡MUCHAS GRACIAS!.

post-100500-1230611523_thumb.png

I can confirm that Rotate, QuartzGL, Quartz Extreme, Core Image, are working perfect with Tiger 10.4.11, Leopard 10.5.5 and Leopard 10.5.6

It's time to move to Leopard Finally!!!

 

Hummm I can't wait to the next Chameleon version and Voodoo Kernel

 

Did I forgot to Thank you enough?

Link to comment
Share on other sites

I can confirm to :D

First have to thank roisof for his fast and helpful response.

Without his help, i wouldn't be posting so soon!

Thanks mate.

Rotation here works without reboot. A nice performance boost, no artifacts..

still have to test with really problematic apps, but i feel confident.

 

The kexts are the stock (unmodified) ones from the 10.5.6 update.

This DSDT patch is confirmed to work on gigabyte boards. No one tested it with other boards yet. If you would like to test it, that will be really appreciated. If it doesn't work, you'll probably have to patch it manually or wait till someone writes an automated patcher.

Just make sure your bootloader supports DSDT.

 

Yes, this thread is misplaced!! :)

Thank you so much for posting this!

I only saw it by chance, cause it was the most recent posted at the time and i looked further down than usual. Anyway.. glad i saw it!

Mate, i tested your .aml and graphics worked. Other divices don't match my mobo but,

graphics do match!! The one i'm using was made from the dsdt of my pc, by roisoft..

Hope this helps.. i don't mind doind more testing but, at the time i'm too busy with INSTAHackintosh.

Pm me if you need anything..

Big thanks

post-291566-1231107653_thumb.png

Link to comment
Share on other sites

Cool!!

So my DSDT.aml also worked with an ASUS motherboard?!

Other devices didn't even match in my system, so it won't cause any problems for anyone, It's just extra obsolete code - as netkas pointed out. I'll try to clean up the code if I have time.

I'd better update the first post again.

Thank you, Azimutz.

Link to comment
Share on other sites

roisoft: pls find attached ioreg and dsdt.dat for my X3100, I have serious powermanagement issues with my laptop LCD, since i cannot find absolutely any way to stop the display from powering off after 5 mins of inactivity. When I say anythin I mean powermanagemet from menus, pmset's etc. The problem is that if my display powers off, I can only VNC to it (not even a second display can be used) and reboot, while any input results to the screen backlight turning on. Do u thing you can manage something, if u don't I'll have to go back to 10.5.5 where at least I can control when the screen shuts down

 

Dr. Hurt: my lappy kp's when I foolishly use ur DSDT.aml, just in case u wonder:p

Einstein_ein_ioreg.rar

Link to comment
Share on other sites

 Share

×
×
  • Create New...