Jump to content

Editing Custom connector info for Intel HD 3000 Graphics (sandy bridge, OSX Lion)


  • Please log in to reply
211 replies to this topic

#121
jkbuha

jkbuha

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 195 posts
Hi all

Been trying to remove my 5 second delay from my Dell XPS 15z (L511z) with HD3000 ID:0126 but to no avail.

On 10.7.2 the kext enables the display at 1920x1080 natively, but as soon as I start moving the mouse on any object which involves some QE/CI action the main ring gets stuck, rendering the machine useless.

I've tried all combinations but still the issues persist. What I do know about the laptop is that it has an LVDS (0503) and an HDMI port (0406/0305?) but all attempts at patching the kext for MBP81, 82, 83 result in the main ring always getting stuck. The only entry I know that works is 0503 as the LVDS won't initialise if this entry is missing, though any other changes won't make a difference

0102 0100 1007 0000 1007 0000 <- changing 1007's to 0000 FFFF results in a brighter screen but no wake up from sleep
0503 0000 0200 0000 3000 0000 <- what does 3000 stand for? sense line? av-connector-type still shows 00 in ioreg

Any ideas? Much appreciated!

Cheers
jkbuha

#122
timp

timp

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts
Cool. I got VGA out working at native resolutions more or less..

Using the info in bcc9's first post and the numbers for getting the VGA output active from here:

http://revogirl.word...us-p8z68-v-pro/

plus adding "AAPL01,override-no-edid" with a valid EDID to my DSDT I now have HD 3000 graphics with internal LCD + VGA output on my Dell Vostro 3350. I guess the AAPL01 bit changes depending on which line connectors info table you use for VGA..

"AAPL01,override-no-edid" is needed because like Revogirl says, the VGA connected monitors EDID isn't read by the driver.. which is very annoying. Not sure why.. Comes up as 800x600 as the only option for me.

Unfortunately switching display modes on the VGA monitor makes the screen go blank. But if you do a sleep/wake cycle it comes back again.. Think I can live with that..

Now I just need the IDT audio fixed.. ;)

#123
jlp

jlp

    InsanelyMac Protégé

  • Members
  • Pip
  • 30 posts
  • Gender:Male
  • Location:Austin, TX
Hey Timp,
Can you elaborate on your dsdt edit/
Thanks,

#124
Didanix

Didanix

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts
I've succesfully modified the kext(s) and made a custom DSDT which seem to be fully compatible with 10.7.2.
I am however experiencing the "main ring stall" problem every now and then while using the system, especially if I'm using a GPU intensive app, ie. playing a game.

Are there any fixes for this, or do I just have to live with this? :(

Note that I'm using HDMI as the primary (and only) input, so while hex-editing I moved HDMI to be the first output, just so I can boot faster (without it flicking through the other outputs first).

#125
timp

timp

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts

Hey Timp,
Can you elaborate on your dsdt edit/
Thanks,


Sure:

Device (IGPU)
				 {
					 Name (_ADR, 0x00020000)
		 
					 Method (_DSM, 4, NotSerialized)
					 {
						 Store (Package (0x06)
						 {
							 "hda-gfx", Buffer (0x09) {"onboard-2"},
							 "device-id", Buffer (0x04) {0x16, 0x01, 0x00, 0x00},
							 "AAPL01,override-no-edid", Buffer (0x80) {
								0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
								0x10, 0xAC, 0x0F, 0xA0, 0x53, 0x59, 0x56, 0x31,
								0x32, 0x0F, 0x01, 0x03, 0x08, 0x34, 0x21, 0x78,
								0xE8, 0xEE, 0x50, 0xA3, 0x54, 0x4C, 0x9B, 0x26,
								0x0F, 0x50, 0x54, 0xA5, 0x4B, 0x00, 0xB3, 0x00,
								0x95, 0x00, 0x81, 0x00, 0xA9, 0x40, 0xD1, 0xC0,
								0x8B, 0xC0, 0x81, 0xC0, 0x90, 0x40, 0x28, 0x3C,
								0x80, 0xA0, 0x70, 0xB0, 0x23, 0x40, 0x30, 0x20,
								0x36, 0x00, 0x07, 0x44, 0x21, 0x00, 0x00, 0x1A,
								0x00, 0x00, 0x00, 0xFE, 0x00, 0x44, 0x53, 0x44,
								0x54, 0x20, 0x56, 0x47, 0x41, 0x20, 0x50, 0x6F,
								0x72, 0x74, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x56,
								0x67, 0x61, 0x4D, 0x6F, 0x6E, 0x69, 0x74, 0x6F,
								0x72, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0xFD,
								0x00, 0x38, 0x4C, 0x1E, 0x51, 0x11, 0x00, 0x0A,
								0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0xF4
							 }
						 }, Local0)
						 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
						 Return (Local0)
					 }

I would get the EDID from your monitor as this may not work with all monitors.

Power Saving also doesn't work as this is also controlled by the I2C bus.

I notice that the display sometimes freezes. Like only the mouse pointer moves but you can't click on anything. I think it's related to the Intel display driver too but haven't been able to isolate it for sure. I can still connect with ssh. HD 3000 graphics on Mac all seem a bit dodge to me. Wonder if Apple or Intel wrote the driver..

BTW this is on a Dell Vostro 3350 with a I5-2410M and Intel HD 3000 graphics only.

Good luck.

#126
pippox0

pippox0

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
Hi Timp,
i would like to get VGA port working on my Hackintosh GA-H67N-USb3-B3 mobo with intel i5-2500K and Intel Hd 3000 video ID:0112 ...
I have installed OSX Lion 10.7.1 , Chimera 1.5.4 / Macmini5.1 smbios.plist /DSDT.aml and everything works on HDMI port, but i want to use my VGA monitor because i use my PC with dual boot with Windows and i don't want to connect pc to TV when i want to use OSX .

GA-H67N-USb3-B3 mobo has one VGA port and two HDMI ports ( no DVI)
Info here http://www.gigabyte....spx?pid=3783#sp

I'm relative new on patching to get VGA Port working ... so can give me some hints to see the light ... ?
Thanks a lot

Best Regards

PippoX0

#127
hchinasky

hchinasky

    InsanelyMac Protégé

  • Members
  • PipPip
  • 93 posts
  • Location:Spain
Editing the table as bcc9 suggested works fine in the first boot but...¿why the display freezes showing the same message (kernel: stampWait: Overflowed checking for stamp 0x39fa8 on Main ring: called from
)? In my case it doesn´t matter the program I´m using, I can even spend two days without this problem, but suddenly it happens again...


regards

#128
timp

timp

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts

Hey Timp,
Can you elaborate on your dsdt edit/
Thanks,


Sure:

Device (IGPU)
					   {
						   Name (_ADR, 0x00020000)
			   
						   Method (_DSM, 4, NotSerialized)
						   {
							   Store (Package (0x06)
							   {
								   "hda-gfx", Buffer (0x09) {"onboard-2"},
								   "device-id", Buffer (0x04) {0x16, 0x01, 0x00, 0x00},
								   "AAPL01,override-no-edid", Buffer (0x80) {
									  0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
									  0x10, 0xAC, 0x0F, 0xA0, 0x53, 0x59, 0x56, 0x31,
									  0x32, 0x0F, 0x01, 0x03, 0x08, 0x34, 0x21, 0x78,
									  0xE8, 0xEE, 0x50, 0xA3, 0x54, 0x4C, 0x9B, 0x26,
									  0x0F, 0x50, 0x54, 0xA5, 0x4B, 0x00, 0xB3, 0x00,
									  0x95, 0x00, 0x81, 0x00, 0xA9, 0x40, 0xD1, 0xC0,
									  0x8B, 0xC0, 0x81, 0xC0, 0x90, 0x40, 0x28, 0x3C,
									  0x80, 0xA0, 0x70, 0xB0, 0x23, 0x40, 0x30, 0x20,
									  0x36, 0x00, 0x07, 0x44, 0x21, 0x00, 0x00, 0x1A,
									  0x00, 0x00, 0x00, 0xFE, 0x00, 0x44, 0x53, 0x44,
									  0x54, 0x20, 0x56, 0x47, 0x41, 0x20, 0x50, 0x6F,
									  0x72, 0x74, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x56,
									  0x67, 0x61, 0x4D, 0x6F, 0x6E, 0x69, 0x74, 0x6F,
									  0x72, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0xFD,
									  0x00, 0x38, 0x4C, 0x1E, 0x51, 0x11, 0x00, 0x0A,
									  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0xF4
								   }
							   }, Local0)
							   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
							   Return (Local0)
						   }

I would get the EDID from your monitor as this may not work with all monitors.

Power Saving also doesn't work as this is also controlled by the I2C bus.

I notice that the display sometimes freezes. Like only the mouse pointer moves but you can't click on anything. I think it's related to the Intel display driver too but haven't been able to isolate it for sure. I can still connect with ssh. HD 3000 graphics on Mac all seem a bit dodge to me. Wonder if Apple or Intel wrote the driver..

BTW this is on a Dell Vostro 3350 with a I5-2410M and Intel HD 3000 graphics only.

Good luck.




Hi All,
I wasn't happy with the DSDT edid thing so I tried some more numbers in the AppleIntelSNBGraphics binary to see if I could get the EDID from the monitor via the VGA connector. I found 0602 instead of 0607 works! There are still a few issues. Like have to sleep/wake the machine to get the VGA out working in some cases, or unplug the display, detect displays plug in the display again and detect again..

Below are the numbers I'm currently using that give me internal LCD + HDMI or Internal LCD + VGA. Connecting both doesn't work as the HD3000 only seems to support 2 monitors at a time. I tried removing the line for the internal LCD to see if I could get dual display on VGA and HDMI but that didn't seem to work, but maybe I did something wrong.

The four lines are
0503 - Internal LCD
0205 - HDMI
0602 - VGA
0000 - unused.

Still don't know if the order is important or what the number is the fifth column means.

0102 0300 1007 0000 1007 0000
	  0503 0000 0200 0000 3000 0000
	  0205 0000 0004 0000 0700 0000
	  0602 0000 1000 0000 0900 0000
	  0000 0000 0100 0000 4000 0000

My IGPU now only has
Store (Package (0x04)
				  {
					  "hda-gfx", Buffer (0x09) {"onboard-2"},
					  "device-id", Buffer (0x04) {0x16, 0x01, 0x00, 0x00}
				  }, Local0)
				  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				  Return (Local0)
			  }


#129
pippox0

pippox0

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
Eureka ! :wacko:
I got my VGA port working on my Hackintosh GA-H67N-USb3-B3 mobo with intel i5-2500K and Intel Hd 3000 video ID:0112 ... on OSX Lion 10.7.1 , Chimera 1.5.4 / MacBookPro8.1 smbios.plist /DSDT.aml and everything works with
QE/CI enabled !!

i finally can use iMovie and iWorks ...

I followed as described on first post the hex editing in the AppleIntelSNBGraphics binary
thanks to Bcc9 and Timp. ( i use 602 values suggested by timp)

AppleIntelSNBGraphics FrameBuffer to be binary patched

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

Patch 0503->0602
From internal LCD port to VGA port ...

I patched also my DSDT to get ID:116 instead of ID:112 (real one)

Mod. IGD0

Device (IGD0)
				  {
					  Name (_ADR, 0x00020000)
	  
					  Method (_DSM, 4, NotSerialized) 
					  {
	  
					  Store (Package (0x04)
						{
							"hda-gfx", Buffer (0x09) {"onboard-2"},
							"device-id", Buffer (0x04) {0x16, 0x01, 0x00, 0x00}
						}, Local0)
						DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
						Return (Local0)
					}
	  
			 OperationRegion (IGDP, PCI_Config, 0x40, 0xC0)

what to fix:
my Monitor Acer AL1914 has 1280x1024 res, but i got 1152x864.
If i try to change resolution i lost qe/ci and get black screen
( I need to boot with " -x -v" option and delete /Library/Preferences/com.apple.windowserver.plist to
get back 1152x864 resolution and fix black screen)

Best Regards !!

Attached File  Screen_11_05_11.png   586.47KB   232 downloads

#130
Mohamed Khairy

Mohamed Khairy

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 2,169 posts
  • Gender:Male

Hi All,
I wasn't happy with the DSDT edid thing so I tried some more numbers in the AppleIntelSNBGraphics binary to see if I could get the EDID from the monitor via the VGA connector. I found 0602 instead of 0607 works! There are still a few issues. Like have to sleep/wake the machine to get the VGA out working in some cases, or unplug the display, detect displays plug in the display again and detect again..

Below are the numbers I'm currently using that give me internal LCD + HDMI or Internal LCD + VGA. Connecting both doesn't work as the HD3000 only seems to support 2 monitors at a time. I tried removing the line for the internal LCD to see if I could get dual display on VGA and HDMI but that didn't seem to work, but maybe I did something wrong.

The four lines are
0503 - Internal LCD
0205 - HDMI
0602 - VGA
0000 - unused.

Still don't know if the order is important or what the number is the fifth column means.

0102 0300 1007 0000 1007 0000
	  0503 0000 0200 0000 3000 0000
	  0205 0000 0004 0000 0700 0000
	  0602 0000 1000 0000 0900 0000
	  0000 0000 0100 0000 4000 0000

My IGPU now only has
Store (Package (0x04)
				  {
					  "hda-gfx", Buffer (0x09) {"onboard-2"},
					  "device-id", Buffer (0x04) {0x16, 0x01, 0x00, 0x00}
				  }, Local0)
				  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				  Return (Local0)
			  }


thanks
no need for dsm method on igpu

and there is wrong on vga connector code

i got the vga to works thanks for your 0602 code how did you get it ? :D

i made only lvds and vga as idont need hdmi and here is my edit

0000000: 0102 0200 1007 0000 1007 0000 ............
000000c: 0503 0000 0200 0000 3000 0000 ........0...
0000018: 0602 0000 0010 0000 0900 0000 ............
0000024: 0000 0000 0000 0000 0000 0000 ............
0000030: 0000 0000 0000 0000 0000 0000 ............


now vga and lvds works with full resloution and qe/cl

just need to detect vga display i think this is normal ;)



thanks very much

#131
beidl

beidl

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
I've successfully managed to get HDMI + VGA output working on my HP ProBook 4730s.
The only problem is: the hangs still appear.
It's even more annoying if the hangs appear when using things like Mission Control or Launchpad.
I've even modified the kext to use LVDS only.. still no luck.
However what I've found out is that the hangs disappear when flipping the display by 90°, 180° and/or 270°.
I've used SwitchResX for this, but you can do it the using an alternative way:
Press and hold [Alt] + [Command] keys,  -> System preferences -> Display settings and releasing the keys.
Of course, it's not very practical to use a laptop with stuff being shown upside down.
I've dumped the IORegistry before and after rotating the screen + diffed the files. You can take a look at it.
I've noticed that with SwitchResX all resolutions except of the current one were gone after rotating, so I'm not sure if the IOReg would look the same with the alternative method.
I'm pretty sure we have to change more stuff in the connector info.
Here's my current connector setup:
0000000: 0102 0300 1007 0000 1007 0000  ............
000000c: 0503 0000 0200 0000 3000 0000  ........0...
0000018: 0406 0000 0008 0000 0600 0000  ............
0000024: 0602 0000 0001 0000 0700 0000  ............
0000030: 0000 0000 0000 0000 0000 0000  ............

Attached Files



#132
timp

timp

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts

thanks
no need for dsm method on igpu

and there is wrong on vga connector code
.
.


Hi Mohamed,
Are you sure the code is wrong?

#define CONNECTORTYPE_LVDS	0x00000002	/* Ie internal Low Voltage display, such as laptop */
 #define CONNECTORTYPE_DP	  0x00000400	/* Displayport */
 #define CONNECTORTYPE_HDMI	0x00000800

HDMI is 0800 which flips to 0008 and DP is 0400 which flips to 0004. etc.. I assumed these are the same as the ATI connector type codes. They have VGA as 10, so flipped it's 1000. Are you saying that the VGA connetor is really 1000? Where did you find that? I don't think it's used for anything anyway but it would be nice to know what the correct code is..

#133
Mohamed Khairy

Mohamed Khairy

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 2,169 posts
  • Gender:Male

Hi Mohamed,
Are you sure the code is wrong?

#define CONNECTORTYPE_LVDS	0x00000002	/* Ie internal Low Voltage display, such as laptop */
 #define CONNECTORTYPE_DP	  0x00000400	/* Displayport */
 #define CONNECTORTYPE_HDMI	0x00000800

HDMI is 0800 which flips to 0008 and DP is 0400 which flips to 0004. etc.. I assumed these are the same as the ATI connector type codes. They have VGA as 10, so flipped it's 1000. Are you saying that the VGA connetor is really 1000? Where did you find that? I don't think it's used for anything anyway but it would be nice to know what the correct code is..


you are correct it is 1000

but any way it also work with 0010

so from that what about 0004 !!

#134
CrimsonHat

CrimsonHat

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
  • Gender:Male
  • Location:Toronto
1) On my laptop i.e. (expecting to see LVDS connector in IOReg) is always blank (00 00 00 00) I'm guessing that means my display is not being detected. So I can't get my connectors sorted.

Can someone point me in the right direction as I can only use LVDS on Lion without HDGraphics and SNB loaded. If I load them I end up at a blank laptop display. VGA works. but prefer to be able to use LCD on laptop.

i.e. SNB buffer not shown up... Or Buffer pool allocate, but no display.

2) Because of 1) any change to my connector tables may be useless.. However can you work out which one of the sets of connectors you are using or do you have to update them until it works.

Cheers

Chris

#135
beidl

beidl

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts

1) On my laptop i.e. (expecting to see LVDS connector in IOReg) is always blank (00 00 00 00) I'm guessing that means my display is not being detected. So I can't get my connectors sorted.

Can someone point me in the right direction as I can only use LVDS on Lion without HDGraphics and SNB loaded. If I load them I end up at a blank laptop display. VGA works. but prefer to be able to use LCD on laptop.

i.e. SNB buffer not shown up... Or Buffer pool allocate, but no display.

2) Because of 1) any change to my connector tables may be useless.. However can you work out which one of the sets of connectors you are using or do you have to update them until it works.

Cheers

Chris

Have you applied the DualLink patch in your DSDT?
Method (_DSM, 4, NotSerialized)
{
	  Store (Package (0x02)
	  {
				  "AAPL00,DualLink", 
				  Buffer (0x04)
				  {
						0x01, 0x00, 0x00, 0x00
				   }
	   }, Local0)
	   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
	   Return (Local0)
}


#136
CrimsonHat

CrimsonHat

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
  • Gender:Male
  • Location:Toronto
[quote name='beidl' date='Nov 18 2011, 08:06 AM' post='1771571']
Have you applied the DualLink patch in your DSDT?

Yep... already in there.. Worked in 10.6.7 but not in 10.7-10.7.2

Thanks

#137
CrimsonHat

CrimsonHat

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
  • Gender:Male
  • Location:Toronto
Toshiba Portege r830

Don't know if this is new but I discovered that if you set the connector ID in the AppleIntelSNBGraphicsFB connector to 00 on the LVDS line of a Macbook pro the LCD display works on my Toshiba r830 where it did not work when the connector was set to 02 00 originally before.

There is still an issue with the frame buffer not being created properly which means acceleration for you tube dosent work and open GL is not available.

If I VNC in when the connector is 0200 i can see in IO reg that the framebuffer is set up. However not when the connector is 00 to get the LCD to work.

VGA and HDVI connectors work as normal.

Cheers

Chris

#138
jkbuha

jkbuha

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 195 posts

Toshiba Portege r830

Don't know if this is new but I discovered that if you set the connector ID in the AppleIntelSNBGraphicsFB connector to 00 on the LVDS line of a Macbook pro the LCD display works on my Toshiba r830 where it did not work when the connector was set to 02 00 originally before.

There is still an issue with the frame buffer not being created properly which means acceleration for you tube dosent work and open GL is not available.

If I VNC in when the connector is 0200 i can see in IO reg that the framebuffer is set up. However not when the connector is 00 to get the LCD to work.

VGA and HDVI connectors work as normal.

Cheers

Chris


I think this is a strong indicator as well. I have a 1920x1080 LVDS which freezes every 5 seconds, and when I switch to my external monitor (also 1920x1080) I don't get any freezing, and SwitchResX correctly shows all the monitor information. IORegistryExplorer also reports full information for AAPL,DisplayPipe, audio-codec-info, av-signal-type etc on my external monitor but just 00s for the LVDS. It must be something to do with the framebuffer not being set up correctly.

Has anyone had perfect (ie: full QE/CI, no freezing, pressing F9 to view all windows works seamlessly etc) display performance on a single LVDS display greater than 1440x900, and if so, could they post the IORegistry data from the AppleIntelFramebuffer key?

Cheers
jkbuha

#139
nerdkiller14

nerdkiller14

    InsanelyMac Protégé

  • Members
  • Pip
  • 43 posts
Hello, I have a Lenovo T420 and have been trying to patch all day. Nothing works. I have a Intel HD 3000 and NVDIA Optimus 4200m.
I don't understand hex at all. If someone could patch mine for me that would be great just tell me what I need to upload?

THANKS IN ADVANCE!! :)

#140
jazzyguy

jazzyguy

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 188 posts
  • Gender:Male
  • Location:USA
We have patched this kext and have no freezing problems, and we have HDMI audio as well.

But we have this problem where when people turn on their laptops, they have to plug in HDMI and unplug it in order to make the laptop screen become activated (because this refreshes the connectors.) Here is my table below, what should I change? We are using SMBIOS of a MBP8,1 and have a device id of 0116

Thanks!

0000000: 0102 0300 1007 0000 1007 0000 ............
000000c: 0503 0000 0200 0000 3000 0000 ........0...
0000018: 0406 0000 0008 0000 0900 0000 ............
0000024: 0602 0000 0001 0000 0700 0000 ............
0000030: 0000 0000 0000 0000 0000 0000 ............





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy