• 0
Deepak

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

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

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

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