Jump to content

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


bcc9
 Share

221 posts in this topic

Recommended Posts

Hi, i have a z68x-ud3h motherboard with 4 outputs: vga dvi-d hdmi and dp. Of course they all work except for vga. If you have DP or DVI-A, your best bet to connect to a vga monitor is to buy a 20€ dp->vga or a 2€ dvi-a->vga adapter and stop worrying.

But if you want to experiment i've found out that radeon drivers use

 

#define CONNECTORTYPE_VGA 0x00000010

for vga ports, which means that if bcc9 is right and intel drivers use the same connector ids as the radeon ones we could use this one.

Of course i tried editing the table but nothing worked for me.

 

ok thanks will try it

 

0000000: 0102 0300 1007 0000 1007 0000 ............

000000c: 0503 0000 0200 0000 3000 0000 ........0...

0000018: 0205 0000 0010 0000 0700 0000 ............

0000024: 0304 0000 0008 0000 0900 0000 ............

0000030: 0000 0000 0000 0000 0000 0000 ............

Link to comment
Share on other sites

I'm not at home now, so i cannot test it until the weekend but if you have some time on your hands i would suggest reading these threads:

http://www.insanelymac.com/forum/index.php?showtopic=249642

http://www.insanelymac.com/forum/index.php?showtopic=252061

and trying to figure out what the table entries mean.

Seems like the first two bytes are similar to the senseid - hotplug id couple. The last 4 bytes are possibly the features or the control flags.

Link to comment
Share on other sites

I'm not at home now, so i cannot test it until the weekend but if you have some time on your hands i would suggest reading these threads:

http://www.insanelymac.com/forum/index.php?showtopic=249642

http://www.insanelymac.com/forum/index.php?showtopic=252061

and trying to figure out what the table entries mean.

Seems like the first two bytes are similar to the senseid - hotplug id couple. The last 4 bytes are possibly the features or the control flags.

ok will read them

there are no out put from hdmi or vga from above hex

Link to comment
Share on other sites

I'm not at home now, so i cannot test it until the weekend but if you have some time on your hands i would suggest reading these threads:

http://www.insanelymac.com/forum/index.php?showtopic=249642

http://www.insanelymac.com/forum/index.php?showtopic=252061

and trying to figure out what the table entries mean.

Seems like the first two bytes are similar to the senseid - hotplug id couple. The last 4 bytes are possibly the features or the control flags.

 

 

i did that but there are diff between ati and intel on config option

 

for intel

 

000000c: 0503 0000 0200 0000 3000 0000 ........0...

 

that with read color what does it mean ?

Link to comment
Share on other sites

This is my current table, trying to enable vga output..

 

0000000: 0102 0400 1007 0000 1007 0000 ............

000000c: 0100 0000 0010 0000 3000 0000 ........0...

0000018: 0205 0000 0004 0000 0700 0000 ............

0000024: 0304 0000 0004 0000 0900 0000 ............

0000030: 0406 0000 0008 0000 0600 0000 ............

 

But my connector types in ioregistry explorer are always:

02 00 00 00

00 04 00 00

00 04 00 00

00 04 00 00

 

despite editing my table like the one above.. am i doing something wrong?

 

BTW i had some kind of success. One boot i was fiddling with my ports connections and accidentally removed the hdmi cable just as it was getting to the desktop. That one time my hackintosh had output on the vga screen instead of the hdmi one. But my monitor was detected as the one attached to hdmi and thus the edid information and supported resolutions were all wrong.

 

//edit

Ok managed to repeat it. With that table if you remove both hdmi and vga and reattach them after some time you can get both monitors working. But the vga one isn't really detected and just mirrors the hdmi one.

Link to comment
Share on other sites

This is my current table, trying to enable vga output..

 

0000000: 0102 0400 1007 0000 1007 0000 ............

000000c: 0100 0000 0010 0000 3000 0000 ........0...

0000018: 0205 0000 0004 0000 0700 0000 ............

0000024: 0304 0000 0004 0000 0900 0000 ............

0000030: 0406 0000 0008 0000 0600 0000 ............

 

But my connector types in ioregistry explorer are always:

02 00 00 00

00 04 00 00

00 04 00 00

00 04 00 00

 

despite editing my table like the one above.. am i doing something wrong?

 

BTW i had some kind of success. One boot i was fiddling with my ports connections and accidentally removed the hdmi cable just as it was getting to the desktop. That one time my hackintosh had output on the vga screen instead of the hdmi one. But my monitor was detected as the one attached to hdmi and thus the edid information and supported resolutions were all wrong.

 

//edit

Ok managed to repeat it. With that table if you remove both hdmi and vga and reattach them after some time you can get both monitors working. But the vga one isn't really detected and just mirrors the hdmi one.

 

you did rewrite wrong

 

after extracting hex on tmp folder

copy it to desktop and apply on it changes and then put it back and rewrite hex to kext

 

to me i have nvidia Optimus i get madness on understanding connector port to me

 

 

according to technical cheat of Optimus the three connector is directly connected to intel igpu

and nvidia card connected to intel igpu

 

so trying to edit connector info on kext for me but no vga or hdmi

 

and on windows everest show to me that there are two connector for intel and two for nvidia

 

and on windows display properties we i detect displays it say that there are port on intel and anther for nvidia

 

 

so what is the correct from above :P

Link to comment
Share on other sites

HD3000/HDMI

 

h67n/i5-2405s/hd3000/10.7.1

 

thanks bbc9

 

found a hdmi connector configuration that boots without errors

 

02 05 00 00 00 08 00 00 06 00 00 00

 

macbookpro8,1 table

0000000: 0102 0200 1007 0000 1007 0000 ............

000000c: 0205 0000 0008 0000 0600 0000 ............

0000018: 0304 0000 0004 0000 0900 0000 ............

0000024: 0000 0000 0000 0000 0000 0000 ............

0000030: 0000 0000 0000 0000 0000 0000 ............

 

macmini5,1

0000078: 0002 0300 0000 0000 ffff ffff ............

0000084: 0205 0000 0008 0000 0600 0000 ............

0000090: 0304 0000 0004 0000 0900 0000 ............

000009c: 0406 0000 0004 0000 0900 0000 ............

 

best news, hd3000 hdmi audio working, see hd3000 hdmi audio

  • Like 1
Link to comment
Share on other sites

Hey all,

I first want to thank you for putting so much effort into this.

 

Last week I was sick of not being able to have graphics on i5-460M, so I switched my laptop to one with a i5-2410m.

 

This particular CPU has the intel HD 3000 graphics chip, with hw id 116.

After a week of trial and error (Snow Leopard worked fine, but Lion didn't want to show graphics), I have a full resolution, QE/CI enabled laptop, thanks to this 8.1 mbp SMBIOS with the SMboardproduct ID correctly set).

My laptop only has a VGA output, and of course the internal display.

 

My Lion install would keep hanging every once in a while, especially after trying to save a document. That is when I found this thread, and went on trying to fix the errors.

 

adr: 173356818-09-11 18:01:29,000 kernel: stampWait: Overflowed checking for stamp 0x1191 on Main ring: called from waiting for blt buffer (3D blt)
18-09-11 18:01:29,000 kernel: timestamp = 0x1171
18-09-11 18:01:29,000 kernel: ****  Debug info for apparent hang in Main graphics engine  ****
18-09-11 18:01:29,000 kernel: ring head    = 0x028028bc, wrap count = 0x14
18-09-11 18:01:29,000 kernel: ring tail    = 0x00003da8 ring control = 0x00003401   enabled, auto report disabled, not waiting, semaphore is waiting, length = 0x004 4KB pages
18-09-11 18:01:29,000 kernel: timestamps = 0x1173
18-09-11 18:01:29,000 kernel: Semaphore register values:
18-09-11 18:01:29,000 kernel: VRSYNC: (0x12044) = 0x1174
18-09-11 18:01:29,000 kernel: BRSYNC: (0x22040) = 0x0
18-09-11 18:01:29,000 kernel: RVSYNC: (0x 2040) = 0x0
18-09-11 18:01:29,000 kernel: BVSYNC: (0x22044) = 0x0
18-09-11 18:01:29,000 kernel: RBSYNC: (0x 2044) = 0x0
18-09-11 18:01:29,000 kernel: VBSYNC: (0x12040) = 0x0
18-09-11 18:01:29,000 kernel: trying to clear semaphore wait on Main ring
18-09-11 18:01:29,000 kernel: After attempt to clear semaphore wait = 0x00003001 no longer waiting
18-09-11 18:01:29,000 kernel: kIPEHR: 0x2000000
18-09-11 18:01:29,000 kernel: kINSTDONE: 0xfffffffb
18-09-11 18:01:29,000 kernel: kINSTDONE_1: 0x3bffffec

 

I looked in the IORegExplorer at the Framebuffer Display and it showed 00080000 at the IODisplayConnectFlags. I figured my primary output is an HDMI connector.

I first tried bcc9's modifications, but they did not resolve anything (I was expecting that). So I edited the HDMI port as the first connector, and left 2 DP's after that. Still no solution to the ring-stuck error.

Since then I removed ALL connectors, except for the HDMI one, so now my hex file looks like this:

0000000: 0102 0100 1007 0000 1007 0000  ............
000000c: 0406 0000 0008 0000 0600 0000  ........0...
0000018: 0000 0000 0000 0000 0000 0000  ............
0000024: 0000 0000 0000 0000 0000 0000  ............
0000030: 0000 0000 0000 0000 0000 0000  ............

and STILL I get the ring-stalling errors.

 

Can someone identify what I am doing wrong?

I thought it was suspicious when I looked at the SystemInfo page, and my display showed spdisplays_display (built in) as its default screen. Is this correct? I do not use any device-property EFI strings. I currently run the latest 10.7.2 beta.

 

Naamloos_2.tiff

 

Thanks in advance! And please keep up the good work!

Link to comment
Share on other sites

Great news!

Was FuncGroup: 3 the missing pice or connector table? Im assuming onboard-2 is only used because a dGPU with HDMI is also available.

Have not the time to try it now but i will.

 

FuncGroup=1 works on my system. Both dGPU and iGPU HDMI audio is possible in the same dsdt.

 

Can someone identify what I am doing wrong?

 

Try this: hd3000 hdmi

Link to comment
Share on other sites

Thanks for your suggestion!

 

I found out that for some reason, any changes I make to the AppleIntelSNBGraphics kext do not work.

 

I edited my table to have only one connector (or two connectors), and in my system profiler app there are still 4 connectors showing!

 

My changes do not apply. I did all the steps described, including the touch Extentions folder part, fixed permissions, rebuilt caches, everything.

 

Although I don't get the stuck ring error anymore (or at least, I don't see it in my console app) but my finder keeps getting stuck, and any app that want to save a file for instance hangs.

 

I don't have these problems in Snow Leopard, where everything works fine, and the system profiler app shows the right amount of working connectors (like it is supposed to be, internal screen and VGA).

 

Does this have to do with the smbios file? I use the 8,1 MacBookPro (with the right SMBoard-blabla). If I don't use this file, OSX Lion will not show any graphics.

 

I have to use an EFI string for Snow Leopard to work correctly, but for Lion, I don't have to use it, as long als the 8,1 smbios is present.

Link to comment
Share on other sites

Thanks for your suggestion!

 

I found out that for some reason, any changes I make to the AppleIntelSNBGraphics kext do not work.

 

I edited my table to have only one connector (or two connectors), and in my system profiler app there are still 4 connectors showing!

 

My changes do not apply. I did all the steps described, including the touch Extentions folder part, fixed permissions, rebuilt caches, everything.

 

 

Does this have to do with the smbios file? I use the 8,1 MacBookPro (with the right SMBoard-blabla). If I don't use this file, OSX Lion will not show any graphics.

 

Can you say more what is happening when you say the changes to aisnbgfb do not work?

 

There may be a problem with your smbios.plist file. In Profiler/Graphics, I get two display connectors with mbp8,1 and three with mm5,1. How many AppleIntelFramebuffers do you have in IOReg?

 

You can also use dsdt injection to select the table, AAPL,snb-platform-id with <00 00 01 00> for mbp8,1 (i.e., two connectors) or <10 00 03 00> for mm5,1 (3 connectors).

 

Edit: Are you running 32 bit Lion? If yes, likely the place you are patching is 64 bit. I found even patching correctly in 32 bit, HDMI audio does not work because the av-signal-type is wrong.

Link to comment
Share on other sites

The problem:

 

On a hackintosh, the sandy bridge graphics driver exhibits a constant event ring stall until the stall is cleared via either hotplugging the display connector (and leaving it removed for ~5 seconds to clear the stall), or by using more than 1 display connectors simultaneously. This stalling can be seen as very slow graphics display updates (~5 second delays between mouse clicks and responses) and or by looking at the kernel log, /var/log/kernel, which shows errors such as:

May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: WaitForStamp: Overflowed waiting for stamp 0x2f3 on Main ring: called from
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: timestamp = 0x02cc
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: ****  Debug info for apparent hang in Main graphics engine  ****
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: ring head	= 0x00600eb4, wrap count = 0x 3
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: ring tail	= 0x00000110 ring control = 0x00003801   enabled, auto report disabled,  waiting, semaphore not waiting, length = 0x004 4KB pages
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: timestamps = 0x02cc
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: Semaphore register values:
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: VRSYNC: (0x12044) = 0x2cc
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: BRSYNC: (0x22040) = 0x0
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: RVSYNC: (0x 2040) = 0x0
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: BVSYNC: (0x22044) = 0x0
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: RBSYNC: (0x 2044) = 0x0
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: VBSYNC: (0x12040) = 0x0
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: Looks like Main ring is stuck waiting on an event
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: After attempt to clear wait condition = 0x00003001 no longer waiting
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: kIPEHR: 0x7a000003
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: kINSTDONE: 0xfffb
May 25 23:20:45 xs-MacBook-Pro-2 kernel[0]: kINSTDONE_1: 0x230003f

For the driver fix, some prerequisites:

  • osx 10.7 and intel sandy bridge graphics hardware (intel h67/z68 chipset)
  • Installation of OSX Developer tools (if you need to lookup a PlatformInformationList that has not already been done by someone else)
  • Understanding of hex editing
  • Ability to troubleshoot by looking at ioregistry

As of the 10.7 developer preview code, the intel driver uses Smboardproduct (aka board-id in the ioregistry) to determine the display connectors that are available via the Intel HD 3000 graphics hardware. Actually there's also AAPL,snb-platform-id in the ioregistry that achieves the same result, but I'm going to ignore that for now.

 

Older code (10.6 including the 2011 MBP sandy bridge update) seems to strictly rely upon the os-info ioregistry entry for this information. I have not, and probably won't, look into editing os-info to change connector information.

 

With a 10.7 based version of AppleIntelSNBGraphicsFB.kext, the code uses the board-id as an index into the PlatformInformationList[] table. This table is pretty handy, and looks like:

/* 12 byte connectorinfo */
typedef struct {
	char byte0;
	char byte1; /* i2cid? */
	char unused[2];
	uint32	   connectortype;	/* The connector type, see below */
	char byte[4];
} connectorinfo_t;

/* 60 byte total */
typedef struct {
 char byte0; /* Presence? */
 char byte1; /* For display pipe max connector index? */
 char byte2; /* Usable Connector count */
 char byte3; /* Appears unused */
 char byte[8];
 connectorinfo_t connectors[4];
} PlatformInformationList_type;

PlatformInformationList_type PlatformInformationList[8];

where integers are represented in intel little-endian byte order, and bit 0 is the LSB.

In English, there are 8 tables in the list, each 60 bytes long. Each 60 byte table entry starts with a 12 byte header, followed by 4 connector information blocks. The connector information blocks are each 12 bytes long.

 

The connectorytype field appears to use the same codes as the ATI driver, where the only used values used by the driver thus far are:

 

#define CONNECTORTYPE_LVDS 0x00000002 /* Ie internal Low Voltage display, such as laptop */

#define CONNECTORTYPE_DP 0x00000400 /* Displayport */

#define CONNECTORTYPE_HDMI 0x00000800

 

If you don't set your board-id to a recognized value, a default connector table is instead taken from the address PlatformInformationDefault. THe default table only has 1 usable connector so this is likely to give you reduced functionality.

 

Setting SMboardproduct to various sandy bridge board-ids defines the index into PlatformInformationList[]. Interestingly only indexes 0 thru 5 are currently allowed (even though there are two more table entries...) In any case, for the purpose of this note, we'll use index 0 by setting the board-id to the MacBookPro8,1 value. In smbios.plist:

		<key>SMboardproduct</key>
	 <string>Mac-94245B3640C91C81</string>

 

Unfortunately all 8 table entries use an LVDS connector for the first value, and the driver seems to malfunction if you have nothing plugged into this port. In my case I would see the kernel log fill up with errors about a stuck ring:

kernel[0]: WaitForStamp: Overflowed waiting for stamp 0x2f3 on Main ring: called from
...
kernel[0]: Looks like Main ring is stuck waiting on an event
kernel[0]: After attempt to clear wait condition = 0x00003001 no longer waiting

And it would get re-stuck every 5 seconds or so. More importantly this would make the graphics unusably slow unless I unplugged the display for > 5 seconds first. At that point the stuck ring problem would "heal"... Using a dual-head setup also seems to avoid this problem.

 

However, rather than hot-plugging the graphics display upon every boot, one can instead modify the above table to avoid this problem.

 

First we find the PlatformInformationList table. In the example below I'm using DP4:

% cd /System/Library/Extensions/AppleIntelSNBGraphicsFB.kext/Contents/MacOS
% nm -arch x86_64 AppleIntelSNBGraphicsFB | grep 'D _PlatformInformationList'
00000000000295f0 D _PlatformInformationList
% lipo -detailed_info AppleIntelSNBGraphicsFB
Fat header in: AppleIntelSNBGraphicsFB
fat_magic 0xcafebabe
nfat_arch 2
architecture x86_64
 cputype CPU_TYPE_X86_64
 cpusubtype CPU_SUBTYPE_X86_64_ALL
 offset 4096
 size 283008
 align 2^12 (4096)
architecture i386
 cputype CPU_TYPE_I386
 cpusubtype CPU_SUBTYPE_I386_ALL
 offset 290816
 size 293092
 align 2^12 (4096)
%

So now we know the disk address for this table is:

0x295f0+4096=173552

Since there are 8 tables of 60 bytes, we could dump 8*60=480 bytes to see all 8 tables. Since I've chosen to work on the first entry, I'll dump just 60 bytes.

ALso since each connector is 12 bytes, I dump 12 bytes per line for our viewing pleasure.

% dd if=AppleIntelSNBGraphicsFB of=/tmp/table bs=1 skip=173552 count=60
60+0 records in
60+0 records out
60 bytes transferred in 0.000142 secs (422955 bytes/sec)
% cd /tmp
% xxd -c 12 < table > hex
% cat hex
0000000: 0102 0400 1007 0000 1007 0000  ............
000000c: 0503 0000 0200 0000 3000 0000  ........0...
0000018: 0205 0000 0004 0000 0700 0000  ............
0000024: 0304 0000 0004 0000 0900 0000  ............
0000030: 0406 0000 0004 0000 0900 0000  ............
%

In the above table you can see that 4 connectors are marked usable, 1 LVDS and 3 DP. On my h67 motherboard, I have 4 connectors: VGA, DVI, DP and HDMI. The DVI, DP and HDMI connectors all work with the DP connectortype shown in this table (the intel driver doesn't seem to use the connectortype for much).

 

I believe I can tell which of the above entries match my hardware by checking which entry has av-signal-type set, (or when AAPL,DisplayPipe != 0xffff?). I certainly can by exhausting testing of the combinations...

 

Now, to remove the problematic LVDS entry, I edit the hex file, producing:

0000000: 0102 0300 1007 0000 1007 0000  ............
000000c: 0304 0000 0004 0000 0900 0000  ............
0000018: 0205 0000 0004 0000 0700 0000  ............
0000024: 0406 0000 0004 0000 0900 0000  ............
0000030: 0000 0000 0000 0000 0000 0000  ............

In the above I moved the hex from the 3rd connector (row 4) to the first (row 2), zeroed the hex in row 5, and subtracted 1 from the connector count in row 0.

 

Now I write back the result:

xxd -c 12 -r hex >! table
% dd if=table of=/System/Library/Extensions/AppleIntelSNBGraphicsFB.kext/Contents/MacOS/AppleIntelSNBGraphicsFB bs=1 seek=173552 conv=notrunc
% touch /System/Library/Extensions

Viola, 3 working connectors and no driver hangs, instead of 1 broken connector & 3 working connectors with driver hangs.

 

Hello Bcc9,

I have a lenovo hd 3000 laptop, Lion works great except after monitor sleep wakes up, vertical white lines appears until I reboot the laptop. Is it possible that you can edit an AppleIntelSNBfb.kext with just lcd, vga and hdmi please. I follow your codes, but not good enough to edit the kext myself.

 

Thanks,

 

Louis

Link to comment
Share on other sites

Hello Bcc9,

I have a lenovo hd 3000 laptop, Lion works great except after monitor sleep wakes up, vertical white lines appears until I reboot the laptop. Is it possible that you can edit an AppleIntelSNBfb.kext with just lcd, vga and hdmi please. I follow your codes, but not good enough to edit the kext myself.

 

Thanks,

 

Louis

 

Look at this

 

http://www.insanelymac.com/forum/index.php...0332&st=140

 

at post 147

Link to comment
Share on other sites

Hi,

 

I have a gigabyte h67 board with hdmi, dvi and vga ports and after editing the table the system seems to work fine but, some time later the screen freezes and I have to reboot. Just before the fail I get the message described at first post

 

10/10/11 11:47:03,000 kernel: stampWait: Overflowed checking for stamp 0x6d0744 on Main ring: called from

10/10/11 11:47:03,000 kernel: timestamp = 0x6d0740

10/10/11 11:47:03,000 kernel: **** Debug info for apparent hang in Main graphics engine ****

................

..............etc

This happens with dvi and hdmi ports.

Editing the table works cause I can boot fine using macbook pro 8,1 smbios, but sooner or later the screen freezes.

I also tried with macmini 5,1 and 5,3 smbios with original driver and boots fine but it happens the sames later the same error.

 

Can someone help me?

 

thanks

Link to comment
Share on other sites

This worked on 10.7.1 which I did. But no on 10.7.2. ANy idea?

 

Asus P8Z68-V LE

HD 3000 with id 0112

 

Mine is working back now.

Only difference is changing AppleIntelHD3000Graphics.kext, instead of AppleIntelHDGraphics.kext. I'm using MacPro 4,1 in smbios.plist.

post-29865-1318736280_thumb.png

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.wordpress.com/2011/08/22/v...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.. ;)

Link to comment
Share on other sites

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).

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

 Share

×
×
  • Create New...