Jump to content
bcc9

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

221 posts in this topic

Recommended Posts

There is already a separate thread about using os-info to get working qe/ci support under 10.6. Please could we keep newbie & 10.6 discussion out of this thread?

Share this post


Link to post
Share on other sites
Advertisement
There is already a separate thread about using os-info to get working qe/ci support under 10.6. Please could we keep newbie & 10.6 discussion out of this thread?

Are you referring to me?

 

I'm running OSX Lion with you're custom connector trick (thanx for that) otherwise my driver would get stuck every 5 seconds. The only thing that is not working is QE/CI, and i see a lot of people had success on editing there device-id in their DSDT.

Share this post


Link to post
Share on other sites
Are you referring to me?

 

I'm running OSX Lion with you're custom connector trick (thanx for that) otherwise my driver would get stuck every 5 seconds. The only thing that is not working is QE/CI, and i see a lot of people had success on editing there device-id in their DSDT.

I guess not since you're on 10.7 :D

I'm also guessing you must have edited the driver's info.plist to get the pci matching working without dsdt, otherwise I'm confused about your situation.

Also I'm not sure which device entry (if any) in your dsdt matches the graphics hardware, I don't see an obvious device. Check the pci address for your display with lspci, and find the matching _ADR statement in your dsdt. And or check your ioregisty. If there is no matching device present in your dsdt, you may need to add the entire Device subtree for the graphics hardware, just like you typically do for discrete graphics hardware.

 

No idea why you say might not have working qe/ci, with no debug info.

Share this post


Link to post
Share on other sites
Thanks for getting back! I guess I try that as well. I was wondering did you ever consider copying the edited AppleIntelSNBGraphicsFB kext from lion into SL and see if that makes a difference. I know integrated graphics are handeled differently in both, but I guess worth a shot. I'll try it once I reload. Thanks!

I agree with bcc9 about keeping this thread for Lion. I deleted my previous reply. Instead, see my posting in the other thread at http://www.insanelymac.com/forum/index.php...t&p=1721025

Share this post


Link to post
Share on other sites

I did some more research and i have found the address (0x00020000).

 

Also i've found out that i don't need to customize the connector info when i use macpro3.1 as smbios.

Only with the macbookpro8.1 smbios my driver will hang every 5 seconds and i need to customize the connectors.

 

Also i have to remove the AppleIntelHDGraphicsGLDriver.bundle otherwise the driver will hang after verbose mode on the apple logo with my mouse enabled, doesn't matter which smbios i use.

 

I'm using a Core i3 2100 / HD2000.

 

Error log with AppleIntelHDGraphicsGLDriver.bundle installed

kernel[0]: WaitForStamp: Overflowed waiting for stamp 0x62 on Main ring: called from
kernel[0]: timestamp = 0x000e
kernel[0]: ****  Debug info for apparent hang in Main graphics engine  ****
kernel[0]: ring head	= 0x00000578, wrap count = 0x 0
kernel[0]: ring tail	= 0x00002d80 ring control = 0x00003001   enabled, auto report disabled, $
kernel[0]: timestamps = 0x000e
kernel[0]: Semaphore register values:
kernel[0]: VRSYNC: (0x12044) = 0xe
kernel[0]: BRSYNC: (0x22040) = 0x0
kernel[0]: RVSYNC: (0x 2040) = 0x0
kernel[0]: BVSYNC: (0x22044) = 0x0
kernel[0]: RBSYNC: (0x 2044) = 0x0
kernel[0]: VBSYNC: (0x12040) = 0x0
kernel[0]: kIPEHR: 0x2000000
kernel[0]: kINSTDONE: 0xff88fffb
kernel[0]: kINSTDONE_1: 0x9bf8ffff

Share this post


Link to post
Share on other sites

I modify the table to be like this.

 

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

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

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

0000024: 0406 0000 0008 0000 0600 0000 ............

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

 

Hopefully to enable my VGA port but it's not. Any idea?

Share this post


Link to post
Share on other sites
I modify the table to be like this.

 

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

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

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

0000024: 0406 0000 0008 0000 0600 0000 ............

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

 

Hopefully to enable my VGA port but it's not. Any idea?

I don't think this framebuffer works via a separate VGA port. If your hardware has VGA&DVI tied together, then the framebuffer output should work via the DVI connector config (per rimmi's post). Otherwise, I'm not aware of anyone who has the VGA port working other than for bios/bootup output.

 

 

 

Only with the macbookpro8.1 smbios my driver will hang every 5 seconds and i need to customize the connectors.
That, and the error log you showed, are the default behavior you get when you haven't edited the connectors per post #1 (and you're not employing a workaround such as hotplugging the connector or having 2 connectors plugged in at once).

 

 

Also i have to remove the AppleIntelHDGraphicsGLDriver.bundle otherwise the driver will hang after verbose mode on the apple logo with my mouse enabled, doesn't matter which smbios i use.

Interesting, I assume you don't have working opengl without that driver, thus it's better to patch the connector info.

Share this post


Link to post
Share on other sites

@rimmi:

No credit or reference to this thread where I detailed how to modify the kext in the first place?? Just says "my [rimmi's] modified AppleIntelSNBGraphicsFB", and now it's called tony/rimmi's solution? That AppleIntelSNBGraphicsFB modification would not be possible were it not for the information I carefully documented here (after developing the solution in the first place).

 

I was also the person to come up with the device-id injection via dsdt method for this driver.

 

It's really intellectually dishonest to not give credit where credit's due.

 

Not to mention, posting a binary patched AppleIntelSNBGraphicsFB instead of just a reference to how to do it oneself leaves the users depending upon you for updates for every minor OSX release.

:)

Share this post


Link to post
Share on other sites
@rimmi:

No credit or reference to this thread where I detailed how to modify the kext in the first place?? Just says "my [rimmi's] modified AppleIntelSNBGraphicsFB", and now it's called tony/rimmi's solution? That AppleIntelSNBGraphicsFB modification would not be possible were it not for the information I carefully documented here (after developing the solution in the first place).

 

I was also the person to come up with the device-id injection via dsdt method for this driver.

 

It's really intellectually dishonest to not give credit where credit's due.

 

Not to mention, posting a binary patched AppleIntelSNBGraphicsFB instead of just a reference to how to do it oneself leaves the users depending upon you for updates for every minor OSX release.

:)

 

Big sorry to you bcc9 i should have known that without you there may still be no possibility for HD3000. I'll never forgot to give u credits ever again.

 

Back to the topic of HD3000. Did u happen to have a problem with graphic glitches occur sometimes and that might cause system to hang?

Share this post


Link to post
Share on other sites
Big sorry to you bcc9 i should have known that without you there may still be no possibility for HD3000. I'll never forgot to give u credits ever again.
My comment was just directed @rimmi not you... It's guides like that one that make no reference to where their information comes from, or where to get the details that are the problem. Just want proper attribution not worship ;)
Back to the topic of HD3000. Did u happen to have a problem with graphic glitches occur sometimes and that might cause system to hang?
With the developer previews, I saw some framebuffer artificats that wouldn't go away (would even show up in window captures), but those went away with the GM release. I have had some kernel panics at boot time with the GM release, but those still happen after I switched to an ATI graphics card. That's all I've experienced.

Share this post


Link to post
Share on other sites
My comment was just directed @rimmi not you... It's guides like that one that make no reference to where their information comes from, or where to get the details that are the problem. Just want proper attribution not worship :)

With the developer previews, I saw some framebuffer artificats that wouldn't go away (would even show up in window captures), but those went away with the GM release. I have had some kernel panics at boot time with the GM release, but those still happen after I switched to an ATI graphics card. That's all I've experienced.

 

Thanks for the info. So i think i have to move the unofficial 10.7.2 hopefully it will solve both artifacts and VGA port.

Share this post


Link to post
Share on other sites

Hi folks, I have an Intel HD 3000 in my Dell XPS with Intel i5 2410m, my ID is 0116 so it works out of the box. But the Screen is all green and totally messed up. I guess it is because my CPU is used in the Mac Mini. How can i change my Connectors so it only used LVDS output and screw all other? I need a SNB Buffer kext that is modded in a way that smbios.plist of MacbookPro8.1 only points to LVDS connector.

 

Thanks in advance

 

// The Pictures states everthing is corretly listed, Intel HD Graphics 3000 and Intel Core i5, sry for the Quality but u can see the Screen is all messed up.

 

EDIT: ok i did it on my own but no improvement at all

But thanks to bcc9, all the things u figured out and the bash commands... wow professional IT u must be.

post-810951-1312210905_thumb.jpg

Share this post


Link to post
Share on other sites
@rimmi:

No credit or reference to this thread where I detailed how to modify the kext in the first place?? Just says "my [rimmi's] modified AppleIntelSNBGraphicsFB", and now it's called tony/rimmi's solution? That AppleIntelSNBGraphicsFB modification would not be possible were it not for the information I carefully documented here (after developing the solution in the first place).

 

I was also the person to come up with the device-id injection via dsdt method for this driver.

 

It's really intellectually dishonest to not give credit where credit's due.

 

Not to mention, posting a binary patched AppleIntelSNBGraphicsFB instead of just a reference to how to do it oneself leaves the users depending upon you for updates for every minor OSX release.

:P

 

My bad bcc9. Didn't mean to disrespect you in anyway. None of this would have been possible without your methods. When I wrote the first post I ended up mentioning dougaa since he helped me the most over the weekend I was working on this. I did mention you in the next post I wrote, but apologize I should have done in the first as well. I have changed things around. You definitely deserve credit for all of this. Its your work. I put up a post on tony's site as well. I hope no hard feeling are left man.

Share this post


Link to post
Share on other sites

Got this to work on P8H67-I Deluxe with i7-2600k. Switched DVI to be primary display. VGA still does not work; hangs at DSMOS has arrived. Not sure if HDMI works. But at least I don't have to swap cables anymore.

 

Just to add notes to the thread...

 

- Changed the IOPCIPrimaryMatch keys in AppleIntelSNBGraphicsFB.kext and AppleIntelHDGraphics.kext to

<string>0x01228086</string> I deleted the other device id's as they are not needed

- Followed instructions in post #1. Deleted first display entry in the "Table" padded with zeroes, and reduced the number of ports to 3.

 

And to document previous issues:

- Started out with 1024x768 on DVI. Vanilla install of 10.7 using MalDon's method.

- After changing the IOPCIPrimaryMatch keys, got full resolution, but with really bad delay unless I booted with both VGA and DVI ports plugged in and then unplugged the VGA. Booting with just the DVI port at this point resulted in full res but really bad delay (caused by driver hangs).

 

Primary Thanks to bcc9, how did you find this fix?

 

Secondary thanks to Sketcher for pointing me back to this thread.

 

Cheers,

Share this post


Link to post
Share on other sites
My bad bcc9. Didn't mean to disrespect you in anyway. None of this would have been possible without your methods. When I wrote the first post I ended up mentioning dougaa since he helped me the most over the weekend I was working on this. I did mention you in the next post I wrote, but apologize I should have done in the first as well. I have changed things around. You definitely deserve credit for all of this. Its your work. I put up a post on tony's site as well. I hope no hard feeling are left man.

Glad we cleared that up. Yes, no hard feelings.

Since I don't have time for newbie support, there is certainly room for separate more newbie-centric guides than what I wrote.

I do think however that rather than posting apple code (the modified kext), it would make more sense to post apple's compiled version of nm and a script that auto-patches the kext instead. Then there would be no need for multiple hacked kexts to be floating around (it'll surely get confusing as soon as there is more than one release of 10.7 out there).

Personally I didn't want to be in the business of posting apple code so I didn't make such a solution (technically such attachments are against forum rules as well, yet common practice...)

Share this post


Link to post
Share on other sites
Primary Thanks to bcc9, how did you find this fix?

The information comes from reading the code. You can disassemble (or better, decompile) the code, and look at the logic used in and around the references to the various ioregistry information, (such as os-info under 10.6). To be able to reconstruct the references in higher level logic, it helps to have a software engineering background, and considerable c and c++ programming experience.

 

After having already done analogous detective work for the osx radeon hd driver, http://www.insanelymac.com/forum/index.php?showtopic=249642 the intel sandy bridge driver was actually a simpler case.

 

A partial recap from the parent thread:

 

Per this post:

http://www.insanelymac.com/forum/index.php...t&p=1686937

 

I saw that AppleIntelSNBGraphicsFB checks the platform ID against a whitelist, and falls over to a generic case if there is not a match. The whitelist is just a list of sandy bridge product ids, which can be set via the SMboardproduct key in smbios.plist

 

Per http://www.insanelymac.com/forum/index.php...t&p=1687643

In the routine AppleIntelSNBGraphicsFB::getPlatformID(), the platform IDs are mapped to indexes into the PlatformInformationList[] table. With the macbookpro8,1 value I posted, the index is 0, and I get 4 usable display connectors (as seen under system profiler). Other sandy bridge platform IDs map to indexes 1 thru 5, and with those, I achieve 0 or 3 connectors (where 0 connectors means no working display at all).

 

The intel driver seems to be treating platform IDs a lot like the ATI driver treats personality names (Vervet, Uakari, etc), where those names map to which connectors are available.

 

 

With both the ATI and intel drivers, once I found the connector tables, it was a matter of looking at how the data is used by the driver to verify the semantics of the various fields. The information is incomplete as I stopped when I got far enough to solve the problem I was having with the driver.

Share this post


Link to post
Share on other sites

Bcc9, could u may look into the thing with the Intel HD 3000 graphics with Hardware ID 0116?

All users with this ID get a green screen while only the left half of the display is working, QE/CI works out of the box.

The Problem is in the AppleIntelSNBGraphicsFB.kext. When i use the Snow Leopard kext screen works wonderful but unfortunately AppleIntelHDGraphics.kext from Lion wont boot with Snow Leo AppleIntelSNBGraphicsFB.kext. When i delete AppleIntelHDGraphics.kext i have full resolution and everthing working but as AppleIntelHDGraphics.kext controlls QE/CI we cant have QE/CI and both half of the screen.

 

Lion HD Graphics + Lion SNB Buffer = Green Screen bug and only 50% visible QE/CI working

Lion HD Graphics + SL SNB Buffer = Kernel Panic while booting caused by Lion HD Graphics

SL HD Graphics + SL SNB Buffer = Some artifacts, full resolution, no QE/CI

No HD Graphics + SL SNB Buffer= very nice screen, no artifacts, full resolution, no QE/CI

 

This Problem only occour to people with the ID 0116 which all "m" Models of the Sandy Bridge processors use.

It would be wonderful to find out what in the Lion SNB Framebuffer causes the Green Screen, i coundnt see any difference between the wonderfully working Sl SNB Framebuffer and the green-screen-u-cant-do-anything-but-play-chess-with-QE-CI Lion SNB Framebuffer

 

the attachment show the green screen thing, sry for the quality but u see what i mean

post-810951-1312384961_thumb.jpg

Share this post


Link to post
Share on other sites
Bcc9, could u may look into the thing with the Intel HD 3000 graphics with Hardware ID 0116?

All users with this ID get a green screen while only the left half of the display is working, QE/CI works out of the box.

The Problem is in the AppleIntelSNBGraphicsFB.kext. When i use the Snow Leopard kext screen works wonderful but unfortunately AppleIntelHDGraphics.kext from Lion wont boot with Snow Leo AppleIntelSNBGraphicsFB.kext. When i delete AppleIntelHDGraphics.kext i have full resolution and everthing working but as AppleIntelHDGraphics.kext controlls QE/CI we cant have QE/CI and both half of the screen.

 

Lion HD Graphics + Lion SNB Buffer = Green Screen bug and only 50% visible QE/CI working

Lion HD Graphics + SL SNB Buffer = Kernel Panic while booting caused by Lion HD Graphics

SL HD Graphics + SL SNB Buffer = Some artifacts, full resolution, no QE/CI

No HD Graphics + SL SNB Buffer= very nice screen, no artifacts, full resolution, no QE/CI

 

This Problem only occour to people with the ID 0116 which all "m" Models of the Sandy Bridge processors use.

The native ID for my i5-2500K is 0112, and I change the ID to 0116 in the DSDT. I also tried changing the ID to 0126. I didn't notice any difference between using 0116 or 0126, and didn't see any problem like you describe. DVI works fine after editing the connector list. (This is all in Lion.) So I don't think the problem is just using ID 0116.

 

If your native ID is 0116, that implies you must have a laptop, since 0116 is the ID for mobile HD3000. One possibility is that there is some difference between your built-in display and the display in Mac laptops so that the driver doesn't work correctly with your display. If that's the problem, there may not be any complete solution.

Share this post


Link to post
Share on other sites
The native ID for my i5-2500K is 0112, and I change the ID to 0116 in the DSDT. I also tried changing the ID to 0126. I didn't notice any difference between using 0116 or 0126, and didn't see any problem like you describe. DVI works fine after editing the connector list. (This is all in Lion.) So I don't think the problem is just using ID 0116.

 

If your native ID is 0116, that implies you must have a laptop, since 0116 is the ID for mobile HD3000. One possibility is that there is some difference between your built-in display and the display in Mac laptops so that the driver doesn't work correctly with your display. If that's the problem, there may not be any complete solution.

 

I dont think that is the problem, macbooks cant change their Display when updating from Snow Leopard (which works just fine whit id 0116 (full resolution and QE/CI) and Lion what cuase the green screen thing) Original Macs with ID 0116 work with SL & Lion.

Share this post


Link to post
Share on other sites
... it helps to have a software engineering background, and considerable c and c++ programming experience.

 

Well there you go right there... I only have an EE with C/C# experience. :D

 

.. Other sandy bridge platform IDs map to indexes 1 thru 5, and with those, I achieve 0 or 3 connectors (where 0 connectors means no working display at all).

 

It would be great if you could post a table of the valid indexes and what platform they relate to.

 

Thanks for the excellent work.

Share this post


Link to post
Share on other sites
I dont think that is the problem, macbooks cant change their Display when updating from Snow Leopard (which works just fine whit id 0116 (full resolution and QE/CI) and Lion what cuase the green screen thing) Original Macs with ID 0116 work with SL & Lion.

I see what you mean, but we know that the Snow Leopard and Lion drivers are different. One difference is in how they handle the connector list. There could be a hardware difference which doesn't matter to the Snow Leopard driver but does matter to the Lion driver. Of course, this is all speculation.

Share this post


Link to post
Share on other sites

Does anyone know how av-signal-type is set, because with had-gfx and HDEF and IGPU i get :

Sound assertion ""Graphics vendor supplied 'av-signal-type' property indicates a DVI device with audio capabilities has been attached but cannot be supported."" failed in AppleHDAController at line 2341 goto handler

Will putting HDMI in first row of connector table help?

 

It seem like acceleration is not working 100%( no transparent Menu Bar and lagging while playing 1080p Vid. Also no cinebench possible.

Share this post


Link to post
Share on other sites

Trying to get HDMI video & audio to work

 

H67n/i5-2405s, vga, hdmi x 2

HD3000/d_id: 0112

mbp 8,1

 

$ cat hex

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

000000c: 0205 0000 0004 0000 0700 0000 ............

0000018: 0406 0000 0008 0000 0600 0000 ............

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

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

 

 

case 1: hdmi cable plugged into hdmi connector (port 5) with origin (above)l table

boots fine, display qe/ci (conector-type: 4)

 

present but no audio:

audio-codec-info

audio-selector

av-signal-type

 

plug a second hdmi monitor into hdmi connector (port 7)

 

display qe/ci (connector-type: 8) (hot plug video working)

 

no audio entires (hot plug audio not working)

 

 

case 2: reverse second and third entries in table above

 

never gets to desktop, can't remote in

 

kernel log: kernel**** Debug info for apparent hang in Main graphics engine ….....

 

 

Any suggestions on how to boot a hdmi connector with connector-type = 8?

Share this post


Link to post
Share on other sites

Maybe this way:

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

 

My experience with HDMI audio:

 

I have HDA-GFX entrys in HDEF and IGPU like in MacBookPro8,1. After that the audio device for hdmi is under HDEF in IOREG just like at real MacBook.

 

When using Displayport Connector-Type i get a sound assertion(see my last post).

 

When i set Connector-Type to HDMI no HDMI audio and also no Realtek audio anymore.

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

  • Recently Browsing   0 members

    No registered users viewing this page.

×