Jump to content

HD4000 full acceleration for 10.8 / 10.7.5


proteinshake
 Share

126 posts in this topic

Recommended Posts

No, I don't need a dedicated gfx-card. The HD4000 integrated into Ivy Bridge 3770 will do for me, as well as for many others. I thought I'd share the little I know about how to get it to run actually. Depending on your hardware this may or may not work - it works perfectly fine for me. Okay, let's get started by dumping some lines of DSDT:

 

 

		Device (MEI)
		{
			Name (_ADR, 0x00160000)
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x02)
					{
						"device-id",
						Buffer (0x04)
						{
							0x3a, 0x1e, 0x00, 0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

 

I've got a H67 Chipset here, so I'm using device MEI to change my device-id from 3A1C to 3A1E.

Otherwise AppleIntelSNBGraphicsFB.kext will block AppleIntelFramebufferCapri.kext.

 

 

		Device (IGPU)
		{
			Name (_ADR, 0x00020000)
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x0C)
					{
						"AAPL,ig-platform-id",
						Buffer (0x04)
						{
							0x09, 0x00, 0x66, 0x01
						},
						"device-id",
						Buffer (0x04)
						{
							0x66, 0x01, 0x00, 0x00
						},
						"vendor-id",
						Buffer (0x04)
						{
							0x86, 0x80, 0x00, 0x00
						},
						"subsystem-vendor-id",
						Buffer (0x04)
						{
							0x6b, 0x10, 0x00, 0x00
						},
						"subsystem-id",
						Buffer (0x04)
						{
							0xea, 0x00, 0x00, 0x00
						},
						"revision-id",
						Buffer (0x04)
						{
							0x09, 0x00, 0x00, 0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

 

AAPL,ig-platform-id was the key to get the HD4000 kext's to load. No go without it. Lastly you may want to modify AppleGraphicsPowerManagement.kext. I'm using the macmini5,1 definition, so this is my edit:

 

 

 

 



<key>Mac-8ED6AF5B48C039E1</key>
<dict>
  <key>IGPU</key>
  <dict>
  <key>Heuristic</key>
  <dict>
	 <key>EnableOverride</key>
	 <integer>0</integer>
	 <key>ID</key>
	 <integer>2</integer>
  </dict>
	 <key>control-id</key>
	 <integer>16</integer>
	<key>max-power-state</key>
	<integer>10</integer>
	<key>min-power-state</key>
	<integer>0</integer>
  </dict>
</dict>


 

Good luck! :wink2:

 

Cinebench R11.5 is around 23fps with 12A256 btw.

  • Like 3
Link to comment
Share on other sites

This sound promising. I am planning to buy the gigabyte GA-Z77-DS3H with i5-3570K do you think it will work at what are the strings I would have to add?

Not a total noob (god a acer AOA150 running and fully working with 10.6.6) but now i would like to upgrade my desktop PC.......and run Lion and soon Mountain Lion.

Link to comment
Share on other sites

Hi,iv got core i73610QM 2.3 Ghz ... i didn't need to change nothing on DSDT.aml to load AppleIntelFramebufferCapri.kext ... Also it loads the AppleIntelHD4000Graphics.kext AGPM not loading.... no qe/ci at the moment..... Lion 10.7.5 / Mountain Lion 10.8 GM (12A269) Asus A55VD Core i7 3610QM IntelHD4000 Nvidia GeForce GT610M 2 GB 6 GB RAM

Link to comment
Share on other sites

Hey!

 

I've got i5-3570K, GA-Z77X-UD5H, injected HD 4000 successfully as described above, but still no qe/ci .. I guess it's cause the AppleGraphicsPowerManagement.kext makes trouble at startup (or rather doesn't get loaded):

 

Jul  9 20:57:47 Mac-Pro kernel[0]: kxld[com.apple.driver.AGPM]: The following symbols are unresolved for this kext:
Jul  9 20:57:47 Mac-Pro kernel[0]: kxld[com.apple.driver.AGPM]:  __ZN15AGPMEventSource9metaClassE
Jul  9 20:57:47 Mac-Pro kernel[0]: kxld[com.apple.driver.AGPM]:  __ZN4AGPM17newAGPMHeuristic4Ev
Jul  9 20:57:47 Mac-Pro kernel[0]: Cant load kext com.apple.driver.AGPM - link failed.
Jul  9 20:57:47 Mac-Pro kernel[0]: Failed to load executable for kext com.apple.driver.AGPM.
Jul  9 20:57:47 Mac-Pro kernel[0]: Kext com.apple.driver.AGPM failed to load (0xdc008016).
Jul  9 20:57:47 Mac-Pro kernel[0]: Failed to load kext com.apple.driver.AGPM (error 0xdc008016).

 

.. any idea? It loads AppleIntelFramebufferCapri.kext btw

 

edit: some info about AAPL,ig-platform-id I found: #####

Link to comment
Share on other sites

I have a Z77X-UD5H too, but with a 3770k - can you point me in the right direction to apply the instructions above? I couldnt really see where in my DSDT i was supposed to make the edits to add the IGPU device (its not there at present)

 

I understand that it doesn't result in qe/ci being enabled but is a step forward at least. its the only thing left for me to get working on this otherwise great setup.

 

Cheers

  • Like 1
Link to comment
Share on other sites

if the IGPU device doesn't appear in your DSDT, it's just named differently (like eg GFX0), I think you should rename it (and any appearance of course) to IGPU, since it seems to be the name, Apple uses for internal graphics

Link to comment
Share on other sites

Really... it was all about one device-properties string on org,chameleon.Boot.plist iv used ( ig-platform-id: 01660003, Stolen RAM for FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2 ) from the topic of Wollvieh .... i can post mi entire string and then you just need to try all those combinations only changing the last number .... first i tried 01660009,but gave me a black screen... second try, buummmmm... QE/CI .... iv just changed the 9 to a 3 .....

Link to comment
Share on other sites

Can

Really... it was all about one device-properties string on org,chameleon.Boot.plist i use (

ig-platform-id: 01660003, Stolen RAM for FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2)

 

Can you post your dsdt.aml ?

Link to comment
Share on other sites

Yes, i can post my DSDT, but i didn't changed nothing on the dsdt.... it was all about this simple string generated with gfxutil.app ( thank´s to Oldnapalm ) and to artur_pt for his help also .... proteinshake for his tip.... respect to all of you......

 

Asus A55VD Extra Folder with the string on org.chamelon.Boot.plist http://www.sendspace.com/file/0thtu0

  • Like 1
Link to comment
Share on other sites

Hey!

 

I've got i5-3570K, GA-Z77X-UD5H, injected HD 4000 successfully as described above, but still no qe/ci .. I guess it's cause the AppleGraphicsPowerManagement.kext makes trouble at startup (or rather doesn't get loaded):

 

Jul  9 20:57:47 Mac-Pro kernel[0]: kxld[com.apple.driver.AGPM]: The following symbols are unresolved for this kext:
Jul  9 20:57:47 Mac-Pro kernel[0]: kxld[com.apple.driver.AGPM]:  __ZN15AGPMEventSource9metaClassE
Jul  9 20:57:47 Mac-Pro kernel[0]: kxld[com.apple.driver.AGPM]:  __ZN4AGPM17newAGPMHeuristic4Ev
Jul  9 20:57:47 Mac-Pro kernel[0]: Cant load kext com.apple.driver.AGPM - link failed.
Jul  9 20:57:47 Mac-Pro kernel[0]: Failed to load executable for kext com.apple.driver.AGPM.
Jul  9 20:57:47 Mac-Pro kernel[0]: Kext com.apple.driver.AGPM failed to load (0xdc008016).
Jul  9 20:57:47 Mac-Pro kernel[0]: Failed to load kext com.apple.driver.AGPM (error 0xdc008016).

 

.. any idea? It loads AppleIntelFramebufferCapri.kext btw

 

edit: some info about AAPL,ig-platform-id I found: http://www.tonymacx8...p?f=169&t=65592

 

Hi, I have the same board as you, can you post your dsdt ?

Link to comment
Share on other sites

Yes, i can post my DSDT, but i didn't changed nothing on the dsdt.... it was all about this simple string generated with gfxutil.app ( thank´s to Oldnapalm ) and to artur_pt for his help also .... proteinshake for his tip.... respect to all of you...... Asus A55VD Extra Folder with the string on org.chamelon.Boot.plist http://www.sendspace.com/file/0thtu0

its not dsdt nor string, its InstallGenieo...

Link to comment
Share on other sites

I can confirm that this works. Tried it on my MSI Z77A-G43 with i7 3770K and ig-platform-id: 01660009. I did this using EFI string injection. Will do some more test on what is actually needed and what not.

 

Update:

OK, there's actually nothing more needed than this simple EFI string ... no DSDT or whatsoever. Thank you so much for figuring this out!

Link to comment
Share on other sites

@dta: would you share your EFI string? I'm still stuck (KPs, funny stripes, ...)

 

edit: got it! works for me now with this one:

ig-platform-id: 01620005, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2

 

-> EFI string for device-properties in org.chameleon.Boot.plist:

8800000001000000010000007c0000000200000002010c00d041030a000000000101060000027fff0400100000006d006f00640065006c0000001a000000496e74656c20484420477261706869637320343030302c0000004100410050004c002c00690067002d0070006c006100740066006f0072006d002d006900640000000800000005006201

 

:trumpet:

Link to comment
Share on other sites

@dta: would you share your EFI string? I'm still stuck (KPs, funny stripes, ...)

 

edit: got it! works for me now with this one:

ig-platform-id: 01620005, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2

 

-> EFI string for device-properties in org.chameleon.Boot.plist:

8800000001000000010000007c0000000200000002010c00d041030a000000000101060000027fff0400100000006d006f00640065006c0000001a000000496e74656c20484420477261706869637320343030302c0000004100410050004c002c00690067002d0070006c006100740066006f0072006d002d006900640000000800000005006201

 

:trumpet:

 

Your platform ID does also work on my board. I think using your ig-platform-id: 01620005 is a better idea because 0162 is actually the desktop chipset which has a variable clock rate from 650-1150 while the mobile chipsets (0166) have a clock rate from 350-1300.

As proteinshake pointed out it might be neccessary to edit AppleGraphicsPowerManagement.kext.

Link to comment
Share on other sites

I have a GA-Z77X UD5H and a GTX 560 TI, with the EFI string I got to the desktop UI, I could check that the AirPlay to Apple TV showed up but didn't had time for much more because it panics. Is it possible to have both HD4000 and GTX 560ti enabled ?

Link to comment
Share on other sites

Hmm, I can't get AGPM to load. Tried different models in SMBIOS, but nothing worked. Also I've noticed that there is now no more TurboBoost, highest clock is standard clock ... but I think this might be normal due to max TDP restrictions? Not normal should be that I'm now only getting 2 pstates using the generators in Chameleon. Before enabling the HD4000 I've been getting a minimum of 6 pstates.

 

Update:

I have fixed the TurboBoost issue (had to enable "Adjust CPU Frequency in OS" in BIOS), weird because with HD4000 disabled I didn't had to do that. Pstates are still not working correctly, Chameleon simply doesn't generate them. I suppose it would work if I would create my own SSDT.

 

Update2:

Everything Fixed! See post #41

Link to comment
Share on other sites

Taruga

Is it possible to have both HD4000 and GTX 560ti enabled ?

 

 

When I try HD4000 and GTX570, I get the following error message in bdmesg:

 

nVidia GeForce GTX 570 -4095MB NV1ff [10de:1086] :: PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)

ERROR: dcbtable_version is 0x7

ERROR: nVidia ROM Patching Failed

 

Usually KPs. It does boot successfully after many tries (10 - 20) and on restart, same problem. Appears to be a Chameleon problem.

 

Works perfectly with HD6870/HD4000.

Link to comment
Share on other sites

Taruga

Is it possible to have both HD4000 and GTX 560ti enabled ?

 

 

When I try HD4000 and GTX570, I get the following error message in bdmesg:

 

nVidia GeForce GTX 570 -4095MB NV1ff [10de:1086] :: PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)

ERROR: dcbtable_version is 0x7

ERROR: nVidia ROM Patching Failed

 

Usually KPs. It does boot successfully after many tries (10 - 20) and on restart, same problem. Appears to be a Chameleon problem.

 

Works perfectly with HD6870/HD4000.

 

Are you using EFI string and graphicsenabler together?

Link to comment
Share on other sites

Your platform ID does also work on my board. I think using your ig-platform-id: 01620005 is a better idea because 0162 is actually the desktop chipset which has a variable clock rate from 650-1150 while the mobile chipsets (0166) have a clock rate from 350-1300. As proteinshake pointed out it might be neccessary to edit AppleGraphicsPowerManagement.kext.
can u post efi string you used thx
Link to comment
Share on other sites

Any ideas how to stop AppleIntelSNBGraphicsFB.kext

from blocking

AppleIntelFramebufferCapri.kext without DSDT ?

I have a Z68X board with the new UEFI bios (so I don't have/use a DSDT) and the Capri kext is getting blocked no matter what EFI string I use. Could it be possible to change the device-id of the MEI device using another EFI string ? Also, does Chameleon support multiple EFI strings, and if it does, how to put them in the plist ?

Link to comment
Share on other sites

 Share

×
×
  • Create New...