• 0

[Guide] For Enabling Vga And Hdmi In Intel Hd4000 Gpu
3 3

Question

Hi everyone, 
 
           This is a guide for enabling the ports VGA and HDMI/audio for Notebooks with Intel HD4000 GPU, which is based on my experience and details found by our hackintosh community making the guide in a way so everyone can understand. I will try to improve this guide and add more details when i find something.
 
Needed:

    •  

      •  
      •  
      •  
      • "AppleIntelFramebufferCapri.kext" From System/Library/Extensions
      •  Hex fiend application to patch the kext (Link:Hex Fiend)
        INFORMATION ABOUT THE CONNECTORS FROM APPLE KEXT "AppleIntelFramebufferCapri":
        Lets first take a look at the connectors found and used by Apple in "AppleIntelFramebufferCapri" kext. The values which we need to consider and relevant from Apple framebuffer kext are Connectors types and its number for detecting Display ports.
         
        Connectors number values:
        503 - LVDS (Laptop built-in display)602 - VGA 205/406/304 - HDMI/DVI/DP
        Connectors Type values:
        DVI/DP  - 0004DVI DUAL LINK - 0400HDMI - 0008 and 06VGA  - 1000/0010/0001
        CONNECTORS VALUES FOR DISPLAY PORTS DETECTION:
        //LVDS, works with any one of the below values
        05 03 00 00 02 00 00 00 30 02 00 00
        05 03 00 00 02 00 00 00 30 00 00 00
        01 00 00 00 02 00 00 00 30 00 00 00
        01 00 00 00 02 00 00 00 30 02 00 00
         
        Port values XX XX can be any one from '02 0503 0404 06' for DVI/DP/HDMI.
        //DVI, works with any one of the below values
        XX XX 00 00 00 04 00 00 81 00 00 00
        XX XX 00 00 00 04 00 00 07 01 00 00 
        XX XX 00 00 00 04 00 00 07 01 00 00 
         
        //HDMI
        XX XX 00 00 00 08 00 00 06 00 00 00
         
        Connector type values XX XX can be any one from '10 0000 1000 01' for VGA.
        //VGA, works with any one of the below values
        06 02 00 00 02 00 00 00 30 02 00 00
        06 02 00 00 02 00 00 00 30 00 00 00
        06 02 00 00 XX XX 00 00 07 01 00 00
        06 02 00 00 XX XX 00 00 07 00 00 00
        06 02 00 00 XX XX 00 00 81 00 00 00
        06 02 00 00 XX XX 00 00 06 00 00 00
        06 02 00 00 XX XX 00 00 09 00 00 00
         
        EXPLAINING THE PATCH PROCESS OF CONNECTORS TABLE:
        Below, we have the Connector table from AppleIntelFramebufferCapri kext for platform-id 09 00 66 01. The reason for taking this platform-id as an example is because mostly every HD4000 dev-id has 09 as their revision code and 64MB of dedicated memory. (Next close match/better platform-id is 03)
         
        Original:
        09 00 66 01 01 03 03 03 00 00 00 04 00 00 00 01 00 00 00 20 10 07 00 00 10 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 D9 05 00 00 00 00 00 01 00 00 00 02 00 00 00 30 00 00 00 02 05 00 00 00 04 00 00 07 01 00 00 03 04 00 00 00 04 00 00 07 01 00 00
        Let me explain the above table by each line
        In this, we have information regarding platform id of HD4000 (09 00 66 01) and number of Connectors(Ports) which is 03. We can edit this port number to be 3 or less and overriding the respective lines of the port with '0' values which will eventually remove that port from the connectors frame buffer table.
      • Note: 
        00 00 00 01 00 00 00 20 10 07 00 00 
        10 07 00 00 00 00 00 00 00 00 00 00 
        00 00 00 00 F0 D9 05 00 00 00 00 00 
         
        Each connector table of platform-id has some lines like above which varies for each version of AppleIntelFramebufferCapri kext and I don't know what these are but they are needed, so don't do any changes to this.
         
        01 00 00 00 02 00 00 00 30 00 00 00
        The above line represents Laptop display(LVDS) which works fine for most, so we don't need to change anything here. But, if you find your LVDS is not working then try experiment with other LVDS values i've mentioned above.
      •  
        02 05 00 00 00 04 00 00 07 01 00 00 
        03 04 00 00 00 04 00 00 07 01 00 00
         
        The above 2 lines represent Display ports DVI and HDMI, but for HDMI only Video will work so for Audio we need to use modify the Connector type values like below. 
        0205/0304/0406 00 00 00 08 00 00 06 00 00 00
         
        Here we have edited connectors table for HDMI and VGA:
         
        Edited connectors table for GPU with 64MB dedicated memory: Platform id 09 00 66 01
        09 00 66 01 01 03 03 03 00 00 00 04 00 00 00 01 00 00 00 20 10 07 00 00 10 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 D9 05 00 00 00 00 00 01 00 00 00 02 00 00 00 30 00 00 00 06 02 00 00 00 01 00 00 09 00 00 00 03 04 00 00 00 08 00 00 06 00 00 00(or)09 00 66 01 01 03 03 03 00 00 00 04 00 00 00 01 00 00 00 20 10 07 00 00 10 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 D9 05 00 00 00 00 00 05 03 00 00 02 00 00 00 30 02 00 00 06 02 00 00 00 01 00 00 09 00 00 00 03 04 00 00 00 08 00 00 06 00 00 00
        Edited connectors table for GPU with 64MB dedicated memory: Platform id 03 00 66 01
        Original:
        03 00 66 01 01 02 04 02 00 00 00 04 00 00 00 01 00 00 00 20 10 07 00 00 10 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 03 00 00 02 00 00 00 30 00 00 00 02 05 00 00 00 04 00 00 07 04 00 00 03 04 00 00 00 04 00 00 81 00 00 00 04 06 00 00 00 04 00 00 81 00 00 00
        Edited:
        03 00 66 01 01 02 04 02 00 00 00 04 00 00 00 01 00 00 00 20 10 07 00 00 10 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 03 00 00 02 00 00 00 30 00 00 00 06 02 00 00 00 01 00 00 09 00 00 00 03 04 00 00 00 08 00 00 81 00 00 00 04 06 00 00 00 08 00 00 81 00 00 00
        Edited connectors table for GPU with 96MB dedicated memory: Platform-d 01 00 66 01
        Original:
        01 00 66 01 01 03 04 03 00 00 00 06 00 00 80 01 00 00 00 30 10 07 00 00 10 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 D9 05 00 00 00 00 00 01 00 00 00 02 00 00 00 30 00 00 00 02 05 00 00 00 08 00 00 06 00 00 00 03 04 00 00 00 04 00 00 07 01 00 00 04 06 00 00 00 04 00 00 07 01 00 00
        Edited:
        01 00 66 01 01 03 03 03 00 00 00 06 00 00 80 01 00 00 00 30 10 07 00 00 10 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 D9 05 00 00 00 00 00 01 00 00 00 02 00 00 00 30 00 00 00 02 05 00 00 00 08 00 00 06 00 00 00 06 02 00 00 00 01 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        Edited connectors table for GPU allocated with 32MB Dedicated memory: Platform-d 0A 00 66 01
        Original:
        0A 00 66 01 00 02 03 02 00 00 00 02 00 00 00 01 00 00 00 20 10 07 00 00 10 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 05 00 00 00 04 00 00 07 01 00 00 03 04 00 00 00 04 00 00 07 01 00 00 04 06 00 00 00 08 00 00 06 00 00 00
        Edited:
        0A 00 66 01 00 02 03 02 00 00 00 02 00 00 00 01 00 00 00 20 10 07 00 00 10 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 03 00 00 02 00 00 00 30 02 00 00 06 02 00 00 00 01 00 00 09 00 00 00 04 06 00 00 00 08 00 00 06 00 00 00
        NOTE:
        For detecting LVDS, HDMI and VGA connectors, you have to try each value from "Connectors values" of Section-2 to find out on which connector your notebook is using what in order to make them work. You can experiment with other connectors tables found in the Apple frame buffer kext as well(which are 12 in number) using the "Connectors values" info of Section-2 to find even better one, because every notebook is not going deal VGA and HDMI similarly.
         
        NOTE:
        Editing the wrong framebuffer results in no change to system behavior. There are 8 instances of 02 05 00 00 00 in the 12 framebuffers. First step is to find the framebuffer that is loading from IOReg/GFX0/AAPL,ig-platform-id, i.e., 05 00 62 01. Next find 02 05 00 00 00. This ensures the correct framebuffer is edited.
      •  
        STEPS FOR PATCHING THE KEXT:
      •  
      • Get the File "AppleIntelFramebufferCapri" from AppleIntelFramebufferCapri.kext/Contents/MacOS folder and place it in some place(Ex:-Desktop) for patching
      • Open the above file from the Hex fiend application
      • Press Command + F for searching
      • Enter Original Connectors table values in Find Box and edited Connectors table values in replace box then Click on Replace all button
      • Now save the file and copy back the file to the Folder AppleIntelFramebufferCapri.kext/Contents/MacOS
      • Install the patched Kext 
        NOTE:
        Display's won't detect automatically, so we have to detect manually by going to the Display preferences and Click on Detect Display button.
         
        In Mountain Lion, we don't see Detect Display button at Display preferences. For getting this button, hold the ALT key at Display preferences to display the "Detect" button.
         
        For HDMI Audio:
        We need a DSDT patch for HDEF and patched AppleHDA (VoodooHDA might also work)
         
        From Mountain Lion 10.8.2 or later, VGA is not working due to the changes made by the Apple in the graphics drivers. I will update the thread when there is info about VGA.
         
         
         
        Credit goes to  bcc9,RevoGirl, toldeda ,EMlyDinEsH and others. original post of EMlyDinEsH .
        Hope this guide helps for people trying to get VGA and HDMI 
         
        If you have  Mobo With UEFI Bios  then you can also Go through My Friend deadmau5 's
         
         
        Best Regards 
        Deepak 


12 people like this

Share this post


Link to post
Share on other sites

24 answers to this question

  • 0

Very helpfull Guide now i have my Amd radeon Hd 6450 working and my intel hd 4000 i follow this steps

1 person likes this

Share this post


Link to post
Share on other sites
  • 0

Very helpfull Guide now i have my Amd radeon Hd 6450 working and my intel hd 4000 i follow this steps

let me know both are working or not ???

4 people like this

Share this post


Link to post
Share on other sites
  • 0

Yes both Working Thank You very much!!!

1 person likes this

Share this post


Link to post
Share on other sites
  • 0

Nice Posted ImagePosted ImagePosted Image and why won't you adding description in working builds ???

10 people like this

Share this post


Link to post
Share on other sites
  • 0

I will im working on creating a full installation guide steps by step..and il posted very soon.Thank you very Much

1 person likes this

Share this post


Link to post
Share on other sites
  • 0

This guide (for enable vga port) work only for osx 10.8 and lower versions???

i tested this on only 10.8  not on 10.9 thats why

Share this post


Link to post
Share on other sites
  • 0

i am finding a volunteer for testing it for 10.9

Share this post


Link to post
Share on other sites
  • 0

i am finding a volunteer for testing it for 10.9

 

You found a volunteer!! :) Unfortunately I wasn't able to make it work on my own but I can test it if you have any suggestions.

Share this post


Link to post
Share on other sites
  • 0

@kenia1234 apply whole method and post your results ..

 

Ok…I made it and I received gray screen! :/

I need to add more information I guess.

I own a laptop (ASUS N56VZ) with Intel HD4000 and Nvidia GT650M (disabled via DSDT).

My system runs perfectly on both ML and Mavericks.

But on ML I managed to make VGA port working modifying the AppleIntelFramebufferCapri.kext and it works perfectly.

I use Clover boot loader and my system is fully optimized (only Nvidia GT650M doesn't work).

On Mavericks I made several tries but nothing worked!

So I can't use an external monitor (that is fundamental for me) on Mavericks (HDMI is connected to Nvidia Only) and it prevents me to upgrade.

Could you help me??

 

BTW I don't know if anybody could help, but I managed to modify the BIOS of my laptop and bypass the Nvidia Optimus engine to make just GT650M works but I can't make it work on OSX (only windows and only HDMI (no Laptop monitor)).

 

Thanks in advance.

Regards.

Share this post


Link to post
Share on other sites
  • 0

hey try to use Clover Bootloader Graphics is Big Issue n Mavericks faced many people but lots of them got solved by Clover Bootloader ..

 

PS; for Kext Patching is not Good for Mavericks you will not get Desired Result ,,what i have found but you could find little tricks with native Solutions ,,

Share this post


Link to post
Share on other sites
  • 0

hey try to use Clover Bootloader Graphics is Big Issue n Mavericks faced many people but lots of them got solved by Clover Bootloader ..

 

PS; for Kext Patching is not Good for Mavericks you will not get Desired Result ,,what i have found but you could find little tricks with native Solutions ,,

 

I use Clover Bootloader.

With Inject EDID, a custom EDID and the ig-platform=1660003 I managed to make VGA working but the internal monitor is not detected and the external monitor resolution is strange because the image is trembling. Could you help me?

Share this post


Link to post
Share on other sites
  • 0

take away the custom edid and try all the other ig platform ids try 0166000a on mine my internal display is detected but just fades in and out with white 

Share this post


Link to post
Share on other sites
  • 0

take away the custom edid and try all the other ig platform ids try 0166000a on mine my internal display is detected but just fades in and out with white 

 

I tried many ig-platform but only 01660003 makes VGA works...and not properly BTW...is there any other solution?? maybe a frame buffer patch to apply?

Share this post


Link to post
Share on other sites
  • 0

u could try either making a custom DSDT or you could try pre-edited intelhd4000graphics.kext and let me guess the screen is scrambled? and flickers almost every other frame change? my guess is IntelAppleCapriFB.kext decides the port for VGA/HDMI/LVDS and IntelHD4000Graphics.kext is the cause of the scrambled screen so something within IntelHD4000Graphics.kexts isn't loading right boot with -v and watch for any "failed to load kext" messages 

Share this post


Link to post
Share on other sites
  • 0

u could try either making a custom DSDT or you could try pre-edited intelhd4000graphics.kext and let me guess the screen is scrambled? and flickers almost every other frame change? my guess is IntelAppleCapriFB.kext decides the port for VGA/HDMI/LVDS and IntelHD4000Graphics.kext is the cause of the scrambled screen so something within IntelHD4000Graphics.kexts isn't loading right boot with -v and watch for any "failed to load kext" messages 

 

I already have a custom DSDT...but the weird thing is that I have full QE/CI but the resolution is kinda strange, scrambled and the laptop monitor is not even detected...I don't know what to do...I'd need someone more expert.

If anybody more expert would like to help me please send me PM.

I don't know anything about kext patching.

Regards!

Share this post


Link to post
Share on other sites
  • 0

instead of Patching Kext ,,Patch your DSDT ,,

1 person likes this

Share this post


Link to post
Share on other sites
  • 0

instead of Patching Kext ,,Patch your DSDT ,,

 

yes...but how?? :/ I don't have the required skills I guess... :(

Share this post


Link to post
Share on other sites
  • 0

okk.post your DSDT here ...i will see when has some time..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
3 3