How to build a HackinTosh with Mountain Lion (10.8), the latest version of MacOS X.
During this very hot summer (about 37°C outside), I spent about 20 hours in an entire weekend to install MacOS 10.8 Mountain Lion on my Asus Sabertooth P67. Really, there's no best time for that… And because I love you my readers, I wrote this little GUIDE in the hope you'll find useful information about it.
This article will be updated frequently. So come back here from time to time or follow me on twitter!
What’s not working:
- Nothing
Updates: (subscribe to my twitter to get notified)
- 08/20/2012 – ExtraThi updated to v1.1! (ExtraThi v1.0 was broken)
- 08/20/2012 – Added USB 3.0 support explanations in STEP #3.
- 08/23/2012 – Updated information relative to Extensions.mkext creation.
- 08/23/2012 – Original ExtraThi_v1.1 renamed to ExtraThi_v1.1_10.8.
- 08/23/2012 – 10.8.1 update procedure with ExtraThi_v1.1_10.8.1.
- 08/23/2012 – Chameleon 2.1 r2048 replaced by r2050.
- 08/24/2012 – 10.8.1 update procedure [ TESTING… ] -> [ GOOD ]
- 09/22/2012 – Fixed a mistake in AppleGraphicsPowerManagement.kext plist modification (IOCFUnserialize: syntax error near line 2995). Please download the new kext or apply the new modifications!
- 09/22/2012 – Chameleon 2.1 r2050 replaced by r2060.
- 09/22/2012 – 10.8.2 update procedure [ GOOD ]
- 01/11/2013 – Minor changes.
- 01/11/2013 – USB 3.0 working, added a note about it for SaberTooth P67 users.
- 03/18/2013 – Chameleon 2.1 r2060 replaced by Chameleon 2.2 r2187.
- 03/18/2013 – iMessage fix with FileNVRAM from xZeneu LLC.
- 03/18/2013 – New version of AGPM.kext for MacOS X 10.8.3.
- 03/18/2013 – 10.8.3 update procedure [ TESTING… ] -> [ GOOD ]
- 03/18/2013 – Minor changes.
- 03/29/2013 – Fixed a mistake in AppleGraphicsPowerManagement.kext plist modification for 10.8.3. Please download the new kext!
- 05/04/2013 – New Audio kext instructions, which fix “With DSDT” Audio kext issues under 10.8.3. (MultiBeast has been updated with new audio kexts: Updated toleda’s patched AppleHDAs to the 10.8.3 versions)
- 05/04/2013 – USB 3.0 support is now UNIVERSAL! New USB 3.0 Instructions. (Make sure to delete any CalDigit*.kext and PXHCD.kext drivers from your /System/Library/Extensions folder). Fix USB 3.0 not properly working under 10.8.3. You should now use RehabMan’s branch of Zenith432’s GenericUSBXHCI.kext to enable USB 3.0.
- 05/04/2013 – ExtraThi updated to v1.2! (New Preboot image with new additional and updated kexts. Thanks to Artistus!)
- 06/07/2013 – 10.8.4 update procedure [ GOOD ]
- 06/07/2013 – Chameleon 2.2 r2187 replaced by Chameleon 2.2 r2189.
- 09/21/2013 – Chameleon 2.2 r2189 replaced by Chameleon 2.2 r2263.
- 09/21/2013 – ExtraThi updated to v1.3! (New fakesmc.kext + plugins 5.3.832 from kozlek)
- 09/21/2013 – 10.8.5 update procedure [ GOOD ]
- 11/04/2013 – Chameleon 2.2 r2263 replaced by Chameleon 2.2 r2266.
- 11/04/2013 – AppleIntelE1000e.kext, you should roll back to v2.4.14.
- 11/04/2013 – 10.8.5 Supplemental Update 1.0 PROCEDURE [ GOOD ]
- 16/03/2014 – SAPPHIRE ATI Radeon HD6870 multiple output (4 PORT dvi/hdmi) fix.
TODO:
Better AGPM.kext for NVIDIA GTX 480 to avoid lags of 1st speedstep layer.(in fact the plist modification was broken due to a syntax error… so the kext was not loaded! It is now fixed!)Extra checks regarding STEP #3 additional kexts.- Better patch for AppleIntelCPUPowerManagement (boot kext mode) so it can be added to Extensions.mkext and will not require to be removed from /S/L/E.
- Test betstu settings for AGPM.kext GTX480 iMac12,2 10.8
Before we start…
This is not a universal/generic GUIDE. All tips, files and patches provided in this article are designed to work for my own computer specs. In the meantime, I think people with a similar configuration will find this guide interesting and useful to achieve their installation of MacOS X Mountain Lion.
This guide was not written for beginners, also if you have any questions, I recommend you to ask on various HackinTosh forum communities before, such as tonymacx86 or InsanelyMac.
About my specs
Let’s see what we have here…
- CPU: Intel – Processeur – Intel Core i7 2600K / 3,4 GHz – LGA1155 Socket – L3 8 Mo
- RAM: G.Skill Kit Extreme3 4 x 4 Go PC15000 Sniper CAS 9
- MotherBoard: ASUS SABERTOOTH P67 (rev. B3) – Socket 1155 – Chipset P67 – ATX – BIOS VERSION 2302 official*
- GPU: SAPPHIRE ATI Radeon HD6870 Toxic | 1024 Mo DDR5 – PCI Express – DUAL DVI / HDMI / mini DP
- GPU: ASUS ENGTX480/2DI/1536MD5 GeForce GTX 480 (Fermi) 1536MB 384-bit GDDR5 PCI Express 2.0 x16 HDCP Ready SLI Support Video Card
- Power Supply: OCZ Z Series Gold OCZZ1000M 1000W
- CPU Cooler: COOLER MASTER HYPER 212 PLUS
- Case: Lian Li PC-K63
* Some people have reported issues with the SATA controller for the latest 3302 version (link). Do not upgrade your BIOS unless you know what you’re doing. By the way, it is possible to patch your BIOS to avoid some issues with MacOS, such as AppleIntelCPUPowerManagement problems related to Intel SpeedStep.
What will you need?
It's always best to already have a working version of MacOS installed on your HackinTosh. Although it's possible to achieve all steps of this GUIDE with an external MacOS system, it will be more difficult. But before anything else, I recommend you to get the following stuff:
- 1 x USB/SD card of 8GB minimum.
- 1 x Original Mountain Lion Install DVD (InstallESD.dmg, md5 checksum = 8b4869920cd740414fe6b7e3f0b1be3e).
- 8GB of available space minimum to install Mountain Lion.
- 1 x Human Brain.
- 30 minutes up to 3 hours of your time.
HackinTosh common issues… Warning!
In case some of you might think that dealing with a HackinTosh is quite easy, here is a list of common issues you can face while attempting to build your HackinTosh. These issues CAN ALSO resurface after every OS X update!
- Speedstep not working, which causes Kernel Panic at startup (related to AppleIntelCPUPowerManagement.kext).
- SATA controller not working properly.
- Some ACPI tables not recognized (in this case you have to deal with DSDT or/and SSDT).
- Graphics cards not natively supported can lead to Kernel Panics, bad power management (altered performances), black/blank screens, freezes, video output not recognized (DVI/HMDI/VGA), etc.
- USB not recognized, including both USB 2.0 and 3.0.
- Network cards not working or stuck at a certain speed.
- Audio output/input not working.
- Sleep/Wake/Reboot not working.
Most of these issues can be solved by patching Apple drivers, or installing custom drivers. Some of them, such as DSDT and SSDT tables require advanced knowledge and hacks.
STEP 1 – Creating USB/SD Mountain Lion Installation Drive
For this part, you need to force Finder to show all hidden files (link).
- Right Click on "Install OS X Mountain Lion" -> Show Package Contents.
- Contents -> Shared Support -> InstallESD.dmg.
- Open InstallESD.dmg (this will popup the “Mac OS X Install ESD” volume).
- In "Mac OS X Install ESD" volume open **BaseSystem.dmg **(this will popup the "Mac OS X Base System" volume).
- Open the Disk Utility application.
Now we will create our USB/SD Mountain Lion installation DVD volume.
- Partition your USB/SD device to match two partition, GUID Partition Scheme, both must be Mac OS Extended (Journaled).
- The first partition must be around 500MB, and the second one the remaining free space.
- Call the first partition CHAMELEON (500MB), and the second one INSTALLDVD (more than 6GB).
- Restore "Mac OS X Base System" volume (source) to INSTALLDVD (destination).
- Once done, your INSTALLDVD partition should now popup under the name Mac OS X Base System.
- Replace "Mac OS X Base System"/System/Installation/Packages (must be removed) by "Mac OS X Install ESD"/Packages (copy/paste)*
- "Mac OS X Base System" is now your installation DVD volume.
* A more detailed and illustrated guide about this process can be found on this link.
At the end, this is how your USB/SD drive should look like:
[![](GHOST_URL/img/mountain-lion-1om/img/mountain-lion-10-8-usbsd-installation-drive-partitions.png)
Now we have to create the bootloader:
- Download Chameleon 2.2 r2266 or newer version (from source or package).
- Install Chameleon on your CHAMELEON volume (default install, no extra options checked).
- Open CHAMELEON, unzip and copy the following Extra folder into it:
In this Extra folder you will find:
- DSDT.aml/dsl files are specific to ASUS Sabertooth P67 AND Intel Core i7-2600k! If you have a different configuration you can create and patch your own DSDT, or you can find pre-patched DSDT in this database.
- SSDT patches for CPU Speedstep have been directly integrated to DSDT (ASUS motherboards does not deal with SSDT for that). If you have a different configuration other than ASUS Sabertooth P67 AND Intel Core i7-2600k, YOU MUST follow these instructions to create your own SSDT or find some help in this forum. If you do not create any SSDT file or patch your DSDT file (for your custom configuration) you will be stuck at some CPU speed (16x for example).
- Preboot.dmg contains all generic kexts you need to boot, including patched AppleIntelCPUPowerManagement.kext. It also contains the Darwin kernel (12.0.0) for MacOS X 10.8. This Preboot.dmg image should be generic but is dependent of the OS X version.
- Other files are generic and related to Chameleon configuration.
Once done, eject your drive and boot your computer with it. Chameleon should display a list of bootable drives, you must select "Mac OS X Base System".
STEP 2 – Install MacOS X Mountain Lion 10.8
Boot your "Mac OS X Base System" drive (which is Mountain Lion Installation DVD) in verbose mode (-v).
Now comes the hard part. If you are lucky enough and if you use the same configuration as me, Mountain Lion Installation DVD will load without any issues. If not, issues can be related to the ones listed in the HackinTosh common issues… Warning! section of this GUIDE. Most issues can be related to your Graphic Card and can be solved with some tricks like GraphicsEnabler=Yes/No. For this reason, I will not list here all issues and solutions, it really depends of your Graphic Card model. By the way, if you plan to buy a new Graphic Card, I recommend you to have a look at this list and buy a "Working Out Of the Box" Graphic Card.
Some people are facing an issue with ATI/AMD Graphics Cards, when the Installation DVD is loaded they see a blank screen and their mouse but nothing else. To fix this issue you have two solutions:
- You can press the power button to make your computer got to sleep, and then press the power button again to wake it up. Once awake you should see the normal Installation screen and no more blank screen. This works only if you have sleep/wake working. It was working for me with my ATI Radeon HD6870 Toxic.
- According to this topic, you can delete/backup ATI6000controller.kext which is located in your "Mac OS X Base System"/System/Library/Extensions folder. This step is only for the installation process. Once on Mountain Lion you must put this file back in your /System/Library/Extensions folder.
In case everything works well, you should be able to install Mountain Lion.
[![](GHOST_URL/img/IMG_0783_mod-43om/img/stage-1-chameleon-bootloader.jpg) [![](GHOST_URL/img/IMG_0787_mod-43om/img/stage-2-mountain-lion-install-dvd-boot-process.jpg) [![](GHOST_URL/img/IMG_0788_mod-43om/img/stage-3-mountain-lion-install-dvd-welcome-screen-d.jpg) [![](GHOST_URL/img/IMG_0791_mod-43om/img/stage-4-mountain-lion-installation.jpg)
RAID0 (optional part)
Those who don’t want to use RAID0 might find this tip useful too, because this tip provides an easy way to backup the Extensions.mkext file to prevent any stuck OS X. For example, if you install a bad kext in your /System/Library/Extensions folder that crashes your OS on the next boot, you can easily rollback to one of your previous Extensions.mkext files which does not contain this bad kext.
If you want to install Mountain Lion on a RAID0 software partition you'll also be interested to read my old post regarding RAID 0 Apple Software + x86_64 kernel + GUID + Dual Boot Seven. Note that if you are planing to install your OS on a RAID0 partition it is way better to have an external chameleon bootloader (located on another drive), because you will face a big issue regarding kexts. Chameleon will not be able to access your RAID0 drive to load Extensions.mkext nor extensions located in the /System/Library/Extensions folder (in case you try to boot without cache -f). For this reason, you will need to create the Extensions.mkext cache file in your Chameleon Extra folder BEFORE you try to boot Mountain Lion and AFTER any changes in your /System/Library/Extensions folder. YOU SHOULD FIRST DELETE AppleIntelCPUPowerManagement.kext from your /System/Library/Extensions folder!
Use the following commands every time you update your OS or update your Extensions folder:
mv /Volumes/CHAMELEON/Extra/Extensions.mkext /Volumes/CHAMELEON/Extra/Extensions.mkext.bak
cd /Volumes/CHAMELEON/Extra/
sudo kextcache -v -l -m Extensions.mkext /System/Library/Extensions
If you have multiple Extensions folders:
mv /Volumes/CHAMELEON/Extra/Extensions.mkext /Volumes/CHAMELEON/Extra/Extensions.mkext.bak
cd /Volumes/CHAMELEON/Extra/
sudo kextcache -v -l -m Extensions.mkext /Extra/Extensions ... /System/Library/Extensions ... /AndAnyOtherFolderContainingkexts
STEP 3 – Boot Mountain Lion 10.8 and install additional kexts
Use your Chameleon USB/SD drive to boot Mountain Lion. When the list of bootable OS popup you just have to choose the name of the OS X partition where you have installed Mountain Lion. Once done… Welcome in Mountain Lion!
YOU SHOULD FIRST DELETE AppleIntelCPUPowerManagement.kext from your /System/Library/Extensions folder!
DELETE THIS KEXT AFTER ANY UPDATE OF MOUNTAIN LION, BEFORE REBOOT!
What you might want to do is to install the Chameleon Bootloader on your disk to get rid of your USB/SD bootable device. Follow once again the steps to install Chameleon with the Extra folder, but this time either select your Mountain Lion partition or another bootable device (if you have installed OSX on a Raid0 partition I recommend you the second option). Then in your BIOS, change the settings to boot on the drive where you have installed Chameleon!
About additional kexts…
Audio, USB 3.0 and Ethernet drivers can be found in MultiBeast – Mountain Lion. The reason why I prefer not to use such tools for a fresh install is because most of the time we don't know what exactly these applications install. So I prefer creating my own bootloader with my own kexts, which is better in case I need to debug my bootloader.
- Audio* – If you use my DSDT you must select ALC892 from the “Drivers & Bootloaders -> Drivers -> Audio -> Realtek ALC8xx -> With/Without DSDT” section (use ‘Without DSDT’ if you have not patched your DSDT). Otherwise, you must select the audio driver for your own configuration in case the Audio doesn't work out of the box.
- USB 3.0 – Install USB 3.0 – Universal from the “Drivers & Bootloaders -> Drivers -> Miscellaneous” section. Make sure you do not have any CalDigit*.kext and PXHCD.kext drivers from your /System/Library/Extensions folder, otherwise you must delete them (and rebuild your kext cache).
- Ethernet* – Install hnak's AppleIntelE1000e Ethernet (from MultiBeast – Mountain Lion) or AppleIntelE1000e.kext (I prefer this method). It is strongly advised to use the stable 2.4.14 version of this kext. Newest versions are very unstable after hours of heavy network usage (i.e. 2.5.4d). This issue was reported on the official forum topic: here.
* Note that these drivers depend of your motherboard!
[![](GHOST_URL/img/macos-x-mountaiom/img/macos-x-mountain-lion-graphics-cards-nvidia-atiamd-by-thireus.png)
Before each reboot make sure to Repair Permissions with the Disk Utility.
Hopefully my NVIDIA GTX 480 and AMD HD6870 Graphics Cards were working out of the box on Mountain Lion. OpenCL, OpenGL and Quartz Extreme are working without any patch. If you need to patch OpenCL you'll find more information on this topic. The only issue I faced on Mountain Lion was the bad GPU power management of my NVIDIA GTX 480. To fix this issue you need to patch the Infos.plist file contained in the AppleGraphicsPowerManagement.kext folder.
Here are the lines you need to add, right after
<key>Vendor10deDevice06c0</key>
<dict>
<key>BoostPState</key>
<array>
<integer>0</integer>
<integer>1</integer>
<integer>2</integer>
<integer>3</integer>
</array>
<key>BoostTime</key>
<array>
<integer>3</integer>
<integer>3</integer>
<integer>3</integer>
<integer>3</integer>
</array>
<key>Heuristic</key>
<dict>
<key>ID</key>
<integer>0</integer>
<key>IdleInterval</key>
<integer>250</integer>
<key>SensorOption</key>
<integer>1</integer>
<key>SensorSampleRate</key>
<integer>4</integer>
<key>TargetCount</key>
<integer>5</integer>
<key>Threshold_High</key>
<array>
<integer>47</integer>
<integer>75</integer>
<integer>93</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>72</integer>
<integer>90</integer>
<integer>99</integer>
</array>
</dict>
<key>control-id</key>
<integer>17</integer>
<key>LogControl</key>
<integer>0</integer>
</dict>
If you still need the full kext, here it is:
IF YOU ARE UNDER 10.8.3 YOU NEED THIS VERSION OF THE KEXT (you can still patch the original kext manually):
HackinTosh computers may have this bad behavior with iMessage, that when you try to sign in to iMessage it fails with an error displaying "Could not sign in to iMessage.". Fortunately "xZeneu LLC" released a module for Chameleon r2181 or newer named FileNVRAM.dylib that fixes this issue (download the 1.1.3 version or newer). Make sure that you have the latest version of Chameleon and put the FileNVRAM.dylib module to your /Extra/modules/ folder. Reboot and enjoy iMessage.
Final thoughts…
[![](GHOST_URL/img/macos-x-mountaiom/img/macos-x-mountain-lion-10-8-thireus-geekbench.png)
I'm writing these last lines from my new Mountain Lion OS. I hope you enjoyed this tutorial. Feel free to thank anyone who helped you during this painful task.
Never forget that this hard work was made during my spare time and if you need more help you should ask on hackintosh forums, such as tonymacx86 or InsanelyMac.
As always, feel free to share the knowledge my friends!
OSX Updates:
10.8.1 UPDATE PROCEDURE [ GOOD ] – Update, reboot, enjoy!
- Either update from App Store or direct link.
- Use the following updated ExtraThi_v1.1 to boot Mountain Lion, it contains the new OS X Darwin kernel (12.1.0 for MacOS 10.8.1) included in Preboot.dmg.
- (Optional) Users who have installed Chameleon 2.1 r2048 (previous version of this GUIDE) can upgrade their CHAMELEON bootloader with Chameleon 2.1 r2050 (from source or package).
10.8.2 UPDATE PROCEDURE [ GOOD ] – Update, reboot, enjoy!
- Either update from App Store or direct link.
- Use the following updated ExtraThi_v1.1 to boot Mountain Lion, it contains the new OS X Darwin kernel (12.2.0 for MacOS 10.8.2) included in Preboot.dmg.
- (Optional) Users who have installed Chameleon 2.1 r2050 (previous version of this GUIDE) can upgrade their CHAMELEON bootloader with Chameleon 2.1 r2060 (from source or package).
10.8.3 UPDATE PROCEDURE [ GOOD ] – Update, patch, reboot, enjoy!
- Update using the OS X Mountain Lion Update v10.8.3 (Combo) from direct link.
- Patch your AppleGraphicsPowerManagement.kext if needed (Apple updated this kext in this 10.8.3 version, so you need to patch it again).
- Use the following updated ExtraThi_v1.1 to boot Mountain Lion, it contains the new OS X Darwin kernel (12.3.0 for MacOS 10.8.3) included in Preboot.dmg.
- Users who have installed Chameleon 2.1 r2060 (previous version of this GUIDE) must upgrade their CHAMELEON bootloader with Chameleon 2.2 r2187 or newer version (from source or package).
- Apply fixes for Audio/USB3.0/Ethernet/iMessage/etc.
10.8.4 UPDATE PROCEDURE [ GOOD ] – Update, patch, reboot, enjoy!
- Update using the OS X Mountain Lion Update v10.8.4 (Combo) from direct link.
- Patch your AppleGraphicsPowerManagement.kext if needed (Apple updated this kext in 10.8.3 version, so you need to patch it again if updating via Combo).
- Use the following updated ExtraThi_v1.2.1 to boot Mountain Lion, it contains the new OS X Darwin kernel (12.4.0 for MacOS 10.8.4) included in Preboot.dmg.
- Users who have installed Chameleon 2.1 r2187 (previous version of this GUIDE) should upgrade their CHAMELEON bootloader with Chameleon 2.2 r2189 or newer version (from source or package).
- Apply fixes for Audio/USB3.0/Ethernet/iMessage/etc.
10.8.5 UPDATE PROCEDURE [ GOOD ] – Update, patch, reboot, enjoy!
- Update using the OS X Mountain Lion Update v10.8.5 (Combo) from direct link.
- Patch your AppleGraphicsPowerManagement.kext if needed (Apple updated this kext in 10.8.3 version, so you need to patch it again if updating via Combo).
- Use the following updated ExtraThi_v1.3 to boot Mountain Lion, it contains the new OS X Darwin kernel (12.5.0 for MacOS 10.8.5) included in Preboot.dmg.
- Users who have installed Chameleon 2.2 r2189 (previous version of this GUIDE) should upgrade their CHAMELEON bootloader with Chameleon 2.2 r2266 or newer version (from source or package).
- Apply fixes for Audio/USB3.0/Ethernet/iMessage/etc.
10.8.5 Supplemental Update 1.0 PROCEDURE [ GOOD ] – Update, patch, reboot, enjoy!
- Update using the OS X Mountain Lion v10.8.5 Supplemental Update 1.0 from direct link.
- Patch your AppleGraphicsPowerManagement.kext if needed (Apple updated this kext in 10.8.3 version, so you need to patch it again if updating via Combo).
- Use the following updated ExtraThi_v1.3.1 to boot Mountain Lion, it contains the new OS X Darwin kernel (12.5.0 for MacOS 10.8.5) included in Preboot.dmg.
- Users who have installed Chameleon 2.2 r2263 (previous version of this GUIDE) should upgrade their CHAMELEON bootloader with Chameleon 2.2 r2266 or newer version (from source or package).
- Apply fixes for Audio/USB3.0/Ethernet/iMessage/etc.
- For Ethernet, you should consider using AppleIntelE1000e.kext v2.4.14.
- SAPPHIRE HD 6870 4 PORT kext 10.8.5 patched – Install the patched ATI6000Controller.kext (replace the original one provided by Apple) to fix DVI/HDMI outputs of your Sapphire HD6870 Graphics Card. With the original ATI6000Controller.kext only one DVI output is working out of the box.
Please note that after each update Audio/USB3.0/Ethernet/etc. might be broken. Make sure to fix them right after the update.
RAID0 users: After each update do not forget to rebuild your Extensions.mkext!