Jump to content

[GUIDE] 1st Generation Intel HD Graphics QE/CI


GhostRaider
 Share

2,093 posts in this topic

Recommended Posts

@GhostRaider

@2bad0

 

I found the problem with the patcher. I decompiled part of code and verteks added a check on the filesize. If it's different from 131.384KB the error appears. The 10.9 FB has 137.536KB filesize.

It must be 131.384KB to execute the patches.

 

If you want to bypass the patcher, you can compare the framebuffer (e.g. original, singlelink x1 lvds+vga) and manually edit the 10.9 fb with the right values. WARNING: I checked. Some values changed, and you need to pay more attention.

 

For the OpenGL problem.. well.. verteks said: "the other AppleIntelHDGraphics* kexts provide hardware acceleration (QE/CI/OpenGL/Video playback).". We should edit the kext AppleIntelHDGraphicsGLDriver.bundle I think.

 

Not sure if Verteks will be back to fix the patcher again, but since you decompiled it, what if you update the file size and compile it back again. Verteks did explain what values the patcher patches in his readme file.

 

I doubt Apple would spend a lot of time changing our framebuffer kext especially to a 2010 model. Unless they're trying to block hackintoshes from utilizing the kexts. I see that Intel HD Graphics 4000 users are having some issues as well.

 

Also, can sombody upload the 10.9 DP Intel HD Graphics kexts? They might be useful for later discoveries.

Link to comment
Share on other sites

Not sure if Verteks will be back to fix the patcher again, but since you decompiled it, what if you update the file size and compile it back again. Verteks did explain what values the patcher patches in his readme file.

 

I doubt Apple would spend a lot of time changing our framebuffer kext especially to a 2010 model. Unless they're trying to block hackintoshes from utilizing the kexts. I see that Intel HD Graphics 4000 users are having some issues as well.

 

Also, can sombody upload the 10.9 DP Intel HD Graphics kexts? They might be useful for later discoveries.

This is the source I decompiled. And the 10.9 DP1 kexts.

 

@GhostRaider: use postimage instead of photobucket :)

hdgraphics_patcher.zip

Intel HD Graphics 10.9 DP1.zip

Link to comment
Share on other sites

I found all the hex edits.

Download the document. The first hex line is the line you have to find and the second one is the line you have to replace.

The string: B9 00 00 00 09 C7 85 60 FF FF doesn't exist in 10.9 FB. There are other similar ones. I don't know if it's important or not.

HD PATCHES.rtf

  • Like 1
Link to comment
Share on other sites

I found all the hex edits.

Download the document. The first hex line is the line you have to find and the second one is the line you have to replace.

The string: B9 00 00 00 09 C7 85 60 FF FF doesn't exist in 10.9 FB. There are other similar ones. I don't know if it's important or not.

anyway, do you have qe in 10.9? cause I've ci when I start without FB :) but I'm still patching FB. Turns out that it's a bit more complicated than I expected :D

Link to comment
Share on other sites

anyway, do you have qe in 10.9? cause I've ci when I start without FB :) but I'm still patching FB. Turns out that it's a bit more complicated than I expected :D

I will install it tomorrow. But I need the MBR patch...  :(

Link to comment
Share on other sites

Hi, thank you for your guide.

 

The machine is an Asus UL20FT. I have confirmed that the connection is SingleLink LVDS width 1 (very standard).

 

Without the kexts I get native resolution by booting from Clover.

 

I use Natit.kext because OSX won't load the extensions by itself. Using the Single Link LCD Alternate framebuffer from OP, I get a garbled/distorted unusable screen. I can log in, move the mouse, etc. Here's a picture:

<removed>

I got an EDID dump from Linux and tried injecting it through Clover, but it does nothing. I tried patching the framebuffer myslef and tried all possible output configurations. Only Single Link LVDS gives any display.

 

On the top of that, I cannot enable CI when not using the framebuffer. I have no idea what I am doing wrong.

 

Any help appreciated.

 

Okay, here's some update, because I think it's relevant. I clean installed 10.8.4 and downloaded the relevant kexts. Using Chameleon makes no difference to Clover, although I need to load the Resolution.dylib module to get native resolution. I seem to have similar problems to @real_didi, namely:

  • In Linux I see that the display is LVDS SingleLink width 1
  • The EDID which is passed to the framebuffer is identical as in the Linux dump

Despite this:

  • All of the framebuffers (alternate or alternate 2), regardless of link width, result in a black screen with backlight WITH the acceleration kexts and a grey screen WITHOUT the acceleration kexts. With acceleration kexts the screen is black and it makes chirping sounds, while dmesg shows repeated messages:
    • stampWait: Overflowed checking for stamp 0x41 on MAIN ring: called from
       timestamp = 0x0031
       ****  Debug info for apparent hang in MAIN graphics engine  ****
       ring head    = 0x0000135c, wrap count = 0x 0
       ring tail    = 0x000019c8 ring control = 0x00003001   enabled, auto report disabled, not waiting, semaphore not waiting, length = 0x004 4KB pages
  • When I press the Fn+F8 combination (force detect displays), my screen shows up garbled and the dmesg messages stop. I can login through VNC and confirm that QE/CI is working, the EDID is okay and Display Configuration even shows the correct factory ID of the monitor. Connecting a VGA display just makes the same garbled screen appear on both monitors.

My question is HOW can I check with 100% certainty if I have an LVDS display and the link width? According to intel_reg_dumper in Linux, it's clearly LVDS single link lw 1, but the symptoms described in the guide indicate that it does behave like an eDP display.

 

Regards and thanks for help.

Link to comment
Share on other sites

Dump in (Ubuntu) Linux should show the correct info about your screen.

 

To get a proper EDID, I used SwitchResX, by first running without patches (Just GE=Y). It's also important to have a prober patched DSDT.aml file. Otherwise it doesn't get any LCD-out.

 

Although where're not running the same laptop, I also have an ASUS notebook. Do you have generated a DSDT?

Link to comment
Share on other sites

Okay, here's some update, because I think it's relevant. I clean installed 10.8.4 and downloaded the relevant kexts. Using Chameleon makes no difference to Clover, although I need to load the Resolution.dylib module to get native resolution. I seem to have similar problems to @real_didi, namely:

  • In Linux I see that the display is LVDS SingleLink width 1
  • The EDID which is passed to the framebuffer is identical as in the Linux dump

Despite this:

  • All of the framebuffers (alternate or alternate 2), regardless of link width, result in a black screen with backlight WITH the acceleration kexts and a grey screen WITHOUT the acceleration kexts. With acceleration kexts the screen is black and it makes chirping sounds, while dmesg shows repeated messages:
    • stampWait: Overflowed checking for stamp 0x41 on MAIN ring: called from
       timestamp = 0x0031
       ****  Debug info for apparent hang in MAIN graphics engine  ****
       ring head    = 0x0000135c, wrap count = 0x 0
       ring tail    = 0x000019c8 ring control = 0x00003001   enabled, auto report disabled, not waiting, semaphore not waiting, length = 0x004 4KB pages
  • When I press the Fn+F8 combination (force detect displays), my screen shows up garbled and the dmesg messages stop. I can login through VNC and confirm that QE/CI is working, the EDID is okay and Display Configuration even shows the correct factory ID of the monitor. Connecting a VGA display just makes the same garbled screen appear on both monitors.

My question is HOW can I check with 100% certainty if I have an LVDS display and the link width? According to intel_reg_dumper in Linux, it's clearly LVDS single link lw 1, but the symptoms described in the guide indicate that it does behave like an eDP display.

 

Regards and thanks for help.

 

Maybe you need to need to use a DualLink framebuffer? Is your native screen resolution higher than 1366x768?

Link to comment
Share on other sites

I found all the hex edits.

Download the document. The first hex line is the line you have to find and the second one is the line you have to replace.

The string: B9 00 00 00 09 C7 85 60 FF FF doesn't exist in 10.9 FB. There are other similar ones. I don't know if it's important or not.

If You have all the edits,make an attempt to patch the patcher.

I Just used the old frame-buffer as i was feeling to lazy to do work.

 

I'm willing to assist if you take up any project and need help.

Link to comment
Share on other sites

If You have all the edits,make an attempt to patch the patcher.

I Just used the old frame-buffer as i was feeling to lazy to do work.

 

I'm willing to assist if you take up any project and need help.

I'm making a new patcher (with GUI) because the vertek's patcher doesn't patch the values by find and replace but by offsets and if you have a file with more hex values between two offsets the patch goes wrong. I hope you understood.

Link to comment
Share on other sites

I'm making a new patcher (with GUI) because the vertek's patcher doesn't patch the values by find and replace but by offsets and if you have a file with more hex values between two offsets the patch goes wrong. I hope you understood.

Yup i understand,if it did find and replace would be useless,maybe would be too file specific.Better being dynamic.

 

See you use ida pro, have you tried hopper as well? not for this project in particular just in general.

Link to comment
Share on other sites

Yup i understand,if it did find and replace would be useless,maybe would be too file specific.Better being dynamic.

 

See you use ida pro, have you tried hopper as well? not for this project in particular just in general.

I tried it but it's very difficult to understand where is the issue and how to fix it. You can try and see if you manage to fix it.

Link to comment
Share on other sites

I have seen a transparent menu bar in Mavericks 10.9,and I can see the preview of the slideshow using the five kexts which is already in S/L/E.But the resolution isn't correct.Does it mean that the QE/CI is working? :blush: If no,I am looking forward to the patch for 10.9.

Anyway,thank you for all you have done.It really works in 10.8.4! :)

By the way,the original patch doesn't work on 10.9.--"Invalid kext size"

Link to comment
Share on other sites

I have seen a transparent menu bar in Mavericks 10.9,and I can see the preview of the slideshow using the five kexts which is already in S/L/E.But the resolution isn't correct.Does it mean that the QE/CI is working? :blush: If no,I am looking forward to the patch for 10.9.

Anyway,thank you for all you have done.It really works in 10.8.4! :)

By the way,the original patch doesn't work on 10.9.--"Invalid kext size"

Thank you for clarifying that. eDP users will be happy to know that Core Image works out of the box. Apple should just add support for our computers while they're at it. Once the framebuffer patch for 10.9 is perfected, we will need to experiement with HDMI and VGA as well. Sadly who knows which binary values enable these as they don't seem to work.

  • Like 2
Link to comment
Share on other sites

I'm so glad to tell you that the QE/CI works on my Mavericks(10.9) with the Framebuffer in 10.8.4 and the other AppleIntelHDGraphics*.kext in 10.9!I'm so excited!!

I think maybe we don't need to patch the new FB in 10.9

Link to comment
Share on other sites

I'm so glad to tell you that the QE/CI works on my Mavericks(10.9) with the Framebuffer in 10.8.4 and the other AppleIntelHDGraphics*.kext in 10.9!I'm so excited!!

I think maybe we don't need to patch the new FB in 10.9

 

Thanks for confirming that :) Well that was Plan B in case we can't patch the official 10.9 framebuffer kext but either way as long as acceleration and native resolution works, that's all that really matters. B)

Link to comment
Share on other sites

Well looks like 10.8.4 framebuffer for now is the last one,the patch is going to work on.Has file size issues on 10.8.5 as well.

 

I wouldn't count on the 10.8.4 buffer on mavericks however because once in a blue moon my graphics dies.Lets for now hope this is just an issue with this being a beta OS.or this issue is just for me only.

 

Pic below

 

post-532802-0-73218700-1372082064_thumb.png

Link to comment
Share on other sites

 Share

×
×
  • Create New...