Jump to content

Intel HD Graphics 4600 (Haswell) working displayport


Go to solution Solved by ErmaC,
190 posts in this topic

Recommended Posts

 

How i can find the value to patch and substitute in AppleIntelFramebufferAzul to show a correct Iris Pro ID instead of HD4600 (0412 to 0d22) in this capture ?

No need to change the device_id.  For some reason, the framebuffer defines the graphics. Using iMac14,1/Azul/Framebuffer/0x0300220D reports as Intel Iris Pro.  If you are using multiple displays the 0x0300220D edit above solves wake from sleep display and HDMI hot plug crash problems.

post-618506-0-67379000-1382653430_thumb.png

All he is saying he has HD4600 model being injected by chameleon, but he wants Iris Pro string instead...

The names are hard coded into chameleon, so if one doesn't like them, there are a few choices
  • use dsdt injection instead of chameleon,
  • change the name in the chameleon source and recompile yourself,
  • update the ioregistry with another name after chameleon has run
  • 2 weeks later...

 

//    { 0x80860a16, "HD Graphics ???? Mobile" }, // Haswell-ULT Integrated Graphics Controller - AppleIntelHD5000Graphics.kext

 
I think this is the HD4400 device id. Has anyone tried it yet?

 

 

Yes, that's the ID of the HD 4400 on the Surface Pro 2, and I've had no luck getting it to work. The Azul FB kext will load, but AppleIntelHD5000Graphics.kext causes it to hang every time. I've been trying every ig-platform-id I can find with no success at all yet. This is using Clover, since Chameleon won't boot on a surface pro.

  • 2 weeks later...

I have a problem with my Intel 4600 (Dev ID 0416, Rev 6). I tried every single value of the inject and the only two values that allow boot is "02001604" and "0300220d", but both have graphics corruption, while the "0300220d" had QE/CI, but only when my TV is connected. If I go to sleep on that value, the corruption is gone and I still have QE/CI, but my laptop display is black. This makes me think that my internal display is causing the issue with both values. Anything you can help me with would be most appreciated.

  • 2 weeks later...

Yes, that's the ID of the HD 4400 on the Surface Pro 2, and I've had no luck getting it to work. The Azul FB kext will load, but AppleIntelHD5000Graphics.kext causes it to hang every time. I've been trying every ig-platform-id I can find with no success at all yet. This is using Clover, since Chameleon won't boot on a surface pro.

 

do you have any progress?

  • 4 weeks later...

You are a genius.  This may obsolete dsdt edits.  Here is your ssdt without Method DTGP.

DefinitionBlock ("iASLFLrPKE.aml", "SSDT", 1, "SaSsd", "SaSsdt", 0x00003000)
{
    External (_SB_.PCI0.GFX0, DeviceObj)

    Scope (\_SB.PCI0.GFX0)
    {
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (LEqual (Arg2, Zero))
            {
                Return (Buffer (One)
                {
                     0x03
                })
            }

            Return (Package (0x04)
            {
                "AAPL,ig-platform-id", 
                Buffer (0x04)
                {
                     0x03, 0x00, 0x22, 0x0D
                }, 

                "hda-gfx", 
                Buffer (0x0A)
                {
                    "onboard-1"
                }
            })
        }
    }
}

Credit: PikeRAlpha Intel HD4600 with full resolution | Pike's Universum

Is there a reason to remove "DTGP" section? My MB (GA-Z87X-UD3H) DSDT does not have it at all.

 

Here what I have found:

DTGP method. You need to have it in your DSDT for many other fixes that inject some custom parameters for your devices. I put it above _WAK method, but it can defined be anywhere on the highest scope level (not inside any devices).

Is there a reason to remove "DTGP" section? My MB (GA-Z87X-UD3H) DSDT does not have it at all.

Some people try to over-optimize their DSDT edits. In C programming, this is the equivalent of getting rid of a subroutine by instead copying the subroutine's logic to all the places where the subroutine was used.

 

This may save you a CPU cycle or two, but that time difference is not important here, thus I recommend using a standard method (subroutine) to handle injection, as in my example.

 

Yes your stock dsdt won't have an injection method as these are OSX specific operations.

  • 2 weeks later...

Can someone please help me with my graphics?

 

With GraphicsEnabler enabled "ioreg -lw0 -r -n GFX0" returns "AAPL, ig-platform-id=0c26000". System profiler names it Intel HD P4600/P4700 which is out commented in ErmaC's best answer (why?).

 

I tried to inject "0300220d" as "InjectIntel-ig" with chameleon. Injection seems to be successful as the ioreg command above shows me that value as ig-plattform-id after reboot. Although shouldn't it be flipped?

 

Unfortunately system profiler still names it P4600/P4700, no kexts are loaded and graphic is very shaggy in launchpad for example.

 

I have a Xeon E3-1245V3 (socket 1150) and I am using smbios for iMac 14,2.

I want to know who makes the sound from the HDMI cable or not.

How do I find the developers. Mentioned But the result was not able to get sound out of HDMI cables.

Please anyone How to tell

THank to all   :D  :D 

Dunno, my proposed patch sequences still work as of 10.9.2 beta. With Clover on the fly kext patching I haven't lifted a finger ever since I've posted here.

I try to install it several times. It does not work
I advise to you to help me.
Try the Clover Chameleon
Everything is fine
But not the sound through an HDMI cable as well.
Thanks everyone

This is pretty much the only things necessary for HDMI audio to work on my H87-HD3 board.

1. Kext patches

 

 

	<key>KernelAndKextPatches</key>
	<dict>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>HDAU 0c0b -> 0c0c</string>
				<key>Name</key>
				<string>AppleHDAController</string>
				<key>Find</key>
				<data>CwwAAA==</data>
				<key>Replace</key>
				<data>DAwAAA==</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>HDAU 0a0c -> 0c0c</string>
				<key>Name</key>
				<string>AppleHDAController</string>
				<key>Find</key>
				<data>DAoAAA==</data>
				<key>Replace</key>
				<data>DAwAAA==</data>
			</dict>
		</array>
	</dict> 

 

 

 

2. ACPI patches (perhaps you need other igd-platform-id for your board). Note that here IGPU used to be called GFX0 and HDAU used to be called B0D3.

 

 

        Scope (\_SB.PCI0.IGPU)
        {
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package ()
                    {
                        "AAPL,ig-platform-id", 
                        Buffer (0x04)
                        {
                            0x00, 0x00, 0x16, 0x0A
                        }, 

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

                        "subsystem-id", 
                        Buffer (0x04)
                        {
                            0x1A, 0x01, 0x00, 0x00
                        }, 

                        "subsystem-vendor-id", 
                        Buffer (0x04)
                        {
                            0x6B, 0x10, 0x00, 0x00
                        }, 

                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }

        Scope (\_SB.PCI0.HDAU)
        {
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package ()
                    {
                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }

 

 

This is pretty much the only things necessary for HDMI audio to work on my H87-HD3 board.

1. Kext patches

 

 

	<key>KernelAndKextPatches</key>
	<dict>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>HDAU 0c0b -> 0c0c</string>
				<key>Name</key>
				<string>AppleHDAController</string>
				<key>Find</key>
				<data>CwwAAA==</data>
				<key>Replace</key>
				<data>DAwAAA==</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>HDAU 0a0c -> 0c0c</string>
				<key>Name</key>
				<string>AppleHDAController</string>
				<key>Find</key>
				<data>DAoAAA==</data>
				<key>Replace</key>
				<data>DAwAAA==</data>
			</dict>
		</array>
	</dict> 

 

 

 

2. ACPI patches (perhaps you need other igd-platform-id for your board). Note that here IGPU used to be called GFX0 and HDAU used to be called B0D3.

 

 

        Scope (\_SB.PCI0.IGPU)
        {
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package ()
                    {
                        "AAPL,ig-platform-id", 
                        Buffer (0x04)
                        {
                            0x00, 0x00, 0x16, 0x0A
                        }, 

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

                        "subsystem-id", 
                        Buffer (0x04)
                        {
                            0x1A, 0x01, 0x00, 0x00
                        }, 

                        "subsystem-vendor-id", 
                        Buffer (0x04)
                        {
                            0x6B, 0x10, 0x00, 0x00
                        }, 

                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }

        Scope (\_SB.PCI0.HDAU)
        {
            Method (_DSM, 4, NotSerialized)
            {
                Store (Package ()
                    {
                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }

 

 

Try to follow is that it does not work.

https://www.dropbox.com/s/i3dbt9hvk5yhkso/iMac%20%E0%B8%82%E0%B8%AD%E0%B8%87%20naiclub.ioreg

https://www.dropbox.com/s/3ogip60mmnkqy3p/bootlog_14-1-14-22.03.txt

Screenshot+2014-01-16+13.29.25.png

Hello toleda
I have installed the link you sent me the results show that it works very well .
And the surprise is that code 0x03, 0x00, 0x22, 0x0D , this is not working. No audio over HDMI
I need to change the code, 0x00, 0x00, 0x16, 0x0A.
It works very well.
And use scripts with your 2 are as follows .
1.audio_hdmi_hd5K-hda-90_patch.command
2.audio_hdmi_hd5k-azul-90_patch.command
Note .. 
At first, I did this, it still does not work. I wonder about this or not. audio_hdmi_hd5K-hda-90_patch.command And understand how to fix it 0c0c.

So essentially you repeated everything that I told you before...

2. You've used 0x0a160000 framebuffer which has default HDMI port-type for port @2 (same as my H87-HD3), so no extra framebuffer patch is required -> audio_hdmi_hd5k-azul-90_patch.command therefore not needed

3. You've applied the patches for AppleHDAController to make the non-apple codec appear as Apple's genuine codec -> audio_hdmi_hd5K-hda-90_patch.command

 

This clearly tells me you prefer automated things over of manual tampering, because you repeated exactly what I told you and it didn't work the first time round.

So essentially you repeated everything that I told you before...

2. You've used 0x0a160000 framebuffer which has default HDMI port-type for port @2 (same as my H87-HD3), so no extra framebuffer patch is required -> audio_hdmi_hd5k-azul-90_patch.command therefore not needed

3. You've applied the patches for AppleHDAController to make the non-apple codec appear as Apple's genuine codec -> audio_hdmi_hd5K-hda-90_patch.command

 

This clearly tells me you prefer automated things over of manual tampering, because you repeated exactly what I told you and it didn't work the first time round.

I want to thank again 
Because they do not understand Makes delayed If your principle plus. audio_hdmi_hd5K-hda-90_patch.command since everything is finished. 
This is why no one made a concrete example to clear. I have to try to be so successful as expected.
×
×
  • Create New...