The purpose of this guide is to help you upgrade to Chameleon 2.0 so that you can take advantage of all the new features it offers.
It is primarily aimed at those of you with an Intel CPU and chipset – I have no experience with AMD systems at all and I don’t know enough about the issues that AMD users run into. However, AMD peeps are encouraged to read along and pick up whatever useful info you can find. I can say for sure that at least the first two parts apply 100% to you as well.
All of the old distros (such as Kalyway 10.5.2 that many still use) offer, during the "customize" phase before installing, some obsolete ways to fool OS X into believing that it’s being installed on a real Mac, along with several patches to make various PC hardware work in OS X. Some of these may make updating to a later version of Leopard more difficult than necessary:
-SMBIOS Injectors and System Profiler hacks
-Various obsolete, patched kernels with various features
-Patched Apple kernel extensions that fix issues with hard drive icons being orange, power management and network
-Patched Apple kernel extensions that make your hardware work - drivers for sound, chipset (drive controllers and USB) video and network.
-Other stuff that might get installed/patched (or not installed!) without your knowledge
When you run an Apple 10.5.x system update on this type of installation, you will lose the patched kernel and the patched extensions that you depend on, when the update replaces them with original Apple ones. This will effectively brick your Hackintosh.
Thankfully, the Chameleon 2.0 boot loader, and, for those who can’t use Vanilla, the Voodoo kernel, was cleverly designed with overcoming these issues in mind. You will still need many of the patches that you are using now, but Chameleon 2.0 comes with its own sets of convenient fixes and enhancements that are a lot easier to apply and manage.
Chameleon allows you to place (ideally) all the kernel extensions and other fixes that you need in a separate folder (even on a separate partition or drive) away from the OS installation itself. If you’ve ever seen a reference to /EFI/Extra or /Extra, then that’s the folder I’m talking about.
This is, among other clever tricks, what allows us to run retail, unmodified "vanilla" installations of OS X on our PCs. When you run an Apple system update on such a configuration, any patches and fixes that you use will stay intact and will still work, because the updater only updates files that are located in system folders.
Unfortunately, many newer 2009 distros that use the Chameleon 2.0 boot loader (such as iATKOS v7) do not fully take advantage of this significant advance in Hackintosh technology, and still install the patches and fixes that you select in "Customize" in system folders. You might see a folder named 'Extra' at the root of your system drive but this folder is usually empty.
WARNING: Do not follow my installation guide if you have a multi-boot system with a single hard drive. OS X must be the only OS installed on the drive. I'm not saying that it WILL eat your Windows partition for breakfast but I didn't have a multi-OS setup in mind while writing this guide.
We’re going to manually install the latest official version of Chameleon 2.0, verify that it’s working correctly, kick the tires a bit and go over some of the neat things it can do.
Visit the Chameleon website or the VoodooProjects forum and download Chameleon-2.0-RC4-r684-bin.tar.gz.
Extract the archive to somewhere, and copy the folder named i386 to your desktop.
Fire up Terminal.app and type
Diskutil listIf you see GUID_partition_scheme and a partition labeled EFI in the output from Diskutil, this is where we will install Chameleon 2.0.
Installing Chameleon to a separate partition is preferred to installing it on the same partition as your OS install. Real Macs use the GUID partition scheme; it is more flexible in terms of partition manipulation via Disk Utility and other tools, not to mention that installing Chameleon to the EFI partition will allow you to reinstall the whole system and boot it too, without losing your patches and modifications. More on that later.
Make a note of where your EFI partition is. The install steps below assume disk0s1 – if it’s somewhere else, modify the commands accordingly.
Before proceeding with the install, use Terminal.app to navigate to the root of your system drive and make sure to delete a file named boot if you see one. If you find a folder named Extra as well, move it to the desktop for now:
sudo -s (type your password) cd / ← places you at root ls ← shows what’s in the current directory, including hidden folders rm /boot ← deletes the file mv /Extra ~/Desktop ← moves the extra folder and its contents to the desktop exitIf you don’t see "GUID_partition_scheme" in the diskutil output, then your drive is MBR formatted and we will install Chameleon 2.0 and the Extra folder to the root of your system drive, overwriting the existing boot loader. If you already have an Extra folder there, move it to the desktop for later use (hold the command/Apple key while dragging to move a folder or file).
Pay attention to the commands, especially where they differ according to what partition scheme you are using. Don’t come crying to me if you accidentally wipe out your entire porn storage partition.
Terminal.app will remember all of the following commands between reboots, so you don’t have to type them more than once. You can use the up and down arrow keys to cycle through commands you have already typed.
Open Terminal.app if it’s not already running and type
cd ~/desktop/i386 ← navigate to the i386 folder you copied to the desktop earlier (and don't leave this directory during installation!) sudo -s (and your password)If you’re on a GUID partition scheme, do this:
diskutil eraseVolume "HFS+" "EFI" /dev/disk0s1 ← formats the EFI partition with HFS+(note; the above command is different on Snow Leopard – this guide is for upgrading the boot loader on installations made with 10.5.x distribution DVDs!)
mkdir /Volumes/EFI ← creates a mount point mount_hfs /dev/disk0s1 /Volumes/EFI ← mounts the EFI partitionStart here if you’re on an MBR drive (if diskutil list shows "FDisk_partition_scheme" your drive is MBR formatted) if you’re on GPT, continue:
./fdisk -f boot0 -u -y /dev/rdisk0 ← install boot0 to the hard drive’s MBR dd if=boot1h of=/dev/rdisk0s1 ← install boot1h to the boot sectorIf you’re on a GPT drive, do this:
cp boot /Volumes/EFI ← copy the file ‘boot’ to the EFI partitionIf you’re on an MBR drive, just do
cp boot / ← copy the file ‘boot’ to the root of your system driveMake your OSX (or EFI) partition "active" – type each command and press return.
1) ./fdisk -e /dev/rdisk0 (Ignore any "fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory" error) 2) f 1 3) w 4) qIf you’re on an MBR drive you’re done, your boot loader has been upgraded.
If you’re on a GPT drive, continue:
killall Finder ← with a capital F.This restarts the finder, and the EFI partition appears on your desktop (if you have show drives on desktop enabled in Finder preferences).
Leave the EFI partition mounted for now – we’re going to add some files to it.
When you’re done, don’t forget to unmount the EFI partition and delete the mount point (If you’re following this guide step by step, don’t do this now!):
umount /Volumes/EFI ← yes it’s umount, not unmount! rm -rf /Volumes/EFI exitTip 1: In order to prevent the File System Events Daemon (fseventsd) from logging on the EFI partition, which can cause it to become unmountable, type (while the EFI partition is mounted):
touch /Volumes/EFI/.fseventsd/no_logTip 2: If you ever get “mount_hfs: Invalid argument” when trying to mount the EFI partition, do this to fix it (again assuming the EFI partition is on Disk0):
fsck_hfs /dev/disk0s1Don’t reboot, we’re not done yet.
Create a folder at the root of your system drive (or, if you’re on GPT, at the root of the EFI partition) and name it ‘Extra’.
Inside Extra, create a folder named ‘Themes’.
Open the folder where you extracted Chameleon-2.0-RC4-r684-bin.tar.gz, find the themes folder inside and copy the folder named ‘Default’ to the themes folder you created in /Extra.
Go to /Library/Preferences/SystemConfiguration and copy the file named com.apple.Boot.plist to /Extra
Now overwrite the com.apple.Boot.plist in /Library/Preferences/SystemConfiguration with the unmodified com.apple.Boot.plist attached here: com.apple.Boot.plist.zip 381bytes 342 downloads
Download it and extract it to the desktop, open Terminal.app and type
sudo mv ~/Desktop/com.apple.Boot.plist /Library/Preferences/SystemConfiguration (type your password when prompted)Congratulations, that’s your first ‘vanilla’ file restored!
Let’s edit /Extra/com.apple.Boot.plist and configure Chameleon.
Install a plist editor. You can install Apple Xcode to get one (you can find it on a 10.5.x DVD or download it for free from the Apple Developer site). You can also try Google and see if you can find a free or shareware plist editor.
You can also use a standard text editor but make sure you don’t mess up the formatting in the plist.
Open /Extra/com.apple.Boot.plist in your editor. Maybe you already have a device properties string for your video card, a resolution and color depth set, loading a renamed Voodoo Kernel and some kernel flags here. That’s okay, whatever is in there, keep it the way it is.
Click ‘root’ inside the plist, then click ‘add child’ (if you’re using a normal text or xml editor just follow the <key> and <string> syntax). A blank line appears. Move it down below the line that says Kernel Flags, name it Graphics Mode and add a string value with your display’s native resolution in the format widthxheightxbitdepth – 1280x1024x32 for example. If you have this line there already, just leave it.
If you're using the Voodoo Kernel, it is highly recommended that you make the modifications outlined here:
Below the Graphics Mode key Add a key Theme with the string value Default.
Add a Timeout key with a string value 4.
If you want the boot GUI to appear and wait for you to manually select a boot volume instead, add a key named Instant Menu with the string value y.
Chameleon also supports hiding partitions, and you can set the default partition that Chameleon will boot after the timeout. This is useful on hard drives with multiple OS X installations, or if you want to boot a partition on another hard drive by default. As an example, To boot the first partition on the same drive that Chameleon is installed on, you would add a key Default Partition with a string value hd(0,1) (if Chameleon was installed to the EFI partition, this would be hd(0,2) because 0,1 is the EFI partition). The syntax for the key Hide Partition is the same. To hide multiple partitions just add them to the string value with a space between them, like this: hd(0,3) (hd 1,2).
Open the folder where you extracted Chameleon-2.0-RC4-r684-bin.tar.gz and open doc/boothelp.txt. You can see most of the settings you can apply in com.apple.Boot.plist here. There are some advanced, hardware related settings available (GraphicsEnabler and related options, the USB fixes, and EthernetBuiltIn) but we will get back to those later. For now, save the plist in /Extra.
Open Theme.plist inside the ‘Default’ folder in /Extra/Themes. There are two places in this plist where theme resolution is set. Change at least boot width and height to match your native resolution and save the plist. Feel free to experiment with the contents of this plist.
If you have a DSDT.aml at root (or in the Extra folder you moved to the desktop earlier), move it to /Extra.
If there is a folder named Extensions in the extra folder you copied to the desktop, move it to /Extra as well. If you find a com.apple.Boot.plist in it, compare it to your new one in /Extra and edit the new one accordingly. If you see an smbios.plist, move that to /Extra as well. We’ll get back to smbios.plist later.
It’s time to reboot and cross your fingers. If you’re on GPT, don’t forget to unmount the EFI partition first, as detailed above.
If you didn’t set InstantGUI=y, you should be looking at a countdown bar now. Press a key to get to the boot selector GUI. You can use the arrow keys to move around, and press return to boot from the selected drive or partition. Try pressing the down arrow when a drive is highlighted - here’s a little menu with frequently used boot flags, boot help, and a list of VESA modes available at boot. Press ESC to leave the drop-down menu. If you start typing something, the command line will appear at the bottom of the screen. Just like in older versions you can type -s if you want to boot in single user mode, –x if you want to boot in safe mode, specify a kernel to use - besides the standard Apple kernel flags, basically anything you can do via /Extra/com.apple.Boot.plist (refer to boothelp.txt) you can also do from the command line.
Pick your system drive in the Chameleon GUI and boot back in to OS X.
When installed to a hard drive or USB stick, Chameleon does not support booting from DVDs or CDs, so even if you have a disc in your optical drive it will not appear in the GUI.
If you want to use Chameleon to boot from CD or DVD (a retail OS X installation DVD for example) you must build your own Chameleon Boot CD.
Here's Sonotone's original how-to from when 2.0 was first released: http://www.insanelym...howtopic=160234
You can also use a Boot CD to boot your main OS X installation. I like to keep a Chameleon boot CD-RW with a working configuration in case I screw up something and can’t boot anymore. It has saved my butt many times.