Contribute
Register

[Fix] Intel HD4200/HD4400/HD4600 Mobile on Yosemite

[FIX] Intel HD4400/HD4600 Mobile on Yosemite

After having made the changes to my Clover config, I'm stuck unable to boot, with the system restarting immediately upon reaching the normal "power management may be incompatible or unsupported" message, saying "hmm... mismatch sizes: 3100 vs 20".

This is obviously where the graphics start to load. Either I'm doing something incorrectly, or this fix doesn't work with my chipset. I'm still at the state where OS X only recognizes my card as having 7MB of VRAM.

Double check your patch entries. Make sure your config.plist is not damaged (load it in a plist editor).
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Double check your patch entries. Make sure your config.plist is not damaged (load it in a plist editor).

As far as I can tell, the patches have been correctly entered into the config and the plist is properly opened by PlistEditPro. I can boot (without proper graphics) if I navigate through the Clover option menus and turn off Intel graphics injection.
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

As far as I can tell, the patches have been correctly entered into the config and the plist is properly opened by PlistEditPro. I can boot (without proper graphics) if I navigate through the Clover option menus and turn off Intel graphics injection.

You probably should post more information:
- actual config.plist you're using
- photo that demonstrates the issue
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

You probably should post more information:
- actual config.plist you're using
- photo that demonstrates the issue

My apologies. Please excuse the poor image quality, as this was taken from a video (the message appears for a fraction of a second, hence the necessity of taking video).


View attachment config.plist.zip Screen Shot 2014-10-26 at 9.53.57 PM.jpg
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Remove all HD4600 patches from clover and restore the original libCLVMIGILPlugin.dylib.


Only inject the HD4600 device ID of 0x04128086, try and boot then.
It should boot properly into the desktop indicating Intel HD4600, but no QE/CI.

Now enable QE/CI by applying the Clover kext patches to AppleIntelFrameBufferAzul and AppleIntelHD5000Graphics.
Reboot again and you should have full QE/CI.

Lastly apply the binary patch to libCLVMIGILPlugin.dylib and reboot again.
Now everything should still be working and crashes related to OpenCL/OpenGL gone.

By doing it in separate steps as described you will at least know at what step it goes wrong for you.
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Just tried that, it works perfectly and all my issues with Preview and Some screen savers (ex. Shell & Word of the Day) all working fine now.

Thanks
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

By doing it in separate steps as described you will at least know at what step it goes wrong for you.

Yep, you were right. There was something else in the Clover config that when used with the graphics fixes, would cause OS X not to boot. Now I have graphics fully working!

Thank you
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Since Yosemite HD4400 mobile (8086:0a16) & HD4600 mobile support (8086:0416) has been removed from the AppleIntelHD5000* drivers.

However the HD4600 desktop (8086:0412) still remains.

Getting initial QE/CI to work requires some patches with Clover, for which credits go to Piker Alpha.

Clover configuration is as follows:
Code:
<dict>
  <key>Comment</key>
  <string>QECI HD4600 (GT2 Mobile to Desktop)</string>
  <key>Find</key>
  <data>PYaAEgR0EOtd</data>
  <key>Name</key>
  <string>AppleIntelHD5000Graphics</string>
  <key>Replace</key>
  <data>PYaAFgR0EOtd</data>
</dict>
<dict>
  <key>Comment</key>
  <string>QECI HD4600 Azul (GT2 Mobile to Desktop)</string>
  <key>Find</key>
  <data>PYaAEgQ=</data>
  <key>Name</key>
  <string>AppleIntelFramebufferAzul</string>
  <key>Replace</key>
  <data>PYaAFgQ=</data>
</dict>

Additionally use Clover to insert a fake Intel GFX id of 0x4128086
Code:
<key>FakeID</key>
<dict>
  <key>IntelGFX</key>
  <string>0x04128086</string>
  ....

The same can be done through DSDT also:
Code:
   Method (_DSM, 4, NotSerialized)
   {
       If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
       Return (Package()
       {
           "AAPL,ig-platform-id", Buffer() { 0x08, 0x00, 0x2e, 0x0a }, // Update this to your platform id
           "model", Buffer() { "Intel HD 4600" },
           "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 },
           "hda-gfx", Buffer() { "onboard-1" },
       })
    }

This will boot up Yosemite with QE/CI.

However additional patching is needed to fully enable OpenCL / OpenGL without any problems.
If not applied you will experience problems in Preview, Photo Booth, iMessage Video Settings, Profile Picture Manipulation, Airmail 2, Pathfinder...

For Intel HD4400 (8086:0a16) execute the following command (Credits vbo):
Code:
# Patch libCLVMIGILPlugin for HD4400 OpenCL / OpenGL
sudo perl -i.bak -pe 's|([\xFF\xFC\x3D])\x86\x80\x12\x04|$1[COLOR=#000000]\x86\x80\x16\x0A[/COLOR]|sg' /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMIGILPlugin.dylib

sudo codesign -f -s - /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMIGILPlugin.dylib

For Intel HD4600 (8086:0416) execute the following command:
Code:
# Patch libCLVMIGILPlugin for HD4600 OpenCL / OpenGL
sudo perl -i.bak -pe 's|([\xFF\xFC\x3D])\x86\x80\x12\x04|$1\x86\x80\x16\x04|sg' /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMIGILPlugin.dylib

sudo codesign -f -s - /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMIGILPlugin.dylib


The perl command will automatically create a backup under libCLVMIGILPlugin.dylib.bak
Note when patching make sure that you are booting with kext-dev-mode=1 to ensure unsigned kexts will load properly.

I tryied with DSDT and chameleon but no QE/CI: the video card is recognized but with only 4 MB instead of 1024 :/
 
Back
Top