Jump to content

Intel GMA4500 / GL 4x Express Chipset


bboyg
 Share

78 posts in this topic

Recommended Posts

First of all a little explanation about WHAT is the abbrevation GMA4500 mean.

 

GMA4500 - Intel Graphics Media Accelerator 4500 with all the additions, or:

There is NOT difference between:

4500, 4500M, 4500MH, 4500MHD, 4500HD, X4500, X4500HD or GL 4x Express Chipset Graphics (of course there are differences like the included memory, or the presence of HDMI). Here in this topic we will generalize all these names with this one - GMA4500.

 

The most important thing until today - 16.06.2010 THERE IS NOT Quartz Extreme / Core Image support for this graphics card yet.

So PLEASE STOP asking questions about solutions for QE/CI and flood the forum. If there is a solution about the QE/CI issue, it will be published here (or in an new topic) as fast as it possible.

 

So, for now we have only a couple of solutions for getting the native resolution for our displays (not stuck on the stretched 1024x768).

 

Kext Install Solutions:

 

Native resolution for 10.5.x Leopard:

 

http://www.insanelymac.com/forum/index.php?showtopic=188279

http://www.insanelymac.com/forum/index.php?showtopic=200093

 

Native resolution for 10.6.0 / 10.6.1 / 10.6.2 Snow Leopard, 32 bit mode ONLY

 

http://www.insanelymac.com/forum/index.php?showtopic=188279

http://www.insanelymac.com/forum/index.php?showtopic=200093

http://www.kexts.com/view/258-gmax4500.html

 

If you are using Chameleon v2 bootloader you can use Deviatos method, with replacing the boot file at the root of your Mac OS X directory.

 

Deviato`s method is the only one who works at 64 bit mode and it is not necessary to install any kexts.

 

Link to Deviato`s blog where you can Download the boot file:

 

http://deviato.wordpress.com/2010/02/24/ch...-gma-version-2/

 

Note:

Before installing remove/backup all the kexts you are replacing, repair permissions, and boot with -f flag !!!

These solutions works only on GMA4500 cards with device id 2a42 !!!

 

Another thing we are trying to do, is the patching the DSDT table for better recognition, or faking the model of our cards. For now through this code (add it under GFX0 device in your DSDT table):

 

Method (_DSM, 4, NotSerialized)
{
Store (Package (0×06)
{
“AAPL,HasPanel”,
Buffer (0×04) {0×01, 0×00, 0×00, 0×00},
“model”,
Buffer (0×07) {”GMA4500MHD”},
“device-id”,
Buffer (0×04) {0×42, 0×2A, 0×00, 0×00}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

 

You can change your device id by changing these values:

 

“device-id”,

Buffer (0×04) {0×42, 0×2A, 0×00, 0×00} this is for 2a42, 0x32, 0x2A is for 2a32

 

Note: if you change it to 0x02, 0x2A (2a02) your card will be recognized as GMA X3100 BUT (for now) this will NOT help you to get QE/CI working. More editing is needed !!!

 

The information and the links will be updated at every new solution.

  • Like 1
Link to comment
Share on other sites

THE MOST STRANGE THING !!!

 

Guys that is what happen when try to load a edited kext. The tings with red are my ICONS ON THE TASKBAR from the WINDOWS I have installed on another partition. You can see the spinning circle from the OS X to be sure that the OS X is loaded.

 

?!?!?!?!?

post-434136-1277032485_thumb.jpg

Link to comment
Share on other sites

THE MOST STRANGE THING !!!

 

Guys that is what happen when try to load a edited kext. The tings with red are my ICONS ON THE TASKBAR from the WINDOWS I have installed on another partition. You can see the spinning circle from the OS X to be sure that the OS X is loaded.

 

?!?!?!?!?

 

Hey, first post (I think). By chance, did you boot into OS X after restarting from Windows (ergo: NOT a cold boot into OS X)? The reason I ask is that what you're seeing there might be remnants of the video buffer from when Windows last rebooted. It might not have flushed completely. What I'm saying is.. if you did indeed restart from Windows, what you're seeing is at least part of the actual framebuffer. This is exciting :D

Link to comment
Share on other sites

Hi everyone! This is my first post, and I'm new to Macs, so please bear with me. Anyway...

 

I'm running 64-bit SL, and I have the Intel GMA 4500MHD. I believe that I have 1820 mb of VRAM. I was thankfully able to change my screen resolution using the method described above, but the system seems laggy. I think that SL is not seeing or using all of my VRAM. Is there a way to fix this?

 

If there's not, are you planning to make a kext for 64-bit users? If not, would I lose much if I just downgraded to Leopard and used the kext for it?

 

Sorry if I said anything stupid or posted in the wrong place :thumbsup_anim: I'm not too familiar with graphics cards or OS X.

 

Thanks to you and all of the hackintosh community for all that you've done! My installation has been remarkably easy and straightforward, with the graphics being my final difficulty. I really appreciate your clear (and working!) description of how to change the screen resolution!

Link to comment
Share on other sites

No way to change the screen resolution at 64 bit. The only way to have your NATIVE resolution is using the Deviato`s method. The VRAM is always 64MB and the system is not using even 1MB because there IS STILL NOT hardware acceleration for this card, so that is the reason for the slow graphics. The first post describe everything, but why you should read it, when the asking is much easier!

Link to comment
Share on other sites

The first post describe everything, but why you should read it, when the asking is much easier!

 

I did in fact read the entire post, and indeed, the whole discussion up to this point. Thus followed my successful use of Deviato's method. I apparently didn't realize that there was a difference between native and screen resolution.

 

Also, I confess that I have no idea what a DSDT table is, or what modifying it would accomplish. I have read posts in other topics (yes, I have tried to research this) that discussed how to alter some file to coerce OS X into using more VRAM. In my ignorance, I thought it was possible that there was some sort of easy fix. I apologize for the offense I appear to have caused.

 

Thanks again for all that you do!

Link to comment
Share on other sites

Long time lurker but first post :(

 

Thanks for making this one stop guide for Intel 4500 users, bboyg.

 

I read all the threads you linked to, but I was curious as to the performance of the graphic chip and the use of OS X. I mean, would you rather use windows because of no QE/CI or is OS X is fine without it?

 

What about Youtube videos, Microsoft word, no avi video? Don't you miss watching movies on your laptop? The reason I'm asking all this is because my friend is selling his dell notebook with this card for a very cheap price. In other words, I want to know the experience (if that makes any sense?) I'm probably going to install leopard since it's a single core machine.

 

Thanks!!!

Link to comment
Share on other sites

I recommend using 10.5.x Leopard for now, because there are no issues with the kexts from 10.5.5 to 10.5.8. Snow Leopard works fine too but there are problems after updating to 10.6.3 and later. In the 10.6 there are more programs (like screencapture, imagepreview, etc) who needs QE by default, so you can`t use them. The using of the system without QE/CI:

-Microsoft Office works fine

-Movies works fine ONLY with QuickTime and you need to install Perian, MPEG and WMV codecs first

-YouTube works too, but sometimes the HD movies doesn`t work fine

-Forget about watching DVD movies

-Forget about iWork and iLife

-Forget about Gaming

-Forget about ALL the software that needs QE/CI

Link to comment
Share on other sites

I recommend using 10.5.x Leopard for now, because there are no issues with the kexts from 10.5.5 to 10.5.8. Snow Leopard works fine too but there are problems after updating to 10.6.3 and later. In the 10.6 there are more programs (like screencapture, imagepreview, etc) who needs QE by default, so you can`t use them. The using of the system without QE/CI:

-Microsoft Office works fine

-Movies works fine ONLY with QuickTime and you need to install Perian, MPEG and WMV codecs first

-YouTube works too, but sometimes the HD movies doesn`t work fine

-Forget about watching DVD movies

-Forget about iWork and iLife

-Forget about Gaming

-Forget about ALL the software that needs QE/CI

 

You can use iLife 08, but not iLife 09 since iLife 09 requires Quartz.

And you can run iWork 08 without Quartz, but you need my patch, but forget iWork 09.

  • Like 1
Link to comment
Share on other sites

You can use iLife 08, but not iLife 09 since iLife 09 requires Quartz.

And you can run iWork 08 without Quartz, but you need my patch, but forget iWork 09.

Thanks for the tip about iLife/iWork. Now I can use iMovie! ;)

Is there any way to run Final Cut Studio or Logic Studio?

 

I hope that a solution to hardware acceleration (QE/CI) is found soon; right now I'm using Deviato's method for native resolution (64-bit).

  • Like 1
Link to comment
Share on other sites

You can use iLife 08, but not iLife 09 since iLife 09 requires Quartz.

And you can run iWork 08 without Quartz, but you need my patch, but forget iWork 09.

 

This is for Snow Leopard, isn`t it?

Because now I`m using 10.5.8 and I think that I don`t need the patch.

Link to comment
Share on other sites

bboyg, is there difference with 10.6 and 10.5? if i'll use 10.5.8. will QE/CI work?

 

Yes there is difference, but still no way to enable QE/CI. At 10.6.1 and 10.6.2 you can use the kext and the Deviato`s solution to get native resolution, but at 10.6.3 and 10.6.4 thare are issues.

Link to comment
Share on other sites

Hi everyone, I want to share little my experience about the X4500 on a hackintosh. First of all I’m running the X4500 (2a42) on SL 10.6.4, with full resolution support and also native brightness control.

 

As bboyg said I do had some problems with the X3100 modified kexts on 10.6.3 and 10.6.4. The problem was that in those versions Apple changed the X3100 kexts, so they I needed to patch the kexts again to make them work properly. In order to do that I simply used the bash created by Tienneke that adds your device id into the X3100 vanilla kexts (that bash was created for 10.5.8 but it works flawlessly for me on 10.6.3 and 10.6.4).

 

One more thing, if you are running a resolution higher than 1366 x 768 you will need to add the dual link hack on your DSDT. My notebook has a 1440x900 LCD so I was getting the blue/grey screen issue when I tried to use the patched X3100 kexts before applying the dual link hack.

Link to comment
Share on other sites

  • 3 weeks later...

@bboyg: I've tried using the x3100 kext but it wasn't being loaded so I just tried setting my native resolution by using the "Graphics Mode"="XxYxZ" and it worked perfectly for any resolution without the need of patching my dsdt changing from the chameleon boot file or using a kext to load

 

I noticed that your x3100 FB kext once worked when I was on 10.6 but since i used the iAtkos S3 distro (yeah I know still in the distro days :D) the FB doesn't seem to work like rDrG pointed out so I had to find another work around.

 

If you're on 10.6.3 or .4 do try out the graphics string as it might help you get your native resolution

~T.L.M.

 

Link to comment
Share on other sites

  • 4 weeks later...

Hello everyone,

 

Would someone please help me as tell me "how" to add this code do my dsdt? The problem is the code here on the page is all justified left, while in the dsdt the brackets are in different alignments. Attached is my dsdt.dsl so that maybe someone can help out?

 

Thanks.

 

acpi_dsdt.rar

Link to comment
Share on other sites

You need iASLme to DEcompile the DSDT.aml to DSDT.dsl and make it editable. Then you need to find the GFX0 section and add the code. Then Compile again and that`s it.

 

 

Hi bboyg, and thank you for your reply.

 

Here is the thing: I know how to decompile and recompile the dsdt. My confusion is where to add the code. If you would take a look at my dsdt.dsl below, the GFX0 section looks like this:

           Device (GFX0)
           {
               Name (_ADR, 0x00020000)
               Name (DSEN, 0x00)
               Name (NDID, 0x00)
               Name (DID1, 0x80000100)
               Name (DID2, 0x80000410)
               Name (DID4, 0x00)
               Name (DID5, 0x00)
               OperationRegion (OPR0, SystemIO, 0x80, 0x01)
               Field (OPR0, ByteAcc, NoLock, Preserve)
               {
                   DP80,   8
               }

               OperationRegion (OPR1, SystemIO, 0xB2, 0x01)
               Field (OPR1, ByteAcc, NoLock, Preserve)
               {
                   DPB2,   8
               }

               OperationRegion (OPR2, SystemIO, 0xB3, 0x01)
               Field (OPR2, ByteAcc, NoLock, Preserve)
               {
                   DPB3,   8
               }

               OperationRegion (OPR3, SystemIO, 0x0900, 0x01)
               Field (OPR3, ByteAcc, NoLock, Preserve)
               {
                   DP9H,   8
               }

               OperationRegion (IGFX, PCI_Config, 0xF0, 0x10)
               Field (IGFX, AnyAcc, NoLock, Preserve)
               {
                           Offset (0x04), 
                   BREG,   8
               }

               Scope (\_GPE)
               {
               }

               Method (_DOS, 1, NotSerialized)
               {
                   Store (And (Arg0, 0x07), DSEN)
               }

               Method (_DOD, 0, NotSerialized)
               {
                   If (SCIP ())
                   {
                       Store (0x00, NDID)
                       If (LNotEqual (DIDL, Zero))
                       {
                           Store (SDDL (DID1), DID1)
                       }

                       If (LNotEqual (DDL2, Zero))
                       {
                           Store (SDDL (DID2), DID2)
                       }

                       If (LNotEqual (DDL3, Zero))
                       {
                           Store (SDDL (DID3), DID3)
                       }

                       If (LNotEqual (DDL4, Zero))
                       {
                           Store (SDDL (DID4), DID4)
                       }

                       If (LNotEqual (DDL5, Zero))
                       {
                           Store (SDDL (DID5), DID5)
                       }
                   }

                   If (LEqual (NDID, 0x01))
                   {
                       Name (TMP1, Package (0x01)
                       {
                           0xFFFFFFFF
                       })
                       Store (Or (0x00010000, DID1), Index (TMP1, 0x00))
                       Return (TMP1)
                   }

                   If (LEqual (NDID, 0x02))
                   {
                       Name (TMP2, Package (0x02)
                       {
                           0xFFFFFFFF, 
                           0xFFFFFFFF
                       })
                       Store (Or (0x00010000, DID1), Index (TMP2, 0x00))
                       Store (Or (0x00010000, DID2), Index (TMP2, 0x01))
                       Return (TMP2)
                   }

                   If (LEqual (NDID, 0x03))
                   {
                       Name (TMP3, Package (0x03)
                       {
                           0xFFFFFFFF, 
                           0xFFFFFFFF, 
                           0xFFFFFFFF
                       })
                       Store (Or (0x00010000, DID1), Index (TMP3, 0x00))
                       Store (Or (0x00010000, DID2), Index (TMP3, 0x01))
                       Store (Or (0x00010000, DID3), Index (TMP3, 0x02))
                       Return (TMP3)
                   }

                   If (LEqual (NDID, 0x04))
                   {
                       Name (TMP4, Package (0x04)
                       {
                           0xFFFFFFFF, 
                           0xFFFFFFFF, 
                           0xFFFFFFFF, 
                           0xFFFFFFFF
                       })
                       Store (Or (0x00010000, DID1), Index (TMP4, 0x00))
                       Store (Or (0x00010000, DID2), Index (TMP4, 0x01))
                       Store (Or (0x00010000, DID3), Index (TMP4, 0x02))
                       Store (Or (0x00010000, DID4), Index (TMP4, 0x03))
                       Return (TMP4)
                   }

                   If (LGreater (NDID, 0x04))
                   {
                       Name (TMP5, Package (0x05)
                       {
                           0xFFFFFFFF, 
                           0xFFFFFFFF, 
                           0xFFFFFFFF, 
                           0xFFFFFFFF, 
                           0xFFFFFFFF
                       })
                       Store (Or (0x00010000, DID1), Index (TMP5, 0x00))
                       Store (Or (0x00010000, DID2), Index (TMP5, 0x01))
                       Store (Or (0x00010000, DID3), Index (TMP5, 0x02))
                       Store (Or (0x00010000, DID4), Index (TMP5, 0x03))
                       Store (Or (0x00010000, DID4), Index (TMP5, 0x04))
                       Return (TMP5)
                   }

                   Return (Package (0x01)
                   {
                       0x0400

 

So, it has a lot of information and I do believe that the alignment is important also, is it not?

 

Another problem is that when I cut/paste the section from the dsdt to insert it in my reply here, it keeps the orginal format.

 

However, as soon as click on "add reply", the code automatically justifies left. Any help you could provide is much appreciated.

 

Thanks again

Link to comment
Share on other sites

  • 4 weeks later...
You can use iLife 08, but not iLife 09 since iLife 09 requires Quartz.

And you can run iWork 08 without Quartz, but you need my patch, but forget iWork 09.

 

I have tried iLife 9 and iLife 8 on Snow leopard 10.6.4 and on Leopard 10.5.4,6,7,8 and iMovie does not work, Also Can not edit photos in iPhoto normal mode and full screen mode, Only get black image in the full screen mode and no image in the normal edit mode.

 

Please advice.

 

Best Regards

Link to comment
Share on other sites

 Share

×
×
  • Create New...