Jump to content

display goes off when AppleIntelFramebufferCapri is loaded


  • Please log in to reply
89 replies to this topic

#1
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male
my display goes blank when this is loaded, i have ivy bridge with HD4000.

removing HD4000 kext makes no difference, it seems to be the framebuffer that does it.

there are 3 output detected, the display sits on display port at IntelFrameBuffer@2, its properties and vendor id etc are correctly showing in ioreg. i can read all this info from screen sharing while the display is blank.

i've also noticed that AGPM sits in framebuffer@0 only.

perhaps i can force the display from AppleDisplay to AppleBacklightDisplay, anyone know how i can do that?

#2
iHackintosh_PT

iHackintosh_PT

    InsanelyMac Protégé

  • Members
  • PipPip
  • 62 posts
  • Gender:Male
Hi,read this http://www.insanelym...howtopic=280372

#3
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male
HI, i've read that several times, and made all the DSDT edits.

i've also posted on that thread some days ago. it doesnt *appear* to address my problem. am i missing something obvious?

if you use HD4000, could you please post your ioreg and DSDT for my reference?

#4
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male
i'm going to bump this, as i'd like to know if anyone knows of a utility or command that can tell me which framebuffer number the desktop is being output to?

my current feeling is that its putting the display out to framebuffer @0 or @1, but the display is connected to @2.

#5
eep357

eep357

    Triple Platinum

  • Supervisors
  • 2,527 posts
  • Gender:Male
  • Location:Dark Side of The Wall
  • Interests:things and stuff
Not sure what you mean by Framebuffer #, 1 framebuffer but multiple ports/displays. command to use is just ioreg like: ioreg | grep aty_
Not sure if that will work for intel, but if not: ioreg | grep IntelFrameBuffer
should. post output.

#6
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male
Yeah it does thanks, and I can see all that from the ioreg viewer, and shows the display connected to Intelframebuffer@2

But I happen to know there is only two outputs on my machine, displayport and VGA. VGA, as we know, is useless, I just get garbled output, but the displayport screen just goes off. And I mean off, the backlight goes off, just like its asleep or disabled or something. It only happens when the intelframebuffercapri.kext is loaded.

I was wondering if the screen output might not be going to @2, perhaps @0 and @1.

But then why does it detect the display on@2

I seem to lack the diagnostic tools to work out what's happening!

#7
eep357

eep357

    Triple Platinum

  • Supervisors
  • 2,527 posts
  • Gender:Male
  • Location:Dark Side of The Wall
  • Interests:things and stuff
can you upload your IOreg?

#8
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male
sure, here ya go.

Attached Files



#9
pcmantinker

pcmantinker

    InsanelyMac Protégé

  • Members
  • PipPip
  • 91 posts
  • Gender:Male
  • Location:LSU
  • Interests:Hackintoshes, Programming, Piano, Classic Video Games
I'm having similar issues with my laptop:
Intel Core i7-3610QM 2.3GHz
Intel HD 4000 with HDMI, VGA, and internal laptop screen (blank)
NVIDIA Geforce GTX 675M

This is the EFI string I've been using to get HDMI support:
ig-platform-id: 01660003, Stolen RAM for FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2

Code:
<key>device-properties</key>
<string>7f0000000100000001000000730000000200000002010c00d041030a000000000101060000027fff04002c0000004100410050004c002c00690067002d0070006c006100740066006f0072006d002d006900640000000800000003006601140000006800640061002d0067006600780000000d0000006f6e626f6172642d31</string>


I have verified that accelerated display through HDMI works. I haven't tried VGA since Macs don't have VGA ports. I'm not using DSDT currently. Any thoughts on how to fix? I've been going at this for a few days and would like to enable graphics acceleration for either my Intel HD 4000 or GTX 675M. Note, I can't change the graphics memory in the BIOS as it is a laptop.

#10
eep357

eep357

    Triple Platinum

  • Supervisors
  • 2,527 posts
  • Gender:Male
  • Location:Dark Side of The Wall
  • Interests:things and stuff
Lost this thread for a while, just looking at ioreg real quick, and can have closer look later, but nothing wrong with how the framebuffer is loaded, but all 3 displays are showing the same connector type, looks like it's expecting 3 displayport connectors which could be a problem. not sure if personalities can be edited same as ATI. Wifi is listed as en0 and ethernet not active, this can cause icloud and other apple server problems. Audio working? Your PC uses Intel DH61AG motherboard, a little info here on bios settings http://www.insanelym...howtopic=272905 The DSDT you uploaded was not compiled, were you using it like that?

pcmantinker-Not sure what problem your having? You say it works through HDMI, is built-in display not working?

#11
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male

Lost this thread for a while, just looking at ioreg real quick, and can have closer look later, but nothing wrong with how the framebuffer is loaded, but all 3 displays are showing the same connector type, looks like it's expecting 3 displayport connectors which could be a problem. not sure if personalities can be edited same as ATI. Wifi is listed as en0 and ethernet not active, this can cause icloud and other apple server problems. Audio working? Your PC uses Intel DH61AG motherboard, a little info here on bios settings http://www.insanelym...howtopic=272905 The DSDT you uploaded was not compiled, were you using it like that?


Hi, thanks for the reply :)

Dsdt is compiled before use, i posted the readable version on purpose.

I can probably sort the en0 thing out by getting LAN working before enabling the wifi card. Audio works with voodoohda, I've not tried dsdt changes to make that work yet vanilla yet. In this instance, I haven't bothered to install it yet.

Without the gfx working, I cant really choose to use it, but i guess I could try the other fixes in the meantime to keep myself amused and positive ;)I plan to do as much as I can with dsdt.

But as for gfx, there are only two physical outputs, an internal display connected via embedded display port, and external VGA.

It seems to be detecting my display but not using it for output?

I dont seem to have any tools that will tweak this. SwitchResX doesn't seem to help.

Changing smbios presets doesn't seem to change anything either.

The computer is not Im use yet, so I'm happy to experiment and reinstall as needed.

But what to try next? I'm out of ideas :/

#12
pcmantinker

pcmantinker

    InsanelyMac Protégé

  • Members
  • PipPip
  • 91 posts
  • Gender:Male
  • Location:LSU
  • Interests:Hackintoshes, Programming, Piano, Classic Video Games

pcmantinker-Not sure what problem your having? You say it works through HDMI, is built-in display not working?

I'm running Mountain Lion 10.8.0 with the MacBookPro10,1 SMBIOS and I have an EFI string injected to try and get Intel HD 4000 graphics acceleration for my laptop. Video works from HDMI using this EFI string:

<key>device-properties</key>
<string>7f0000000100000001000000730000000200000002010c00d041030a000000000101060000027fff04002c0000004100410050004c002c00690067002d0070006c006100740066006f0072006d002d006900640000000800000003006601140000006800640061002d0067006600780000000d0000006f6e626f6172642d31</string>

With this string, I have full acceleration on an external monitor using HDMI but not on the internal display on my laptop. ML actually sees my external monitor as a second monitor and not as a mirror display. I'm guessing that the number of Ports being only 2 has something to do with the fact that my internal display isn't working.

If I use any of the strings with a 96MB FB, it only displays on my external monitor over HDMI and doesn't display a mouse cursor, but graphics acceleration is enabled. The 32MB FB strings are hit and miss on getting the external/internal displays to work. When the internal display does work on the 32MB EFI strings, the display is garbled. I know that my integrated graphics uses 64MB (unchangeable since it's a laptop) because I see that show up when I load Chimera 1.11.1. I've also tried all AAPL,ig-platform-id combinations and have not been able to get my graphics acceleration working. I have noticed that anything on FB 2 gives me the best results, but that's specific to my setup. Optimistically, I need an AAPL,ig-platform-id that uses 64MB for the frame buffer, has more than 2 ports, and is on FBMem 2. I'm not sure if any such AAPL,ig-platform-id exists, but there might be one that hasn't been discovered.

I've tried every EFI string found on this thread: http://www.tonymacx8...le-hd4000.html. However, I can't figure out how to get the internal display working. As soon as the login screen loads, it flashes the internal display and then the display goes blank. That's when I see my external monitor activate over HDMI. Here's a video of the behavior to try and give you a better sense of what's happening. I apologize for the quality as it was taken with my iPhone.:
http://www.youtube.com/watch?v=KZB_0NxoYMc

Here's an output of my ioreg:
Spoiler


#13
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male
I forgot to mention, if I switch my display from pc to hdmi input (it had hdmi-in), I can briefly see the mac display flash on as it switches, almost like the backlight is purposely switched off or something. When I do this, ioreg viewer also shows the display disconnect and reconnect (red/green text).....



#14
eep357

eep357

    Triple Platinum

  • Supervisors
  • 2,527 posts
  • Gender:Male
  • Location:Dark Side of The Wall
  • Interests:things and stuff

I'm running Mountain Lion 10.8.0 with the MacBookPro10,1 SMBIOS and I have an EFI string injected to try and get Intel HD 4000 graphics acceleration for my laptop. Video works from HDMI using this EFI string:

&amp;--#60;key&amp;--#62;device-properties&amp;--#60;/key&amp;--#62;
&amp;--#60;string&amp;--#62;7f0000000100000001000000730000000200000002010c00d041030a000000000101060000027fff04002c0000004100410050004c002c00690067002d0070006c006100740066006f0072006d002d006900640000000800000003006601140000006800640061002d0067006600780000000d0000006f6e626f6172642d31&amp;--#60;/string&amp;--#62;

With this string, I have full acceleration on an external monitor using HDMI but not on the internal display on my laptop. ML actually sees my external monitor as a second monitor and not as a mirror display. I'm guessing that the number of Ports being only 2 has something to do with the fact that my internal display isn't working.

If I use any of the strings with a 96MB FB, it only displays on my external monitor over HDMI and doesn't display a mouse cursor, but graphics acceleration is enabled. The 32MB FB strings are hit and miss on getting the external/internal displays to work. When the internal display does work on the 32MB EFI strings, the display is garbled. I know that my integrated graphics uses 64MB (unchangeable since it's a laptop) because I see that show up when I load Chimera 1.11.1. I've also tried all AAPL,ig-platform-id combinations and have not been able to get my graphics acceleration working. I have noticed that anything on FB 2 gives me the best results, but that's specific to my setup. Optimistically, I need an AAPL,ig-platform-id that uses 64MB for the frame buffer, has more than 2 ports, and is on FBMem 2. I'm not sure if any such AAPL,ig-platform-id exists, but there might be one that hasn't been discovered.

I've tried every EFI string found on this thread: http://www.tonymacx8...le-hd4000.html. However, I can't figure out how to get the internal display working. As soon as the login screen loads, it flashes the internal display and then the display goes blank. That's when I see my external monitor activate over HDMI. Here's a video of the behavior to try and give you a better sense of what's happening. I apologize for the quality as it was taken with my iPhone.:


Here's an output of my ioreg:


ig-platform-id: 01660003, Stolen RAM for FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2

edit: Oh wait, you said more than 2 ports?

I forgot to mention, if I switch my display from pc to hdmi input (it had hdmi-in), I can briefly see the mac display flash on as it switches, almost like the backlight is purposely switched off or something. When I do this, ioreg viewer also shows the display disconnect and reconnect (red/green text).....

Have you tried the easy way already using new version of Chameleon with GE=Yes and seting display resolution in org.cham.boot.plist to exactly match nativ resolution of your display?

Also I'm not the foremost expert on DSDT's, but your's was looking kinda screwed up. Errors that needed to be fixed to compile, PR Scope with CPUis in the middle of it, and method DTGP shoe horned in the middle when it should be at very beginning or very end. GFX0 used vs IGPU, PCI0 didn't look right..Could be some Ivy Bridge differences which I don't have experience with, so maybe I'm completely wrong and it's all perfect already, but might be good to get a guru to give it a once over to be sure.

What SMbios? Guessing one of the newest iMac's would be your closest fit. As more people buy these all in one PC's it's gonna create challenges that we go out of our way to avoid when building custom hack from only known compatible parts that are sometimes hard to track down.

#15
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male
Yep, tried various smbios, iMac, MacBook types.

I've tried the chimera GE=Yes (it uses id9 and that has no display detected at all) tried lots of graphics modes, no change. So it's currently set to native 1920x1080

I've tried changIng gfx0 to igpu. All to no avail so far.

I'm sure there are likely many dsdt issues though

I did choose wisely with the in theory,, it's a thin mini itx type with interchangeable board etc. On paper it's all compatible, just this snag.

I wanted to edit the _DOS & _DOD but I couldn't work out what my current dsdt is trying to do, despite reading the ACPI spec.

Where do I find these gurus? :)

If love to be able to edit the adapter tables or whatever they are to work out what's going on.

I was somewhat able to replicate the issue on windows 8, it lets me choose secondary display, then it flicks to VGA out put.

If i plug a monitor in my VGA when the mac boots up, I can see a garbled version of the desktop. So it's like it detects my display, but outputs to another one instead.




Does the AppleIntelFrameBufferCapri.kext even look at the smbios? With the sandy bridge you could inject a platform Id and it would use the corresponding outputs. Seems like ivy bridge is all dependant on the I'd it's given and it makes it choices solely on that.



#16
eep357

eep357

    Triple Platinum

  • Supervisors
  • 2,527 posts
  • Gender:Male
  • Location:Dark Side of The Wall
  • Interests:things and stuff

Does the AppleIntelFrameBufferCapri.kext even look at the smbios? With the sandy bridge you could inject a platform Id and it would use the corresponding outputs. Seems like ivy bridge is all dependant on the I'd it's given and it makes it choices solely on that.

Not sure, GPU power management does tho and and only MabookPro 6,1 and 6,2 include any intel reference and it's for different igpu

what's also interesting to me is changing device ID in DSDT for MEI when this is what is in AppleIntelSNBGraphicsFB.kext
<key>AppleIntelMEIDriver</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleIntelSNBGraphicsFB</string>
<key>IOClass</key>
<string>AppleIntelMEIDriver</string>
<key>IOMatchCategory</key>
<string>IODefaultMatchCategory</string>
<key>IOPCIPrimaryMatch</key>
<string>0x1C3A8086</string>
<key>IOProbeScore</key>
<integer>80000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>IOSourceVersion</key>
<string>0.0.0.0.0</string>
</dict>


#17
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male
not quite sure what you mean by interesting?

i've tried injecting the 7 series device id in my DSDT,and that stops the SNB kext loading, i've also tried the method of editing the kextplist so that it matches my device id. same result. no change.

unedited, if the SNB kext gets loaded it doesnt blank,but then the framebuffer never loads either, i get the safe_boot version. no accelleration.

i even tried editing the SNB kext with all my ivy bridge idstuff,but the framebuffer driver just crashes the displayandi get crud all over the verbose boot log. i never expected it work that way but i had to try it out ;)

in fact, i'd go as far as to say,i've tried every documented HD4000 trick online.....and they all seem to be based around getting the kexts and accelleration to load and enabled, which isnt a problem for me, that part enables fine screen sharing shows the ram and driver loaded,the displaydetected, the transparent menu etc.

just cant see the thing first hand on the display ;)

i've tried various places for the DTGP method, depending on what guide i was reading at the time btw

#18
eep357

eep357

    Triple Platinum

  • Supervisors
  • 2,527 posts
  • Gender:Male
  • Location:Dark Side of The Wall
  • Interests:things and stuff
got any options in bios on that for vram amount, choosing primary gpu, etc. or is it more like laptop version. EFI string instead of DSDT?

ig-platform-id: 01660000, Stolen RAM for FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3
ig-platform-id: 01660001, Stolen RAM for FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3
ig-platform-id: 01660002, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 1, FBMem: 1
ig-platform-id: 01660003, Stolen RAM for FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2
ig-platform-id: 01660004, Stolen RAM for FB: 32MB, Pipes: 3, Ports: 1, FBMem: 1
ig-platform-id: 01660008, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3
ig-platform-id: 01660009, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3
ig-platform-id: 0166000A, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2
ig-platform-id: 0166000B, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2
ig-platform-id: 01620005, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2

where RAM matches your settings for VRAM and use gfxutil or EFIstudio

Also when your screensharing due to blank or garbled screen, go to display prefs and try changing the screen resolution to lowest possible and then back again and see if it has any effect

#19
rr7

rr7

    InsanelyMac Protégé

  • Members
  • PipPip
  • 80 posts
  • Gender:Male

got any options in bios on that for vram amount, choosing primary gpu, etc. or is it more like laptop version. EFI string instead of DSDT?

ig-platform-id: 01660000, Stolen RAM for FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3
ig-platform-id: 01660001, Stolen RAM for FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3
ig-platform-id: 01660002, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 1, FBMem: 1
ig-platform-id: 01660003, Stolen RAM for FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2
ig-platform-id: 01660004, Stolen RAM for FB: 32MB, Pipes: 3, Ports: 1, FBMem: 1
ig-platform-id: 01660008, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3
ig-platform-id: 01660009, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3
ig-platform-id: 0166000A, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2
ig-platform-id: 0166000B, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2
ig-platform-id: 01620005, Stolen RAM for FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2

where RAM matches your settings for VRAM and use gfxutil or EFIstudio

Also when your screensharing due to blank or garbled screen, go to display prefs and try changing the screen resolution to lowest possible and then back again and see if it has any effect


see this is where i get confused.

for clarity though, changing res back and forth doesn't fix it, switchresx so far hasnt fixed it,tried a few different timings...EDID matches that from windows powerstrip too. it all checks out.

i also tried efi string, exactly the same thing.

but, back to my confusion. if i try injecting id x01660003, i get the same result, EXCEPT i now how 4 framebuffers instead of 3, @0 has a 02 00 00 00 connector type, then there are 3 00 04 00 00 connector types (the diplayport ones) and once again the detected display is picked up on the last one, now @3 in this case. how does that tie up with the table you posted,according to that ID3 has Stolen RAM for FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2, and ID5 the desktop one,closest match, same result has 3 ports.i dont get what these numbers relate to :| if i try ID4, the display doesnt kick in at all, i just see the verbose text screen forever. maybe correct number of ports, but not the right type...?

its almost like....like a red herring, and that the issue may be elsewhere....rather than in the gfx drivers. but i have no way of knowing really.

now, bear in mind, this still happens in safe mode,so it takes HD4000 kext out of the equation...i think....but when i boot in normal mode i do have these messages....


Aug 22 00:11:22 localhost kernel[0]: Kext com.apple.driver.AppleHDAController - library kext com.apple.iokit.IOGraphicsFamily not found.
Aug 22 00:11:22 localhost kernel[0]: Can't load kext com.apple.driver.AppleHDAController - failed to resolve library dependencies.
Aug 22 00:11:22 localhost kernel[0]: Kext com.apple.driver.AppleHDAController failed to load (0xdc00800e).
Aug 22 00:11:22 localhost kernel[0]: Failed to load kext com.apple.driver.AppleHDAController (error 0xdc00800e).
Aug 22 00:11:22 localhost kernel[0]: Couldn't alloc class "AppleHDAController"
Aug 22 00:11:22 localhost kernel[0]: Kext com.apple.driver.AppleIntelHD4000Graphics - library kext com.apple.iokit.IOGraphicsFamily not found.
Aug 22 00:11:22 localhost kernel[0]: Can't load kext com.apple.driver.AppleIntelHD4000Graphics - failed to resolve library dependencies.
Aug 22 00:11:22 localhost kernel[0]: Kext com.apple.driver.AppleIntelHD4000Graphics failed to load (0xdc00800e).
Aug 22 00:11:22 localhost kernel[0]: Failed to load kext com.apple.driver.AppleIntelHD4000Graphics (error 0xdc00800e).
Aug 22 00:11:22 localhost kernel[0]: Couldn't alloc class "Gen7Accelerator"

but i can confirm the CI/QE seems to be working.

i also get my raw DSDT and fixed it in DSDT editor, rather that DSDTse, i then added just the gfx injection and DGTP method (to the top) and i've attached it here and the IOreg currently.

i dont have VRAM options, windows says its 32mb dedicated and some 1600mb dynamic or something. but the 32mb one seems certiain

Attached Files



#20
eep357

eep357

    Triple Platinum

  • Supervisors
  • 2,527 posts
  • Gender:Male
  • Location:Dark Side of The Wall
  • Interests:things and stuff
CI/QE thru screen sharing does not mean it's working :( Your kext loading failure would appear to be linked to a shared dependency IOGraphicsFamily. I think as far as ports, pipes and FBmem, there's some math involved in there somewhere so ports could be the number per pipe. IDK, wild ass guess. Try some of the 32mb ones, 4 in particular, but maybe A and B if needed.

Don't need any GPU to screen share.





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