So I’ve built a few hackintoshes now to the point where I’ve a good idea what I’m doing. I’ve gone the distro way before as well as the vanilla way and I agree fully with the idea that vanilla is better. The problem with it being that I haven’t found a well explained start to finish guide of how to do it without a lot of googling and combining numerous different guides so my idea is to collate everything into one place for beginners to hopefully understand the process better and build better systems. A lot of the leg-work for this guide has been done by other people; although I’m rewriting most of it if anyone wants credit adding to something I’ve accidentally stolen from them just PM me. Throughout the guide I try to avoid scripts and utilities so you can learn what your doing. If you want a one-click install this is not the guide for you; having said that there is nothing technically complicated that isn’t clearly explained so don’t be scared off if you’re a rookie.
If any one has any suggestions on how to improve this guide PM me or mention it below with UPDATE at the top of the post.
For those who experience problems make sure you've read Part 7 lower down before posting to the forum asking for help.
Clearer report-style PDF version as attachment; one with the below screenshots and one without.
Those who have done this a few times before and just want a quick reference see the v0 attachment (very condensed version of this guide).
Part 1 - Prerequisites
1.A. Basic Requirements:
The basic requirements for Mountain Lion are:
1. A Core 2 Duo processor or later
2. 2GB or more RAM
3. 8GB of disk space
N.B. For details of specific hardware compatibility see the hardware compatibility list (HCL) in the wiki:
Further to compatible hardware you will need:
1. A working install of OS X (this may be in a virtual machine or a native install) to prepare the installer
2. A flash drive of minimum size 8GB
3. A copy of Mountain Lion
NOTE: All essential utilities & kexts listed in 1.B & 1.C are included as an attachment.
1.B. Essential Software
You will need to obtain the following. I suggest you place them all in the same folder along with the essential kexts below for use later:
1. The Chameleon boot loader, the latest version of which can always be found here (You want "The Latest Trunk PKG ~ Standard and Official Revision"):
2. Chameleon wizard to create a smbios (basically identify your machine as a mac) and to help with bootloader problems
3. System info for finding device ID’s for general post-install troubleshooting (Check you get the Mac version).
4. DSDT editor for extracting your DSDT once were up and running:
5. Kext utility for installing additional kexts post-install:
1.C. Essential Kexts (kernel extensions)
1. FakeSMC – absolutely essential – tricks OS X into thinking it’s a real Mac
2. NullCPUPowerManagement – generally required initially to prevent kernel panics, may not be needed once AppleIntelCPUPowerManagement is patched after install.
Part 2 - Creating the installer
2.A. Preparing the USB
1. In your working OS X install open Disk Utility
2. Click on your USB drive in the left sidebar
3. Click the “Partition” tab
4. Under “Partition Layout” click “1 Partition”
5. Click Options -> select “GUID Partition Table”; check the format is set to “Mac OS X Extended (Journeled)”; name it “USB”
6. Click Apply
Creating the USB in disk utility:
2.B. Creating the OS X installer on the USB drive
1. Show hidden files in finder by opening Terminal (in utilities) and typing (copy / pasting) the following:
defaults write com.apple.finder AppleShowAllFiles YES
2. Mount your Mountain Lion DMG. If using a copy downloaded from the app store: Navigate to Applications (which is where it will save your downloaded copy of ML by default) -> right click "Install OS X Mountain Lion" and click "Show Package Contents" -> Contents -> SharedSupport -> Double click "InstallESD.dmg"
3. Mount BaseSystem.dmg by typing the following in terminal:
open /Volumes/Mac\ OS\ X\ Install\ ESD/BaseSystem.dmg
4. Go back to disk utility and click on “Mac OS X Base System”, click the “Restore” tab then drag and drop your USB to “destination” and click restore then erase. This will take a while.
5. You’ll now have 2 “Mac OS X Base System”s present in Finder, right click them and “get info” to determine which is your USB drive (hint: look at the size).
6. Navigate to the one which is your USB drive, open it and go to /System/Installation. Delete the “Packages” link then create a folder called “Packages”.
7. Open a new Finder window and navigate to “Mac OS X Install ESD”. Copy everything inside the packages folder to the packages folder you have just created. This will take a while.
8. Copy mach_kernel from “Mac OS X Install ESD” to the root of your USB drive.
Restoring the USB in disk utility:
What the terminal should look like:
2.C. Patching the installer for a PC:
1. Remember the two kexts we downloaded above? Copy both of them to /System/Library/Extensions on your USB stick.
2. Run the chameleon installation package and ensure to choose your USB drive as the destination.
3. Go to the root of your USB drive and create a folder called “Extra”. This is used to store configuration files for the chameleon boot-loader.
4. Open Chameleon wizard, click the “SMBios” tab then click "Edit". Now there is a list of “Premade SMBioses”. Look through this list to see which relates best to your PC (Hint: iMac 12.2 for modern desktops or MacBook Pro 8.3 for modern laptops is a good place to look to start with). Click “Save As” and save it to the /Extra folder we created on the USB stick.
5. Copy your folder of essential software & kexts to the root of your USB stick.
N.B.1: For those with a fully-working Lion install you may omit 2.C.3 & 2.C.4 and use your old /Extra folder (including smbios & org.chameleon.boot.plist & DSDT).
N.B.2: ATi6xxx users see step 7.7 now!
Installing chameleon - change install location:
Installing chameleon - select partition
Creating the SMBios:
2.D. A note for those wishing to boot OS X and Windows on the same HDD
(This is not recommended but may be necessary for those installing on laptops)
The OS X installer won’t install to an MBR partition scheme which Windows requires so we must patch the installer to allow this. If you intend on dual-booting OS X and Windows then I suggest you install Windows and update to Service Pack 1 before you install OS X to prevent problems updating to SP1 later. How to patch:
1. Download the required files from here:
2. On the USB stick navigate to /System/Installation/Packages/. Delete OSInstall.mpkg and replace it with the one you just downloaded.
3. On the USB stick navigate to /System/Library/PrivateFrameworks/Install.framework/Frameworks/OSInstall.framework/Versions/A/. Delete OSInstall and replace it with the one you just downloaded.
2.E Hide hidden Files
4. Hide hidden files in finder by opening Terminal and typing:
defaults write com.apple.finder AppleShowAllFiles NO
Part 3 – Installing OS X:
Please note: Parts 6.2 & 6.3 & 6.4 below are very important to a good build; just because you make it to the desktop in the next few steps doesn't mean your hacking is over.
3.A Installing OS X
1. Stick the USB drive in the computer you wish to install ML on and boot from your USB drive. If you’re unsure how to do this when your computer first turns on look for a prompt that says “Press X for boot selection menu” (where X is a key) or something of that effect. Common keys are F8 & F12.
2. When Chameleon comes up press enter to boot OS X. The OS X installer should boot. Go to the utilities menu and click disk utility. Select the disk / partition you wish to install OS X to, call it "OS X" and format it as “Mac OS X Extended (Journaled)” (See Part 2.A. if you’re a bit rusty with disk utility). N.B. For those dual booting on the same HDD as Windows ensure you've got the Partition Scheme as MBR.
3. Follow the installer to install OS X to the desired partition.
4. Once the installer is finished it will reboot, on reboot boot back into the install USB - NOT OS X!
3.B Fixing the OS X install
1. From the installer go to Utilities and Terminal.
2. Type cp –R /System/Library/Extensions/NullCPUPowerManagement.kext /Volumes/"OS X"/System/Library/Extensions/
3. Type cp –R /System/Library/Extensions/FakeSMC.kext /Volumes/"OS X"/System/Library/Extensions/
4. Type reboot
NOTE: Include the quotes in the lines above. This assumes your install partition is called “OS X” as I said above. If for whatever reason you called it something else replace “OS X” with whatever you called it.
Part 4 – Booting ML
1. Reboot your system and boot to the USB stick again but this time select your OS X install. This should boot you into your installed copy of ML.
2. Open "System Preferences" go-to "Security and Privacy", click the lock and give it your password then set "Allow applications downloaded from" to anywhere.
3. Navigate to your folder of essential software and run the chameleon package, install it to your OS X drive.
4. Copy the Extra folder on your USB drive to the root of your HDD (open Finder -> Go -> Computer -> OS X -> paste folder).
5. Reboot and let the computer boot from your HDD, select OS X and it should boot straight to ML.
Part 5 – DSDT
With a bit of research and patching it can be used to solve almost all problems you may encounter.
For those interested in what it actually is see here:
How to create it:
1. Open DSDT Editor
2. Go-to File -> Extract DSDT
3. Go-to IASL -> Compile (if you get any errors click “Fix Errors”)
4. Go-to IASL -> Save AML as. Save it as “DSDT.aml” in /Extra.
Part 6 – Finishing Touches
1. Most non-Mac monitors will start with the wrong color calibration. To fix this go-to "System Preferences" -> "Displays" -> "Color" -> select "Generic RGB Profile"
2. If you have a British standard keyboard you will need to install the keymaps in the attachment. To do so decompress the attached zip and copy its contents to /Library/Keyboard Layouts then change the keymap by going to System Preferences -> Keyboard -> Input Sources.
3. If you open Chameleon Wizard you can navigate to “org.chameleon.boot” here you can assign numerous settings which will be useful later as well as setting the default timeout and specifying the location of your SMBios and DSDT. I suggest you ensure the “Ethernet Built In” box is checked then set the "Time Out" to a reasonable figure and then click "Save As' and save it to /Extra (Note: save it as org.chameleon.boot, it automatically appends the .plist extension).
When you've saved it you can go to "Theme" and download and apply a theme for the boot loader rather than having the default text boot.
Once your system is stable and with all necessary hardware enabled set UseKernelCache=Yes to speed up boot times. Example below:
4. Currently we have NullCPUPowerManagement.kext installed. This disables speed-stepping and thus sleep (by disabling AppleIntelCPUPowerManagement.kext) so we need to remove it for a better system. Unfortunately not all system’s will work with the version that comes with OS X (i.e you may need a patched version, reading around the forums will allow you to obtain this relatively easily). The first thing to do is to try your system without it, to do this simply navigate to /System/Library/Extensions on your OS X drive and delete it then reboot. It’s possible you will see a kernel panic on reboot, if this is the case you will need to reinstall the kext by following Part 3.B.1&2.
5. At this point it’s very likely you will have some devices not working. The best way to get devices working is through DSDT edits rather than by adding kernel extensions; often additional kernel extensions will have to be re-installed after updates whereas DSDT edit are permanent.
To enable devices by using additional kexts: Run the “System Info” app we downloaded and click File -> check compatibility. This will let you see which devices are working and which aren’t. You can Google your vendor & device ID to find info about making them work. Once you find a kext that appears to be compatible for your hardware drag and drop it onto kext utility to install it.
Example: If your Wi-Fi isn’t working you can look for your Wi-Fi device and find its device / vendor ID’s in my case its vendor ID is 168c and its device ID is 002a so Googling for “168c:002a kext” would return results about making the device work.
6. To make finder sort files in a grid by default open Finder, navigate to your root folder of the OS X install. Go-to View -> Show View options -> Arrange by "Name" -> Click "Use As Defaults"
7. If you have a British standard keyboard you will need to install the keymaps in the attachment. To do so decompress the attached zip and copy its contents to /Library/Keyboard Layouts then change the keymap by going to System Preferences -> Keyboard -> Input Sources.
Part 7 – Common Errors & Basic Diagnostics
1. Boot0 error is most likely caused by incorrectly installing chameleon or having a drive with 4k-sector allocation. Try to reinstall chameleon, if that doesn’t work see here:
2. When the chameleon screen boots you can specify kernel arguments to attempt to solve problems you may be having. When you see the boot-loader pop up press any key and ensure your OS X install is highlighted. You can then type any combination kernel flags (with a space between them) to try to boot OS X / diagnose problems. For a complete list of kernel flags see here:
A few of the more common ones are:
1. –v verbose mode. If the system panics take a screen shot of the panic when you have typed this at boot and post it to the forums. It will help people diagnose your problems but won’t fix any problems.
2. –x safe boot (like windows safe mode – minimal drivers)
3. –f boot without the kernel cache (useful if you’ve installed kexts without rebuilding the kext cache – if you’ve used kext utility you shouldn’t have to use this)
4. –npci=0x2000 fixes the “PCI configuration Begin” error
5. PCIRootUID=0 solves problems for some NVIDIA graphics card users (if it doesn't solve your issue try =1 instead).
6. GraphicsEnabler=Yes (or GraphicsEnabler=No) add support for some non-OS X graphics cards.
7. NOTE: the arch=i386 boot flag is now depreciated due to ML's 64-bit only kernel and will no longer work.
3. The console gives you a verbose output of any errors the system may encounter. It's particularly useful if you've a system which won't stay in sleep mode. Go-to Applications -> Utilities -> Console to open it.
4. App-store "your device or computer could not be recognised..." error.
App-store requires a MAC address to verify your computer (any address, it doesn't have to be an apple one) hence you MUST have a working Ethernet or airport card for App Store to work. The problem is if you've enabled network hardware after first boot OS X won't update its caches. The fix:
Ensure "ethernet buit in" is checked in your org.chameleon.boot.plist. Go to system preferences and delete all the devices in the network section.Navigate to /Library/Preferences/SystemConfiguration and delete com.apple.airport.preferences.plist and networkinterfaces.plist and com.apple.boot.plist. Reboot then add your network interfaces in system preferences. Check app-store is now working.
5. If your motherboard freezes during POST (you don't even get past the initial BIOS screen) it's possible your BIOS isn't compatible with the GUID partition table of the USB we created the installer on. To fix this in step 2.A.5 select MBR instead of GUID.
Note: If you make it to the OS X bootloader this is not your problem and will not fix any other issues other than hanging at POST.
For more information see here:
6. When posting on the forum asking for help if the installer / installation won't boot please post a screenshot of where it stops - I suggest you post this to a new thread in a suitable place in the forum rather than to this guide.
7. There is a know permissions error in Mountain Lion regarding the ATi6000Controller kext causing white screen, the fix:
Navigate to /System/Library/Extensions on your install USB and copy ATi6000Controller to your folder of essential kexts. Delete ATi6000Controller from /S/L/E. Install OS X (note: you will only have basic graphics support). Install the ATi6000Controller kext using kext utility after install (at the end of step 4) and reboot.
Part 8 - Useful Tips
1. To show or hide hidden files:
defaults write com.apple.finder AppleShowAllFiles YES
defaults write com.apple.finder AppleShowAllFiles NO
2. When using the terminal spaces must be followed by a \ or the file or folder name placed in quotations
open /Volumes/Mac\ OS\ X\ Install\ ESD/BaseSystem.dmg
open /Volumes/"Mac OS X Install ESD"/BaseSystem.dmg
Part 9 – Credits
Massive credit goes to this guide here:
and this guide here:
Part 10 – Change-log
v2.3 - 25/07/2012 - Minor update to include InstallESD location from appstore
v2.4 - 27/07/2012 - Minor updates regarding Gringo Vermelho’s post
v2.5 - 08/08/2012 - Minor additions & updates
v2.6 - 22/08/2012 - Addition of UseKernelCache=Yes and a few minor tweaks.
v3.0 - 24/10/2012 - Guide revised to include screenshots with very minor updates
v3.1 - 03/12/2012 - British keyboard layout added to attachments
Edited by rockinron_1, 03 December 2012 - 09:26 PM.