Building a Hackintosh is something that is remarkably rewarding and fun (if you have a twisted sense of fun). It is also very educational. This marks my third Hackintosh, but my goal this time was to use most of my existing hardware and end up with a machine I might actually want to use on a daily basis. This article is a getting started guide from my perspective on building your own Hackintosh.
Should you choose to do so, you are embarking on an adventure in understanding how OSX works and will soon experience the excitement you get from learning something new and accomplishing a goal. You will likely need to consult others for help and second guess your decision to start this project more than once.
Couldn’t you just go out and buy a $599 Mac Mini? Yes. If you are asking that question then you have missed the point. This adventure involves a lot of pulling your hair out, cursing, and possibly a trip or two to Best Buy. Regarding money, you can certainly save some money by building your own Hackintosh, especially if you compare pricing on the high end of the Apple lineup. You can also build a pretty capable Hackintosh for a few hundred dollars. However, this is not about how much or little you spend, like I said, it’s an adventure.
I owe a lot to the great people and websites like tonymacx86.com and insanelymac.com that have been invaluable resources to me in getting everything on my Hackintosh working. I could not have done it without the tools and knowledge contained there.
If you’re ready to go, lets get started. You just might get the satisfaction of a home-brew Hackintosh you can call your own. This process has some general information on getting started and then the specifics of my hardware and procedures to get everything working.
At the time of building my Hackintosh, OSX 10.7.4. Lion was the latest version of OSX.
Selecting which hardware to purchase is tough. I actually purchased most of my components nearly two years prior, but I had in mind that I was going to create a Hackintosh, so I tried to stick to some generally acceptable hardware.
A Gigabyte or Asus motherboard is a fairly safe choice. I chose an Asus board at the time, but would probably go Gigabyte today. Regarding Intel vs. AMD, you pretty much have to go Intel. By doing so, you can just purchase a copy of OSX to work with. There are some AMD solutions out there, but most are hacked up versions beyond what I would consider currently worth the effort.
Your hard drive should be 1TB or under for installation. Most people seem to have problems using IDE drives. I used a WD 1TB SATA drive. Furthermore, you will usually be told to set your BIOS to use AHCI mode instead of IDE mode. You may also have to change some power management settings, but that differs from board to board. In my configuration, I only had to set my hard drive controller to use AHCI.
Choosing the right video card for me was certainly the biggest challenge. While it seems that ATI is currently supported a little better, I always seem to get burned when I pick ATI. I also added some headaches by insisting on dual monitor support for my setup. That definitely complicates matters and resulted in a trip to the computer store. After vowing twice to never buy another ATI card, I decided to dump my partially working (with one monitor) XFX ATI Radeon HD 4670 and go with a cheap $40 eVGA Nvidia 8400 GS 512MB DDR3 card. Don’t ever assume that because someone says their Nvidia such and such model is working great that your card of the same model will work. The amount of RAM, manufacturer (eVGA vs. XFX. vs. Asus, etc….) makes a difference. Be prepared to re-install 20 times or so when you screw everything up and can’t boot in single user mode.
The newer Intel processors support Intel HD 3000 series graphics built in, which is what the Mac Mini is currently using. It seems like people have had success going that route, but I haven’t personally tried it. I have the Intel HD 2000 series on my Asus board, so I opted to go with a separate PCIE card and just disabled the integrated graphics on the motherboard from BIOS.
If I were building completely from scratch today, I would probably stick to one of the pre-built configurations that have already been worked out from tonymacx86.com.
Audio can be a sticky subject as well, but that has been worked on a lot and I only had to check a box in MultiBeast to get my driver installed. I had the same good luck when it came to my built in ethernet.
Overview of the process:
Once you have all of your components put together, its tempting to get started. However, make sure you take the time to look at tonymac, or one of the other sites and read up on your motherboard and BIOS. You should set your AHCI mode and power settings before getting started. You should also start with a clean hard drive, or be prepared to wipe it out.
Creating a USB installer:
Getting a copy of OSX is fairly easy if you already own a Mac. I used my purchased copy from the AppStore and just downloaded it again. You can then run UniBeast (get it from www.tonymacx86.com) and it will take that copy and make a bootable USB thumb drive for you. Once you have that, you just need to set your BIOS to boot from USB and off you go.
Once you run the USB, you should be presented with a boot menu (Chameleon). If you do nothing, in a few seconds it will be booting up the installation screen. If you get stuck at this point, there is a good chance you need to start researching your hardware and look for some settings you can try typing into the bootloader to get the install screen to come up. At the bootloader, pressing the spacebar will give you a boot prompt where you can start typing. Using -v will hide the Apple logo and show you what is happening and is probably your first line of defense in determining what is failing. You can then start searching the forums for this stuff, ask for help, or start trying some common boot flags like PCIRootUID=1 or GraphicsEnabler=no.
If everything went well, or is going well enough that you are in the installer (don’t worry about a non-optimal resolution right now), then you need to prepare your hard drive. You can run the disk utility from the menu. The simple choice here is to use 1 partition formatted as HFS journaled (I called it Lion) and in options make sure GUID is selected. I usually create a couple of extra paritions (one about half the size of my drive for Windows and another very small one for Tools), but you don’t need to this if you are confident in your ability to get everything working and you don’t want Windows, etc. Because I plan on installing Windows later, I left some free space aside for it. My tools partition is just a small (couple of GBs) partition that is also formatted for HFS that I can keep a copy of useful apps / tools / kexts on so that if I have to reinstall, I can just erase the main partition (Lion) and install over it without losing my downloads.
If the installation went well, the installer will reboot at the end. At this point, you still need to boot from your USB install drive. When the computer boots to the USB drive, you should now have your new Lion partition showing up in the boot options. Choose that option to boot your new Lion installation. If everything loads, then you are ready to start installing any extra drivers / utilities needed to get your Hackintosh working 100%. If you are stuck at a black screen, get a kernel panic, etc.. then it’s time to start hitting the forums and searching for your specific problem. Again, press the spacebar and use -v to get an idea of where your system is failing.
Optimizing for your hardware
The easiest way to get all of your hardware working is to use MultiBeast (www.tonymacx86.com). MultiBeast already has a lot of preset configurations for specific motherboards. You can then often get your sound, network and graphics working by using MultiBeast if they aren’t working already. When you run MultiBeast for the first time, you should leave the defaults checked which will install the Chameleon bootloader onto your hard drive so you’ll no longer need the USB drive. It’s also a good idea to see if your motherboard has a DSDT configuration from tonymacx86.com. A DSDT file will adjust specific settings regarding ACPI and BIOS that will make your system work properly with OSX. You can find out more about DSDT here. It may be a good idea to just get your bootloader and custom DSDT working (if you have one), reboot and then run MultiBeast again to install your drivers.
In my case, after running MultiBeast, I needed to get my nVidia 8400GS working with dual monitors, sound and ethernet. While ethernet did work initially for me, after running MultiBeast with my custom DSDT, my settings were such that I needed to install the ethernet driver. I was able to use the RealTek driver under Networking and for sound, the Voodoo HDA 0.2 worked great. I pulled my hair out for a while thinking audio would start / stop working for no reason. My volume slider would show up but I wouldn’t hear audio sometimes. Finally, I realized you can option-click (on Win keyboard = alt-click) the volume slider and choose the correct speaker output. Mine was defaulting back to LogMeIn since I installed that.
I am currently using a Nvidia 8400GS card because it was cheap and I had some confidence that I could get it working fully with dual monitors before choosing a better replacement / perhaps a new system. I also have an ATI 4670, but had trouble getting dual monitor support and finally decided to spend $40 and cut my losses. I will likely revisit this again, but currently I have a fully working dual-monitor setup and I’m not a gamer.
When it comes to getting your graphics card working, you really have several ways to go about it. Because I seem to have better luck with NVidia, I will focus mainly on those, but touch on ATI as well.
The Chameleon bootloader has a feature called GraphicsEnabler. Each video card has a vendor ID and a device ID. This combined ID makes up your unique video card. OSX has many drivers (kexts) already built in, but since Apple knows every piece of hardware that ships in their machines, they only have the vendor/device ids specified for that hardware. By simply turning on GraphicsEnabler in Chamelon (it is by default), your unique hardware id will be injected into Apples hardware driver for your series of card automatically. This is the first thing to try and may get you going without further configuration.
If you weren’t so lucky as to just be able to turn on GraphicsEnabler=yes, then you may need to start getting dirty. Before you do, however, try booting with -v to see what is wrong. If you end up with what seems like a successful boot, but your monitor(s) go into sleep mode, you may have a framebuffer issue. Just knowing which series of card you have is not always enough because cards come in so many different configurations. You might have a card with dual dvi outputs, a dvi and a vga, hdmi, all three, etc… These different configurations can be adjusted on ATI cards by trying different preset configurations with the AtiConfig=something boot flag. NVidia cards often need to use and EFI string. The best thing to do is head over to the forums at insanelymac or tonymacx86 and start searching for your specific vendor / device id.
My eVGA Nvidia 8400gs has a DVI / VGA and HDMI output. My card would only work properly with the VGA output. Specifically, I needed to use the VGA and the DVI with VGA adapter for dual monitors, otherwise I would get an immediate power down of the monitors. To get my card working, I was able to edit the NVDANV50Hal.kext and put my vendor/device id in the list. As an experiment, I also was able to achieve the same results by downloading a hex file containing my EFI string and putting that directly in the chameleon boot file in the /Extra folder.
As soon as I got my 8400gs working, both screens lit up at 1920×1200 (my native resolution). However, just because you are able to get the resolution you need, you may not have QE/CI support. This is the built in hardware acceleration support you want so that things run smoothly and apps can take advantage of your video cards hardware. In Lion, you can’t easily tell if this is on just by looking, so there is a simple ripple effects test that will let you know quickly if its working.
When troubleshooting graphics cards, keep in mind that you should only be doing one method at a time. This is very important. If you can’t get it working by turning GraphicsEnabler=yes on, then you need to turn it off and try putting your vendor/deviceid directly into the driver (edit the Info.plist file, usually in the IOPCI section). If that doesn’t work, put it back the way it was and try using an EFI string by downloading a HEX file for your card and putting that in the chameleon boot file. With ATI cards, try the different framebuffer options with the AtiConfig= boot parameter. On nVidia, you can also look into using the NVEnabler kext. Just don’t do them all at once and keep track of each change and roll it back or you will find yourself re-installing OSX more often than you might like.
If you stick to it, you can have a very solid and reliable Hackintosh that you built yourself. If you are successful, help others out and add your hardware configuration to one of the compatibility lists. There is an amazing community of people out there working together to make projects like this possible. Thank you.
UniBeast - Creates a USB bootable installer of OSX Lion.
MultiBeast – Installs the Chameleon bootloader and contains useful drivers and configuration utilities to get your Hackintosh working.
Chameleon Wizard – Adds a system pref pane that allows you to configure the Chameleon boot loader, including boot options, inject EFI strings and more.
Carbon Copy Cloner - Backup your system to an external drive or another partition that can be booted and restored very easily.
Kext Utility – Utility to install kexts into your system/library/extensions folder that sets the permissions, backs up the old kexts and deletes caches for you.
TextWrangler – A free text editor useful for editing plist files.
Hardware: Asus Motherboard P7H55-M Pro
Processor: 3.21GHz Intel Core i3
Graphics: eVGA nVidia 8400GS 512MB DDR3
Ram: 8GB DDR3
HDD: WD SATA 1TB
Dual 24″ Displays at 1920×1200
OSX Lion 10.7.4
Dual Monitor Support at 1920×1200
Notes: Dual Monitors working when using VGA port for monitor 1 and monitor 2 with VGA adapter in DVI port.
1. Use UniBeast to install 10.7.4 from USB
2. Run MultiBeast 4.5.2 and install EasyBeast with the defaults.
3. Enable show all files: In terminal: “defaults write com.apple.finder AppleShowAllFiles TRUE” and then “killall Finder”.
4. Copy System/Library/Extensions/NVDANV50Hal.kext to Desktop, right click, show Package contents.
5. Edit the Info.plist (I use TextWrangler).
6. Add 0x10c310de&0xffe0ffff to the list of devices in IOPCIPrimaryMatch (Put it in the correct order, for me it was last in the list).
7. Install your modified Kext with Kext Utility.
8. Update /Extra/org.chameleon.Boot.plist with GraphicsEnabler=no and reboot.
9. Make sure you are using the VGA port or the DVI port and a VGA adapter, or both for dual display to work.
Use MultiBeast and add Audio-Universal-VoodooHDA 0.2.1
Use MultiBeast and add Network-Lnx2Mac’s RealtekRTL81x Ethernet v0.0.90
Post Install Notes:
The App Store would not work for me until I modified /Extra/org.chameleon.Boot.plist with PCIRootUID=0.
Since my original post, I decided to go ahead and replace my video card. For about $100, I purchased a Sapphire 11192-12-20G Radeon HD 6670 1GB Ddr3 PCI-Express Video Card, which I am happy to say works perfectly out of the box with GraphicsEnabler=false. This was a nice speed boost from the 8400GS I purchased as a getting started card. This card also looks promising with Mountain Lion.
To round out the system, I made my WD drive a secondary drive and put a Mushkin SATA III Chronos drive in as a boot drive. I used CCC to move everything over and it’s working fantastic.