Contribute
Register

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

[FIX] Intel HD4400/HD4600 Mobile on Yosemite

...
Additionally, do you think its possible to replace the SSD trim patch with FakePCIID injection (or equivalent for SATA devices)?
I need to see in IOReg how it shows, but if it looks at properties which can be faked it might be possible.

You would need a header for AppleAHCI/IOAHCIBlockStorageDevice, which I don't think Apple provides.
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Can this new solution be expanded for hd4200 by any chance?
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Can this new solution be expanded for hd4200 by any chance?

Not really. HD4200 poses a different problem. It is GT1 and so far, it appears GT1 is not supported by the Yosemite kexts.

You may have better luck with Mavericks.
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Can this new solution be expanded for hd4200 by any chance?

Whats the vendor / device id for your device?
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Thought I'd give it a shot RehabMan LOL. My ID is 0A1E:8086. Although I do believe 0C06:8086 and 0406:8086 are other GT1 IDs that were present in the Mavericks kext but not Yosemite. Could use FakeID instead of 0A1E if these exist within the kext beyond the primary matches.
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Thought I'd give it a shot RehabMan LOL. My ID is 0A1E:8086. Although I do believe 0C06:8086 and 0406:8086 are other GT1 IDs that were present in the Mavericks kext but not Yosemite. Could use FakeID instead of 0A1E if these exist within the kext beyond the primary matches.

You should certainly try FakePCIID... It is a more brute force and there is less chance for "pilot error" (as compared to applying kext patches).

But I think you may still have problems due to missing GT1 support in Yosemite.

You should also give Mavericks a try (using FakePCIID).
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

You would need a header for AppleAHCI/IOAHCIBlockStorageDevice, which I don't think Apple provides.

After some perusal, IOAHCIBlockStorageDevice checks if the SATA device is "Solid State" and if the Model string starts with "APPLE SSD". (Patch nulls out this string, making it 0 in length, thus always true).

It checks this directly from the device, so injecting the Model name in IORegistry does not have the desired effect.

Maybe modifying the IOName of the attached device under IOAHCIBlockStorageDevice does, thats the last thing to try.
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

My ID is 0A1E:8086. Although I do believe 0C06:8086 and 0406:8086 are other GT1 IDs that were present in the Mavericks kext but not Yosemite.

Double checked this against the IGIL plugin dylib also.

This is the current state of Intel HD graphic devices in OS X:

Find the latest table in the opening post.

<snip>

Try the following:



  • If not:
    • In Clover inject a fake-id of 0x01528086 and a matching ig-platform-id.
    • Configure FakePCIID with the following personality:
      Code:
      <key>IOKitPersonalities</key>
      <dict>
          <key>HD4200 Mobile</key>
          <dict>
              <key>CFBundleIdentifier</key>
              <string>org.rehabman.driver.FakePCIID</string>
              <key>IOClass</key>
              <string>FakePCIID</string>
              <key>IOMatchCategory</key>
              <string>FakePCIID</string>
              <key>IOPCIClassMatch</key>
              <string>0x03000000&amp;0xff000000</string>
              <key>IOPCIPrimaryMatch</key>
              <string>0x01528086</string>
              <key>IOProviderClass</key>
              <string>IOPCIDevice</string>
          </dict>
      </dict>
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

Double checked this against the IGIL plugin dylib also.

This is the current state of Intel HD graphic devices in OS X:

Device ID Model Name Framebuffer Graphics Kext OpenCL
Ivybridge
8086:0152 Desktop GT1 Intel HD4000 Capri HD4000 OOB
8086:0156 Mobile GT1 Intel HD4000 Capri HD4000 OOB
8086:0162 Desktop GT2 Intel HD4000 Capri
HD4000​
OOB
8086:0166 Mobile GT2 Intel HD4000 Capri
HD4000​
OOB
Haswell
8086:0a16 ULT Mobile GT2 Intel HD4400 Azul HD5000 8086:0412
8086:0412 Desktop GT2 Intel HD4600 Azul HD5000 OOB
8086:0416 Mobile GT2 Intel HD4600 8086:0412 8086:0412 8086:0412
8086:0a26 ULT Mobile GT3 Intel HD5000 Azul HD5000 OOB
8086:0a2e ULT Mobile GT2 Intel Iris Pro 5100 Azul HD5000 OOB
8086:0d22 CRW Desktop GT3 Intel Iris Pro 5200 Azul HD5000 OOB
8086:0d26 CRW Mobile GT3 Intel Iris Pro 5200 Azul HD5000 OOB


Live / Updated version at https://gist.github.com/robvanoostenrijk/4c957f9ea6deb857374a.

Note no Haswell GT1...

Try the following:



Framebuffer is not a problem. We had the framebuffer loading on his computer earlier.


  • If not:
    • In Clover inject a fake-id of 0x01528086 and a matching ig-platform-id.
    • Configure FakePCIID with the following personality:
      Code:
      <key>IOKitPersonalities</key>
      <dict>
          <key>HD4200 Mobile</key>
          <dict>
              <key>CFBundleIdentifier</key>
              <string>org.rehabman.driver.FakePCIID</string>
              <key>IOClass</key>
              <string>FakePCIID</string>
              <key>IOMatchCategory</key>
              <string>FakePCIID</string>
              <key>IOPCIClassMatch</key>
              <string>0x03000000&amp;0xff000000</string>
              <key>IOPCIPrimaryMatch</key>
              <string>0x01528086</string>
              <key>IOProviderClass</key>
              <string>IOPCIDevice</string>
          </dict>
      </dict>

Interesting idea using Ivy HD4000 with Haswell...

Note: You will also need to setup a FakeID for IMEI (need to load the IMEI driver from Capri, not Azul).

Note2: You will also need to inject a proper ig-platform-id for HD4000 (framebuffer ids for Azul not expected to work with Capri).
 
[FIX] Intel HD4400/HD4600 Mobile on Yosemite

If AppleIntelFramebufferAzul and AppleIntelHD5000Graphics load with FakePCIID injection, then logically the OpenCL should also work.
 
Back
Top