Photo

Guide for enabling VGA and HDMI in Intel HD3000 GPU


  • Please log in to reply
8 replies to this topic

#1 EMlyDinEsH

EMlyDinEsH

    Developer

  • Crew
  • 1,166 posts

Posted 30 November 2012 - 11:27 AM

Hi,

 

This is a short guide for enabling the ports VGA and HDMI(audio) in the Notebooks equipped with Intel HD3000 GPU, but I'm gonna provide details as clearly as possible to apply and understand this patch.

 

Needed:

  • AppleIntelSNBGraphicsFB.kext from SLE
  • Hex fiend application to patch the kext: http://ridiculousfish.com/hexfiend/
  • Patched DSDT with platform id  (or)  SMBios of MacBookPro8,1

 

DSDT patch of platform id is:


"AAPL,snb-platform-id", Buffer (0x04) { 0x00, 0x00, 0x01, 0x00 }

Add this to the _DSM method of GFX0/IGPU or other named device found at address 0x00020000.

 

 

Here is the entire DSDT patch for HD3000:

         Method (_DSM, 4, Serialized)
             {
                 Store (Package (0x0E)
                        { 
                            "AAPL00,backlight-control", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            }, 
                            "AAPL00,DualLink", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }, 
                            "graphic-options", 
                            Buffer (0x04)
                            {
                                 0x04, 0x00, 0x00, 0x00
                            }, 
                            "device-id", 
                            Buffer (0x04)
                            {
                                 0x16, 0x01, 0x00, 0x00
                            }, 
                            "hda-gfx", 
                            Buffer (0x0A)
                            {
                                "onboard-1"
                            }, 
                            "AAPL,snb-platform-id", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x01, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

 

DETAILS ABOUT THE CONNECTORS:

Lets have a look at the connectors information table before we try to patch and enable ports.This is the Original Connectors information provided by apple in the above kext for MacBookPro8,1.


0102 0400 1007 0000 1007 0000 // No of Connectors 
0503 0000 0200 0000 3000 0000 // Laptop Display Port 
0205 0000 0004 0000 0700 0000 // 
0304 0000 0004 0000 0900 0000 // All 3 of them are Display Ports 
0406 0000 0004 0000 0900 0000 //

Let me explain the above values line by line...

 

 

Line #1:


01 02 04 00 10 07 00 00 10 07 00 00

In the above line, we have information regarding the number of Connectors(Ports) and that number is 4, edit this number according to your number of ports/Connectors exist in your notebook and its optional, but doing so you can have only the ports active and rest removed.

 

 

Line #2:


0503 0000 0200 0000 3000 0000

This is Laptop built in screen display value where it gets detected, so we don't need to change anything here.

 

 

Line #3 to #5:


0205 0000 0004 0000 0700 0000 //
0304 0000 0004 0000 0900 0000 // All 3 of them are Display Ports DVI
0406 0000 0004 0000 0900 0000 //

The above 3 lines are Display ports (DVI) which can work for both DVI & HDMI, but for HDMI the audio won't work because it needs a patch like below:

0205/0304/0406 00 00 00 08 00 00 06 00 00 00

Basically, the above line applies to all 3 possible HDMI connectors that are 0205, 0304 and 0406.

 

 

VGA port:

Apple Mac computers do not have a VGA port, so we won't find the connector info in Apple connectors table. But the Hackintosh community has figured out the VGA code that works [found by RevoGirl (R.I.P) and bcc9 from other non-Intel GPU connectors table].


06 02 00 00 00 01 00 00 XX 00 00 00 //VGA, xx is port number

The VGA port number can be identified through Intel Registry dump (in Linux for instance).

 

 

The following lines provide a sample edited connectors table with VGA and HDMI ports (HDMI configured with 0304 connector):


01 02 03 00 10 07 00 00 10 07 00 00 // 3 Connectors (built-in LVDS + HDMI + VGA)
05 03 00 00 02 00 00 00 30 00 00 00 // LVDS 
03 04 00 00 00 08 00 00 06 00 00 00 // HDMI 
06 02 00 00 00 01 00 00 09 00 00 00 // VGA (port number set to 09)
00 00 00 00 00 00 00 00 00 00 00 00 // NONE

The above set of lines will basically enable built-in LCD + HDMI + VGA on the laptop. Note the number of connectors set to 3 in the 1st line and the last/4th connector line nulled (all set to 0)

 

NOTE: For HDMI, you have to try each value 0205/0304/0406 to find out which connector your notebook actually uses.

 

 

STEPS FOR PATCHING THE CONNECTORS:

  • Get the File "AppleIntelSNBGraphicsFB" from AppleIntelSNBGraphicsFB.kext/Contents/MacOS folder and place it in some place for patching
  • Open the above file from the Hex fiend application
  • Press Command + F for Find/Replace utility

 

Enter the following values in "find" field


0102 0400 1007 0000 1007 0000 
0503 0000 0200 0000 3000 0000 
0205 0000 0004 0000 0700 0000 
0304 0000 0004 0000 0900 0000 
0406 0000 0004 0000 0900 0000

and enter the following values in "replace" field


01 02 03 00 10 07 00 00 10 07 00 00 
05 03 00 00 02 00 00 00 30 00 00 00 
03 04 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

As stated in above note, sometimes your HDMI might be on a connector other than "03 04" which I've used here. In that case, try either of the following values instead of "03 04 00 00 00 08 00 00 06 00 00 00" to get HDMI working.

02 05 00 00 00 08 00 00 06 00 00

(OR)


04 06 00 00 00 08 00 00 06 00 00

and Click on Replace all button

  • Now save the file and copy back the file to the Folder AppleIntelSNBGraphicsFB.kext/Contents/MacOS
  • Install the patched Kext and reboot & check

 

 

For HDMI Audio:
We need DSDT edit and Patched AppleHDA for HDMI audio.

For this, follow my guide for patching AppleHDA from here: http://forum.osxlati...patching-guide/

 

 

I hope this guide helps for the people trying to get VGA and HDMI with audio.

 

 

NOTE:
*External display (VGA mostly) won't get detected automatically if we plug after Mac is booted, so we have to perform manual display detection through the Display Preferences panel and click on Detect Display button.

*From Mountain Lion or later, we don't see Detect Display button in the Display Preferences panel. Hold the ALT or Win key (=Option) at Display Preferences panel to get the Detect Displays button.

 

 

Credits go to RevoGirl(R.I.P), bcc9, toldeda and others who contributed.


  • Rhyker likes this

#2 fcoldrain

fcoldrain

    Private

  • Members
  • 2 posts

Posted 23 April 2014 - 03:33 PM

I made a small app by AppleScript to detect the display automatically, so that people do not need to go to Display, press the option on keyboard and detect displays every time.

 

The method is from http://raviudeshi.co...detect-displays, which does not work properly on OS X 10.9.2 now. I fixed this script and have made it work again.

 

Please download it here:

Attached File  Detect Displays.app.zip   51.06KB   383 downloads

 

I recommend anyone who use it to put it on desktop to make it handy. To use it you just plug in the monitor to your VGA, and click this app to detect the display. Then you should see your monitor being detected, like how you used to detect it manually.

 

Please note: You will need to refer to http://support.apple.com/kb/HT5914 to sign this app 'so that it works without requiring repeated re-authorization' of your Accessibility permissions every time you reboot and run it.

 

Hope this will be a life saver for everyone who needs it.


  • Rhyker likes this

#3 ericw12

ericw12

    Private First Class

  • Members
  • 15 posts

Posted 23 April 2014 - 09:27 PM

Why has it to be set MacBookPro8,1?

 

Will MacBookPro8,2 or MacBookPro8,3 works?

 

Thanks



#4 Hervé

Hervé

    Forum Admin

  • Administrators
  • 7,430 posts
  • LocationFrance

Posted 23 April 2014 - 09:40 PM

Because MBP8,1 is based on HD3000 GPU, unlike the MBP8,2/MBP8,3 which are based on ATI Radeon discrete graphics card. Use Chameleon Wizard SMBIOS tab to check that up.


Inspiron 6000, BIOS A09, O/C'ed Pentium M 745A 1.8@2.4GHz, 2Go DDR2-533, Intel GMA900, 1280x800, Leopard 10.5.8
Latitude D430, BIOS OSX (A09), C2D U7700 1.33GHz, 2Go DDR2-533, Intel GMA950, 1280x800, SL 10.6.8/Lion 10.7.5/ML 10.8.5*
Latitude D620, BIOS A10, C2D T5600 1.83GHz, 2Go DDR2-667, Intel GMA950, 1280x800, SL 10.6.8/Lion 10.7.5/ML 10.8.5*
Latitude D620, BIOS A10, C2D T7200 2.0GHz, 4Go DDR2-667, nVidia Quadro NVS 110M, 1440x900, SL 10.6.8/Lion 10.7.5/ML 10.8.5
*
Latitude D630, BIOS A17, C2D T7500 2.2GHz, 4Go DDR2-800, Intel GMA X3100, 1440x900, SL 10.6.8/Lion 10.7.5/ML 10.8.5*
Latitude D630, BIOS A17, C2D T9300 2.5GHz, 4Go DDR2-800, nVidia Quadro NVS 135M, 1440x900, SL/Lion/ML/Mav/Yos/EC/Sie 10.12.5/HS.10.13.dp1
Latitude E6220, BIOS A13, Core i5-2520M 2.5GHz, 4Go DDR3-1333, Intel HD 3000, 1366x768, Mav/Yos/EC/Sie 10.12.5/HS 10.13.dp2
Latitude E6230, BIOS A11, Core i5-3340M 2.7GHz, 4Go DDR3-1600, Intel HD 4000, 1366x768, EC/Sie 10.12.5/HS 10.13.dp2
Latitude E6440BIOS A18, Core i5-4300M 2.6GHz, 8Go DDR3L-1600, Intel HD4600/AMD Radeon HD 8690M, 1600x900, Mav/Yos/EC/10.12.5/HS 10.13.dp1
Precision 670, BIOS A07, dual Xeon Paxville 2.8GHz, 4Go DDR2-400, nVidia GeForce 9800GT, dual 1280x1024, SL 10.6.8/Lion 10.7.5/ML 10.8.5/Mav 10.9.5/Yos 10.10.5

* with MLPF  special hack


#5 ericw12

ericw12

    Private First Class

  • Members
  • 15 posts

Posted 24 April 2014 - 05:21 AM

I see. I am using Clover to load the system, and it automatically set this to be 8.3. Do I need just change it to 8.1 in my config.plist?
 
Thanks!



#6 Hervé

Hervé

    Forum Admin

  • Administrators
  • 7,430 posts
  • LocationFrance

Posted 24 April 2014 - 02:24 PM

You should always try to choose a profile that resembles your own hardware.


Inspiron 6000, BIOS A09, O/C'ed Pentium M 745A 1.8@2.4GHz, 2Go DDR2-533, Intel GMA900, 1280x800, Leopard 10.5.8
Latitude D430, BIOS OSX (A09), C2D U7700 1.33GHz, 2Go DDR2-533, Intel GMA950, 1280x800, SL 10.6.8/Lion 10.7.5/ML 10.8.5*
Latitude D620, BIOS A10, C2D T5600 1.83GHz, 2Go DDR2-667, Intel GMA950, 1280x800, SL 10.6.8/Lion 10.7.5/ML 10.8.5*
Latitude D620, BIOS A10, C2D T7200 2.0GHz, 4Go DDR2-667, nVidia Quadro NVS 110M, 1440x900, SL 10.6.8/Lion 10.7.5/ML 10.8.5
*
Latitude D630, BIOS A17, C2D T7500 2.2GHz, 4Go DDR2-800, Intel GMA X3100, 1440x900, SL 10.6.8/Lion 10.7.5/ML 10.8.5*
Latitude D630, BIOS A17, C2D T9300 2.5GHz, 4Go DDR2-800, nVidia Quadro NVS 135M, 1440x900, SL/Lion/ML/Mav/Yos/EC/Sie 10.12.5/HS.10.13.dp1
Latitude E6220, BIOS A13, Core i5-2520M 2.5GHz, 4Go DDR3-1333, Intel HD 3000, 1366x768, Mav/Yos/EC/Sie 10.12.5/HS 10.13.dp2
Latitude E6230, BIOS A11, Core i5-3340M 2.7GHz, 4Go DDR3-1600, Intel HD 4000, 1366x768, EC/Sie 10.12.5/HS 10.13.dp2
Latitude E6440BIOS A18, Core i5-4300M 2.6GHz, 8Go DDR3L-1600, Intel HD4600/AMD Radeon HD 8690M, 1600x900, Mav/Yos/EC/10.12.5/HS 10.13.dp1
Precision 670, BIOS A07, dual Xeon Paxville 2.8GHz, 4Go DDR2-400, nVidia GeForce 9800GT, dual 1280x1024, SL 10.6.8/Lion 10.7.5/ML 10.8.5/Mav 10.9.5/Yos 10.10.5

* with MLPF  special hack


#7 ericw12

ericw12

    Private First Class

  • Members
  • 15 posts

Posted 24 April 2014 - 03:38 PM

Thanks! Used chameleon wizard generated  the values, and it works. 
 
Thanks!



#8 Hervé

Hervé

    Forum Admin

  • Administrators
  • 7,430 posts
  • LocationFrance

Posted 19 August 2015 - 05:32 PM

It pays to experiment! Following a request from a forum member, I spent some time on this for the Dell Latitude E6220 video output when laptop is docked. Result is that we can now get all output ports supported: VGA, DVI and HDMI.  :) 
 
Full details are here.
 
In the case of the E6220 -and this should work for all other E6x20-, the following revised patch enables all video output ports:

01 02 04 00 10 07 00 00 10 07 00 00   // vanilla: nb of connectors -> "04"
05 03 00 00 02 00 00 00 30 00 00 00   // vanilla: laptop's own LCD display
02 05 00 00 00 08 00 00 06 00 00 00   // patched: HDMI display port (built-in port)
06 02 00 00 00 04 00 00 09 00 00 00   // patched: VGA display port (built-in + docking-station port)
04 06 00 00 00 04 00 00 09 00 00 00   // vanilla: DVI display port (docking-station port)

Inspiron 6000, BIOS A09, O/C'ed Pentium M 745A 1.8@2.4GHz, 2Go DDR2-533, Intel GMA900, 1280x800, Leopard 10.5.8
Latitude D430, BIOS OSX (A09), C2D U7700 1.33GHz, 2Go DDR2-533, Intel GMA950, 1280x800, SL 10.6.8/Lion 10.7.5/ML 10.8.5*
Latitude D620, BIOS A10, C2D T5600 1.83GHz, 2Go DDR2-667, Intel GMA950, 1280x800, SL 10.6.8/Lion 10.7.5/ML 10.8.5*
Latitude D620, BIOS A10, C2D T7200 2.0GHz, 4Go DDR2-667, nVidia Quadro NVS 110M, 1440x900, SL 10.6.8/Lion 10.7.5/ML 10.8.5
*
Latitude D630, BIOS A17, C2D T7500 2.2GHz, 4Go DDR2-800, Intel GMA X3100, 1440x900, SL 10.6.8/Lion 10.7.5/ML 10.8.5*
Latitude D630, BIOS A17, C2D T9300 2.5GHz, 4Go DDR2-800, nVidia Quadro NVS 135M, 1440x900, SL/Lion/ML/Mav/Yos/EC/Sie 10.12.5/HS.10.13.dp1
Latitude E6220, BIOS A13, Core i5-2520M 2.5GHz, 4Go DDR3-1333, Intel HD 3000, 1366x768, Mav/Yos/EC/Sie 10.12.5/HS 10.13.dp2
Latitude E6230, BIOS A11, Core i5-3340M 2.7GHz, 4Go DDR3-1600, Intel HD 4000, 1366x768, EC/Sie 10.12.5/HS 10.13.dp2
Latitude E6440BIOS A18, Core i5-4300M 2.6GHz, 8Go DDR3L-1600, Intel HD4600/AMD Radeon HD 8690M, 1600x900, Mav/Yos/EC/10.12.5/HS 10.13.dp1
Precision 670, BIOS A07, dual Xeon Paxville 2.8GHz, 4Go DDR2-400, nVidia GeForce 9800GT, dual 1280x1024, SL 10.6.8/Lion 10.7.5/ML 10.8.5/Mav 10.9.5/Yos 10.10.5

* with MLPF  special hack


#9 DiscoDools

DiscoDools

    Private

  • Members
  • 1 posts

Posted 06 December 2016 - 05:30 PM

Thanks, that fixed my HP 6460b. And I didn't need to detect display, it detected it by itself on reboot into 10.9.5.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users