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

#61
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,281 posts
  • Gender:Male

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.

#62
sketcher

sketcher

    InsanelyMac Protégé

  • Members
  • Pip
  • 3 posts

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.

#63
Peterpower

Peterpower

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
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.

Attached Files



#64
rimmi2002

rimmi2002

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 153 posts

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

#65
Ace Raider

Ace Raider

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts
  • Location:NW Corner, USA
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,

#66
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,281 posts
  • Gender:Male

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

#67
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,281 posts
  • Gender:Male

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.insanelym...howtopic=249642 the intel sandy bridge driver was actually a simpler case.

A partial recap from the parent thread:

Per this post:
http://www.insanelym...p...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.insanelym...p...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.

#68
Peterpower

Peterpower

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
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

Attached Files



#69
dougaa

dougaa

    InsanelyMac Geek

  • Donators
  • 179 posts

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.

#70
Peterpower

Peterpower

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts

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.

#71
Ace Raider

Ace Raider

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts
  • Location:NW Corner, USA

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

#72
dougaa

dougaa

    InsanelyMac Geek

  • Donators
  • 179 posts

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.

#73
iLeopod

iLeopod

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 435 posts
  • Gender:Male
  • Location:Germany
  • Interests:ileopod.wordpress.com
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.

#74
toleda

toleda

    InsanelyMac Legend

  • Gurus
  • 1,266 posts
  • Gender:Male
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?

#75
iLeopod

iLeopod

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 435 posts
  • Gender:Male
  • Location:Germany
  • Interests:ileopod.wordpress.com
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.

#76
Blaziken584

Blaziken584

    InsanelyMac Protégé

  • Members
  • Pip
  • 8 posts

Sorry this is centered, the editor doesn't work on the iPad

This is a tough cookie to chew for me.
I have a laptop with a very obvious flaw with the Intel HD Graphics; the internal display or the VGA port do not display anything, but my HDMI port did.
So I popped open hex fiend and opened the binary. And found the table in the guide (offset: 459324)
The internal display connector that was in there to begin with was:

0503 0000 0200 0000 3000 0000

If this is removed my internal display entry freezes on the last thing that was there (ie. If it was verbose if would stay there) but I can still VNC into it or hook up an HDMI cable.

Changing the 4th byte does nothing either.

I have also tried forcing 800x600. No go either

The only successfully identified entry in the table is HDMI:
0205 0000 0004 0000 0700 0000

Any help would be massively appreciated

I also have my vbios dumped, I can't find how to read the connectors, and bbc9s utility returns "atom bios header not found



#77
dougaa

dougaa

    InsanelyMac Geek

  • Donators
  • 179 posts

Sorry this is centered, the editor doesn't work on the iPad. This is a tough cookie to chew for me.
I have a laptop with a very obvious flaw with the Intel HD Graphics; the internal display or the VGA port do not display anything, but my HDMI port did.
So I popped open hex fiend and opened the binary. And found the table in the guide (offset: 459324)
The internal display connector that was in there to begin with was:

0503 0000 0200 0000 3000 0000

If this is removed my internal display entry freezes on the last thing that was there (ie. If it was verbose if would stay there) but I can still VNC into it or hook up an HDMI cable.

Changing the 4th byte does nothing either.

I have also tried forcing 800x600. No go either

The only successfully identified entry in the table is HDMI:
0205 0000 0004 0000 0700 0000

Any help would be massively appreciated

I also have my vbios dumped, I can't find how to read the connectors, and bbc9s utility returns "atom bios header not found

When you delete a line of the table you also have to change the count of entries from 4 to 3. Did you do that?

#78
Blaziken584

Blaziken584

    InsanelyMac Protégé

  • Members
  • Pip
  • 8 posts

When you delete a line of the table you also have to change the count of entries from 4 to 3. Did you do that?

Yes, I made sure to change it. System Information reports the right amount of connectors, which is 3.
I opened the VBIOS in hexfiend, and I found out that it is a proprietary VBIOS from toshiba. I will need a way to view the connectors the way it's been done for ATi Mobility.

edited: Checked for bios update... nothing.

#79
toleda

toleda

    InsanelyMac Legend

  • Gurus
  • 1,266 posts
  • Gender:Male

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.


Thanks for the suggestion; I will try this weekend.

Regarding your current setup, you can boot on HDMI and in IOReg, do you see:

IGDU/AppleIntelFrambuffer shows something like:
audio-codec-info: 03 01 05 00
audio-selector: 30 30 70 64
av-signal-type: 02 00 00 00
conector-type: 00 08 00 00

and HDEF/AppleHDAController/.../IOHDACCodecDevice@1B,3 shows:
DigitalAudioCapabilities
IOHDACodecVendorID: ffffffff80862805

and the result is no HDMI audio and no on-board audio?

I'm getting the same sound assertions you are with the above (mbp dsdt mods). My motherboard does not have DVI or DP, just the 2x HDMI and VGA (haven't tried).

Any experience with HD 3000 in smbios at macbookpro 8,1, imac12,2 or macpro?

The AppleIntelSNBGraphicsFB.kext loads in 1 of every 4 boots, any suggestions there?

#80
pauldmps

pauldmps

    InsanelyMac Protégé

  • Members
  • Pip
  • 24 posts

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


Another laptop user with DeviceID 0116 here. Unlike other users with devid 0116, I haven't been able to get the SNB kext even partially working. I always get "Transcript Offline: Buffer pool allocate [18100] failed" at boot with the kext installed. Then the screen goes blank. No green screen, no artifacts.

IntelHDGraphics.kext loads successfully, however.

This is definitely a connector problem. I tried both MacbookPro 8,1 & Macbook Air 2011 SMboardproduct but no improvement.

One more important thing to note is that in IORegistryExplorer, the display connectors for my display (listed as appledisplay) shows <00 00 00 00>. Is the fault lying over there ?

@bc9
Anything you know that might help ?

@Peterpower

What does you display connectors show in IORegistryExplorer ?

Attached File  Untitled.tiff   201.79KB   66 downloads





0 user(s) are reading this topic

0 members, 0 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