Guys, I think the AppleIntelHDGraphicsFB Kext is not the reason why we can't get get custom resolution. You see, this kext basically sets the refresh rate.
If you've noticed, people have managed to get AppleIntelHDGraphicsFB Kext loaded on their Intel HD Graphics (Arrandale), however they can only see their desktop by using ScreenSharing and if you've noticed, there is no distortion while using ScreenSharing and they also have custom resolution.
AppleIntelHDGraphicsFB Kext = Refresh Rate NOT CUSTOM RESOLUTION
These kexts below WILL NOT work unless AppleIntelHDGraphicsFB is loaded:
So what does this all mean?
It means that AppleIntelHDGraphicsFB is a DEPENDENT kext, meaning it gets its "instructions" from another kext. The funny part is, it has NOTHING to do with the IntelHDGraphics Kexts.
So where does AppleIntelHDGraphicsFB get its instructions?
Lets open up the AppleIntelHDGraphicsFB Info.plist. Look for this area inside the Info.plist.
<key>OSBundleLibraries</key> <dict> <key>com.apple.iokit.IOACPIFamily</key> <string>1.2</string> <key>com.apple.iokit.IOGraphicsFamily</key> <string>1.3</string> <key>com.apple.iokit.IOPCIFamily</key> <string>1.1</string> <key>com.apple.kpi.bsd</key> <string>8.0.0</string> <key>com.apple.kpi.iokit</key> <string>8.0.0</string> <key>com.apple.kpi.libkern</key> <string>8.0.0</string> <key>com.apple.kpi.mach</key> <string>8.0.0</string> <key>com.apple.kpi.unsupported</key> <string>8.0.0</string> </dict>
Okay now if you delete this specific key below, and you install AppleIntelHDGraphicsFB like this, it will not load at all.
So just by deleting this little key, the whole kext is useless?
That is correct.
In other words, the AppleIntelHDGraphicsFB has its own instructions, but to which monitor will it work on is decided by IOGraphicsFamily Kext which explains why you can only see it in Screensharing.
We can now forgive AppleIntelHDGraphicsFB Kext
Now we must attack IOGraphicsFamily Kext