Jump to content

Intel GMA4500 / GL 4x Express Chipset


  • Please log in to reply
75 replies to this topic

#21
viloulo

viloulo

    InsanelyMac Protégé

  • Members
  • Pip
  • 16 posts
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.

Attached File  acpi_dsdt.rar   18.71KB   85 downloads

#22
bboyg

bboyg

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 309 posts
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.

#23
viloulo

viloulo

    InsanelyMac Protégé

  • Members
  • Pip
  • 16 posts

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

#24
shafez

shafez

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 1 posts
  • Gender:Male
  • Location:Cairo - Egypt

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

#25
dlambert

dlambert

    InsanelyMac Protégé

  • Members
  • PipPip
  • 53 posts
  • Gender:Male
  • Location:Galien, Michigan
  • Interests:Computers, Hacking
http://deviato.wordp...ory/hackintosh/ For the custom boot loader.

#26
limonada

limonada

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts
The key is in hex patching AppleIntelGMAX3100.kext and AppleIntelGMAX3100FB.kext

Patching GMAX3100FB.kext works ok.

The problem is in patching GMAX3100.kext, because it produces a boot crash after the grey screen. Here is where DSDT patch enters.
In DSDT, apparently we've have to delete CRT entries (it seems CRT entrie confuses MacOSX, that tries to look for this kind of monitor) and also inject values from original GMAX3100 card through "Method (_DSM, 4, NotSerialized)". I've only reached to pass from grey screen to blue screen, then it goes to a scrambled screen with really slow performance. I think this is the right path and it's only matter of keep trying different combinations of DSDT data injecting.

#27
nesha_le

nesha_le

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 1 posts

The key is in hex patching AppleIntelGMAX3100.kext and AppleIntelGMAX3100FB.kext

Patching GMAX3100FB.kext works ok.

The problem is in patching GMAX3100.kext, because it produces a boot crash after the grey screen. Here is where DSDT patch enters.
In DSDT, apparently we've have to delete CRT entries (it seems CRT entrie confuses MacOSX, that tries to look for this kind of monitor) and also inject values from original GMAX3100 card through "Method (_DSM, 4, NotSerialized)". I've only reached to pass from grey screen to blue screen, then it goes to a scrambled screen with really slow performance. I think this is the right path and it's only matter of keep trying different combinations of DSDT data injecting.

Excellent work limonada, quite impressive. Wish you all the best solving this quite annoying issue for most of us.
Regards.

#28
limonada

limonada

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts
I'm not working on the solution I've suggested at the moment, I'm just passing the ball...

#29
olykwon

olykwon

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts
if you think you could give this a shot: Download the modded drivers for intel 5xxxHD then in the dsdt inject or rewrite the graphics section to include the hardware ID's of the 5xxx and try to boot up, should load the graphic drivers for that intel chipset, (might need to apply dual link fix and (or) EDID injection, but thats merely speculation, good luck =D id test it but my sisters 4500 has only windows 7 but i am currently working on its dsdt for other things, if nobody gets around to this i will definitely give it a try,

I say grab the modified drivers because it seems that the operating system looks for its nvidia brother in the laptop and cannot find it, to my understanding the modified drivers have that check removed, good luck and i really hope we can get this working

#30
kenia1234

kenia1234

    InsanelyMac Protégé

  • Members
  • PipPip
  • 51 posts
Hi guys!

I tried AppleIntelGMAX3100FB.kext and there are some problem with Snow Leopard 10.6.3!!
I have to report a bug...
I mean...the driver is working and the resolution became native! but there's a strange and annoying bug...

The mouse actually works but the indicator is stuck in upper left of the screen so you can't see where you are pointing to... :D

If somebody knows how to fix this odd bug it would be really appreciated!!

I tried to change resolution but it doesn't change anything...I had to replace the kext...I m using SL 10.6.3...Intel GMA 4500MHD...

Greets!!

#31
acero

acero

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts
hi,
i injected this code to try Intel Hd graphic , it show up correctly in profile but no more... than that
..[codebox]

Method (_DSM, 4, NotSerialized)
{
Store (Package ()
{
"device_type",
Buffer (0x08)
{
"display"
},

"dpm",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"IODisplayConnectFlags",
Buffer (0x04)
{
0x00, 0x08, 0x00, 0x00
},

"AAPL,aux-power-connected",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"AAPL,backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"AAPL,gray-page",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"AAPL,gray-value",
Buffer (0x04)
{
0xc3, 0x8c, 0x64, 0x00
},

"AAPL,iokit-ndrv",
Buffer (0x04)
{
0x00, 0x62, 0x4e, 0x5b
},

"AAPL,os-info",
Buffer ()
{
0x30, 0x49, 0x01, 0x11, 0x01, 0x10, 0x08, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
},

"AAPL00,T1",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},

"AAPL00,T2",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"AAPL00,T3",
Buffer (0x04)
{
0xC8, 0x00, 0x00, 0x00
},

"AAPL00,T4",
Buffer (0x04)
{
0xc8, 0x00, 0x00, 0x00
},

"AAPL00,T5",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},

"AAPL00,T6",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},

"AAPL00,T7",
Buffer (0x04)
{
0x90, 0x01, 0x00, 0x00
},

"AAPL,alias-policy",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"AAPL,display-alias",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},

"AAPL,mux-switch-state",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},

"AAPL,primary-display",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},

"model",
Buffer ()
{
"Intel HD Graphics"
},

"built-in",
Buffer (One)
{
0x01
},

"device-id",
Buffer (0x04)
{
0x46, 0x00, 0x00, 0x00
}

}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
} [/codebox]
i

#32
pctmac

pctmac

    InsanelyMac Protégé

  • Members
  • Pip
  • 42 posts
As a lot of people, I am looking for a kext for this GPU.

So far, all I read was to try to patch of existing Apple kext to make it recognize a GPU which is not used by Applein their Mac.

It might be a very stupid question but does Apple publish documentation on how to write a driver? ( I guess this is the case to allow HighEnd graphics card to be added to a mac?)

in that case, why not trying to use a Linux driver (thus it would allow to understand how to access to the GPU as if I a not wrong Intel does not publish such documentation) and then modify it for Mac OS?

This is probably a stupid question and sorry in advance if it is but wld be helpfull to understand the root cause if this approach is not possible.

Thanks

#33
Diego Junges

Diego Junges

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 2 posts

As a lot of people, I am looking for a kext for this GPU. So far, all I read was to try to patch of existing Apple kext to make it recognize a GPU which is not used by Applein their Mac. It might be a very stupid question but does Apple publish documentation on how to write a driver? ( I guess this is the case to allow HighEnd graphics card to be added to a mac?) in that case, why not trying to use a Linux driver (thus it would allow to understand how to access to the GPU as if I a not wrong Intel does not publish such documentation) and then modify it for Mac OS? This is probably a stupid question and sorry in advance if it is but wld be helpfull to understand the root cause if this approach is not possible. Thanks


I think this is a good idea.
Haven´t heard of anyone trying this ... and it could work.
But I believe the problem is Quartz Extreme and Core Image ... I don´t know if this is used on Linux ... so will a Linux driver work properly on a mac? That´s my doubt.

You´ve asked about an apple´s documentation on drivers programming, so here they are:
http://developer.app...xt_anatomy.html

Looks like there´s nobody trying to get this card working ...

#34
TheRealPorkchop

TheRealPorkchop

    InsanelyMac Protégé

  • Members
  • Pip
  • 16 posts
I recently "acquired" a Toshiba laptop with the Intel GMA 4500M graphics chip. I own several real Mac's, started out with doing the Hackintosh thing and ended up buying one Mac cause I liked it so well. Then ended up buying more and more of the darn things but anyway...

I just enjoying worrying the living hell out of myself trying to get OSX to run on a PC, have nothing much better to do with my free time. I will agree with someone else that said they regret buying the laptop they did cause of this chip. Personally, I don't give a flying {censored} about QE or CI just as long as I can get the correct resolution working. If I wanna play a game, I got a custom built PC for that and an Xbox 360. If I wanna watch DVD's or whatever that bad, then I got a desktop Mac Pro and a Macbook Pro that I can use, not to mention the same Xbox 360 and an actual DVD player hooked to my TV. But I understand the point behind everyone else wanting/needing those things to work on their Hackintosh.

With that said, I haven't tried the fix/solution on page 1 of this thread yet on my most recent Hackintosh victim. But I will and maybe I'll be satisfied with the result for my personal needs.

The only other laptop that I can say is a nightmare to install any OSX version on is an HP DV series, especially with an AMD processor. I have less hair and I'm 50lbs lighter because of that experience. HP... you made me lose so many nights of sleep because of your crappy laptops...hahaha.

Good luck guys, maybe somebody else with plenty of time on their hands will find a solution to this problem.

#35
debugbr

debugbr

    InsanelyMac Protégé

  • Members
  • PipPip
  • 85 posts
  • Gender:Male
  • Location:Brazil
Hello guys.

First of all, sorry for any english mistakes. Has been a while that I don't write anything in english.


Ok, so, I'd like to share my tests and results. I'm trying to get a GMA 4500 (from my Dell Inspiron 1545) to work on Snow Leopard 10.6.6 using GMA X3100 kexts. I've used Deviato's solution for a few days, but I need a secondary display and resolution options. I prefer this way.

Last night I spent 6 hours hacking my DSDT trying to "clean" the VID/GFX0/whatever devices to make sure I know what I'm working with. Eventually I got it "working". I made a lot of try-and-error with _ADR values, thinking that would solve my problems. As expected, it didn't fixed all my problems. I added to my "experiment" the "soft cursor" kexts for GMA4500. That made the display at least show a blue screen!

So I read somewhere that wrong EDID can cause internal screen problems (since my external VGA (a 1680x1050 LCD display) was working!). So, I exported my EDID raw data on Windows and loaded it inside /System/Library/Displays/Overrides/DisplayVendorID-756e6b6e/DisplayProductID-717. It kind of worked. Right now I'm typing this on my external display, since the internal has a few problems (but it's working!).

The internal LCD is working: I can even change its resolution! But there's a problem that I can't fix: pixelated screen. Since screenshots, of course, won't get pixelated, I'm sharing with you photos of the internal display some icons and text.

http://img291.images...6/rdsc00498.jpg
http://img849.images...6/rdsc00499.jpg
http://img218.images...4/rdsc00500.jpg

So, my question is: how to make it work? I'm also sharing my DSDT file. You won't find there the device-id hack. Using that, I can't load the driver (and I'm not sure why :gun:).

For now, I have external display support (probably not a good idea to enable the "Mirror" feature.. it'll crash the entire system lol), but the internal LCD has this stupid problem. Ah, and of course, I'm on 32bit mode.

DSDT: Attached File  dsdt.dsl.txt   181.43KB   94 downloads

Thanks in advance.

EDIT: Nevermind! DualLink was the problem. Removed and the display worked. Finally!

So, for Dell Inspiron 1545 owners: GMA 4500 is possible on Snow Leopard 10.6.6. You'll need "software cursor" kexts and this DSDT: Attached File  dsdt_r02.dsl.txt   181.44KB   128 downloads

Attached File  GMA4500SystemProfiler.tiff   91.67KB   339 downloads

I think I have to thank you guys for discussing the GMA 4500 problems. Without so many information here and other forums, I'd be stuck with Deviato's solution. It's nice to have another way of having native resolution with dual-screen support. Also, booting in 32bits mode is not a big problem. I prefer 64bits mode, of course, but until I get AppleIntelGMAX3100FB.kext working on it, let's use it this way.


:)

#36
bboyg

bboyg

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 309 posts
It is impossible to run hardware acceleration on this card, because is never has been used by Apple and the architecture is different by X3100 and GMA HD series. NO WAY!

#37
black_monolith

black_monolith

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
I am responding to the latest post in this thread which claims that the architectures of GMA3100 and GMA4500 are different enough that there is no backward compatibility between the two chips. I have read this many times, but I was very interested to learn about a development in the windows world.

Apparently (for vista?) there exists a modded Intel 4500mhd driver that works on x3100 chips. I believe the author goes by the name "The3DWizard". I believe the driver was first posted in the Adobe forums. It seems that it was created in order to squeeze more performance out of the x3100 chip. My understanding is that the changes were made to the .inf file, not to the actual driver itself. Has anyone looked into this yet? In my opinion, if there is any compatibility between a family of chips, it is usually in the backward direction, not forward (as in this case). But the fact that the x3100 seems to be "foward compatible" with the 4500mhd driver is encouraging.

I am pretty new to Hackint0shes and I don't know what the hell I'm doing, but perhaps somebody in the know could at least look into the modified driver, and perhaps even contact "The3DWizard" to get some details.

#38
ltooz_audis

ltooz_audis

    InsanelyMac Protégé

  • Members
  • PipPip
  • 51 posts
  • Gender:Male
  • Location:Fremont, CA
Well, GMA4500 at least has kexts that displays beautiful 1366x768x32, which is better than the HD5700. I got my gateway id5822u running with snow leopard 10.6.7 with sound, sd card, sleep...

Youtube

Posted Image
Posted Image

#39
k02jh01

k02jh01

    InsanelyMac Protégé

  • Members
  • Pip
  • 1 posts

Apparently (for vista?) there exists a modded Intel 4500mhd driver that works on x3100 chips. I believe the author goes by the name "The3DWizard". I believe the driver was first posted in the Adobe forums. It seems that it was created in order to squeeze more performance out of the x3100 chip. My understanding is that the changes were made to the .inf file, not to the actual driver itself. Has anyone looked into this yet? In my opinion, if there is any compatibility between a family of chips, it is usually in the backward direction, not forward (as in this case). But the fact that the x3100 seems to be "foward compatible" with the 4500mhd driver is encouraging.


Google helped me find this information, but I don't know what to do with it. However, monolith is correct, it appears that only inf changes were made (likely only device IDs and params?) rather than a full rewrite of the driver guts...

http://forums.adobe....2283704#2283704
http://forum.noteboo...rivers-194.html

#40
mosman

mosman

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
I was able to get the GMA X4500 working In Lion :P

Use 32bit mode with the attached "AppleIntelGMAX3100FB" kext, which was originally posted here:
http://www.kexts.com...?do=file&id=909

1. Back up the orig AppleIntelGMAX3100FB.kext
2. Used Kext Helper to install the hacked kext, rebuild tag cache and restore permissions
3. Run Kext Utility
4. Configure a recent build (v2 RC5 r755 or newer) of the Chameleon bootloader: Restart Fix=Yes, arch=i386
5. Reboot
6. After reboot, the video chipset is recognized as X3100, and the "Display" interface in System Preferences offers the following resolutions: 1366x768, 1344x756, 1280x720, 1024x768, 800x600
7. To adjust brightness, use the "Configure" feature from the "Color" tab in the Display interface to create a custom color profile (gamma has a big impact upon brightness).

This technique works for me, but it may not for everyone, so be careful. I got a lot of KP's in the process of tinkering with this fix. If something goes wrong, I dual boot into Windows 7 and use MacDrive to access my Mac Partition. I then delete bad kexts, and/or edit files (plists, etc) with Notepad - this has made me more willing to take risks!

Ohh, and no QE/CI - I've tried lots of fixes for this but no luck. Native res is the real benefit from the hacked AppleIntelGMAX3100FB.kext.

Attached Files







0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy