18 June 2010
Random Hackintosh Thoughts : /System/Library/Extensions/
Of course, the stock or more popularly called "Vanilla" kexts installed by default by a Mac OS X Retail Install Disc, do not include the special kexts that your PC's hardware needs to work. Now in the early days of OSx86 (ok, maybe not so early since it's hardly 2 years ago from now), the main thing were custom distros like iDeneb, Kalyway, etc., and special kexts like AppleDecrypt.kext, Brcm4315Injector.kext, etc., used to be installed directly to /System/Library/Extensions/ folder
While this is good and works, take for example the AppleIntelGMA950.kext customized to support your graphics was overwritten by an OS update, say 10.6.4 - the customizations are not in the new AppleIntelGMA950.kext installed by the update.
Ok, so how about naming these custom-built hackintosh kexts in way that they don't coincide with the stock ones to avoid over-writing? That does also work. One good example are the Voodoo kexts - VoodooHDA.kext, VoodooPS2Controller.kext etc.
But then again, we do have such a thing as a "kext conflict"; one kext may not bear to live with another and thus cause a Kernel Panic which has become, at one point or another, our BFF. Or perhaps the newer kernel itself is not compatible with the kext; example are previous SleepEnabler.
The only solution to that would be to take out the kexts and get on with life. However, you cannot boot our OS X installation to delete those problematic kexts; they're installed in /System/Library/Extensions are loaded whether you like it or not. We can perhaps extract the physical hard drive and connect it to a working Mac externally via USB and get at those kexts from there - but that's not a luxury that most have for a troubleshooting option.
Enter a newer era of hackintosh/OSx86: "Extra" folder in the main "/" directory. Where we put all those non-vanilla kexts in isolation so that the main OS X system remains untouched which can still be booted using Boot-132 discs containing a set of "working kexts".
And then people got even more obsessed by this Vanilla system and discovered that the installation can be made even "purer" by moving the "Extra" folder with all those OSx86 kexts, still in the same physical hard drive, but in a different partition - the EFI partition. This is hidden and by default not even mounted and so the possibility of OS updates reaching it is practically zilch. A user must consciously mount EFI before he/she can gain access to the precious files in there that make your hackintosh work - it's something, at least in the beginning, done only via Terminal/command line which can be intimidating. He/she must have know what he/she was doing.
That said, EFI boot method, still is NOT totally immune to updates. The rule of the thumb is to determine beforehand which of your "working kexts" can possibly cause trouble with the update in question. The action plan therefore is to update these set of kexts - delete or add - before restarting the machine after the applying an OS point update.
And so how do you know which kexts will cause trouble and which new kexts to update EFI with? Enter Hackintosh/OSx86 addicts. It can be because they don't have better things to do or they probably just don't have a life at all (*ahem*) but to tinker and so are very much willing to make their systems guinea pigs. And this is where an active community of people who have the same hardware as yours or close enough to yours (and preferably are Hackintosh/OSx86 addicts) is vital. If not, you're still not as hopelessly out of luck as you think you are cause hey, you can always learn. Being a Hackintosh noob is not bad at all - it's a start to wonderful OSx86 things and more.
So what have I been smoking that incited this imaginary dialogue? All that in a post to come.