*****NOW UPDATED FOR YOSEMITE - PLEASE REPORT ANY PROBLEMS IN THE COMMENTS*****
*****There are subtle differences in the guide depending on whether you’re using Lion / Mountain Lion or Mavericks*****
*****For Lion / ML use the blue line. For Mavericks use the red line. For Yosemite use the green line.*****
*****If you're creating the installer for Lion/ML use "Essential 03.08.2012" attachment*****
*****Otherwise use the attachment for the version you’re using*****
*****This guide will not work for versions of OS X earlier than Lion (10.7)*****
The all-in-one guide to vanilla OS X + Chameleon + DSDT for beginners
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 on the forum thread.
Those who experience problems make sure you’ve read Part 7 before posting to the forum asking for help.
Part 1 - Prerequisites
1.0. Basic Requirements:
The basic requirements for OS X from Lion onwards 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 Lion / ML / Mavericks
Note: All essential software / kexts below are in the attachment.
1.1. 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.2. 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.0. 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 (Journaled)”; name it “USB” and click Apply
2.1. Creating the OS X installer on the USB drive
1. Mount your OS X DMG. If using a copy downloaded from the app store: Navigate to Applications (which is where it will save your downloaded copy of OS X by default) -> right click "Install OS X *version*" and click "Show Package Contents" -> Contents -> SharedSupport -> Double click "InstallESD.dmg"
2. Mount BaseSystem.dmg by typing the following in terminal:
open /Volumes/Mac\ OS\ X\ Install\ ESD/BaseSystem.dmg
open /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg
open /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg
3. Go back to disk utility and click on “(Mac )OS X Base System”, click the “Restore” tab then drag and drop “(Mac )OS X Base System” to “source” and your USB to “destination” and click restore then erase. This will take a while.
4. You’ll now have 2 “(Mac )OS X Base Systems present in Finder, right click them and “get info” to determine which is your USB drive (hint: look at the size).
5. 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”.
6. 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.
7. Copy mach_kernel from “OS X Install ESD” to the root of your USB drive.
7. Use pacifist to extract mach_kernel from “OS X Install ESD/Packages/BaseSystemBinaries.pkg” and copy it to the root of your USB drive (note: this is in the attachment).
7. Use pacifist to extract kernel from “OS X Installed ESD/Packages/Essentials.pkg/System/Library/Kernels/Kernel” and copy it to /System/Library/Kernels/ (You may need to create the “Kernes” folder) (note: this is in the attachment).
8. Copy BaseSystem.chunklist and BaseSystem.dmg from InstallESD.img to the root of your USB drive. Since these files are hidden you must first show hidden files by typing the following in Terminal "defaults write com.apple.Finder AppleShowAllFiles YES" followed by "killall Finder". Once copied you can type "defaults write com.apple.Finder AppleShowAllFiles NO" followed by "killall Finder" to hide hidden files.
The terminal will look something like this when you are done:
2.2. 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.
N.B. make sure you’ve got a smbios from a Mac which supports your version of OS X, for a list of which do see here: http://www.apple.com/osx/specs/
5. Use chameleon wizard to generate an “org.chameleon.boot.plist” this is necessary to set the kernel flag “kext-dev-mode=1” which allows us to boot using unsigned kexts. If you already have an org.boot.chameleon.plist you may simply add “kext-dev-mode=1” to your list of kernel flags. If not then use the one from the attachment. Copy this file to the /Extra folder we created on the USB stick.
6. Copy your folder of essential software & kexts to the root of your USB stick.
N.B.1: For those with a fully-working Lion / ML 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.6 now!
2.3. 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 7 then I suggest you install Windows 7 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.
Part 3 – Installing OS X
3.1 Installing OS X
1. Stick the USB drive in the computer you wish to install OS X 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.1. 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 set to MBR.
3. Follow the installer to install OS X to the desired partition.
4. Take a well-deserved rest while it installs.
5. Once the installer is finished it will reboot, on reboot boot back into the install USB NOT your OS X install.
3.1 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 (still surrounded by quotation marks).
Part 4 – Initial booot
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 OS X.
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, remove USB, and let the computer boot from your HDD, select OS X and it should boot straight to OS X.
You are not finished! You now need to at least read through step 6!
Part 5 – DSDT
Although not strictly required it is useful to have a DSDT for your system; 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 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.
5.1 Common Fixes
Part 6 – Finishing Touches
6.0. A note on non-Mac monitors
Most non-Mac monitors will start with the wrong color calibration. To fix this go-to "System Preferences" -> "Displays" -> "Color" -> select "Generic RGB Profile".
Further to this, due to Mac monitor having a different dot pitch to normal monitors, LCD font smoothing may make the fonts appear blurred. To turn this off go-to “System Preferences” -> General -> uncheck “Use LCD Font…” (at the bottom).
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.
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 if you don’t place them in /Extra. 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.
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. 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.1.1&3.1.2.
If your system panics on boot then you require a patched version of AppleIntelCPUPowermanagement; reading round the forum should allow you to obtain this relatively easily.
6.4. Device Compatibility
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.5. Finder grid view (windows explorer behaviour)
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"
Part 7 – Common Errors & Basic Diagnostics
Boot0 error is most likely caused by incorrectly installing chameleon or having a drive with 4k-sector allocation. Try to reinstall chameleon (use the latest version!), if that doesn’t work see here:
7.1. Boot flags
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 of 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 (or –npci=0x3000) 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.
7.2. The console
The console gives you a verbose output of any and all 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.
7.3. 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.
7.4 Motherboard POST Freeze
I your motherboard freezes during POST (you don’t even get past the 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.0.5 select MBR instead of GUID.
Note: If you make it to the OS X boot-loader this is not your problem and will not fix any issues other than hanging at POST. For more information see here:
7.5 When posting to the forum asking for help
When posting to 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 this guide.
7.6 ATi6xxx card white screen error
There is a know permissions error in Mountain Lion regarding the ATi6000Controller kext causing white screen. To fix this:
- Navigate to /System/Library/Extensions on your install USB and copy ATi6000Ccontroller to your folder of essential kexts.
- Delete ATi6000Controller from /S/L/E.
- Install OS X (note: you will only have basic graphics support).
- After install (at the end of step 4) you can drag & drop the kext onto kextutility then reboot to enable your card.
Part 8 - Useful Tips
8.0. To show or hide hidden files:
In the terminal type:
defaults write com.apple.finder AppleShowAllFiles YES
defaults write com.apple.finder AppleShowAllFiles NO
Followed by killall Finder
8.1. Spaces in terminal
When using the terminal spaces must be preceded by \ 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 – References
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 app-store.
v2.4 - 27/07/2012 - Minor updates regarding Gringo Vermelho’s post.
v2.5 - 03/08/2012 - Minor updates and touch-ups.
v2.6 - 22/08/2012 - Addition of UseKernelCache=Yes plus key-maps and a few minor tweaks.
v3.0 – 24/10/2012 – Addition of screenshots
v3.1 – 03/12/2012 – British keyboard layout added
v4.0 – 07/10/2013 – Updates so guide complies with Mavericks install procedure
v4.2 – 10/11/2013 – Ironed out differences between Lion/ML and Mavericks
v4.3 – 16/10/2014 – Added Yosemite support