Following the success of my last Mac OS X build running on a Dell Inspiron 1525 HackBook, I’ve decided to build a super budget Hackintosh desktop for light gaming, design, and media. I originally built this system last year, and I will be continuously upgrading its hardware and software every 6 to 12 months. You can now find a lot of my original parts used/refurbished for even cheaper!
- CPU: Intel Pentium G840 2.8GHz Dual Core LGA1155 (Sandy Bridge), $50-$80
- Motherboard: GIGABYTE H61M-S2-B3 (i3, i5, i7 supported), $69
- RAM: 2x4GB (8GB) Centon DDR3-1333 (16GB max), $65-$80
- HDD: 320GB Seagate SATA, 250GB Western Digital SATA, $90
- Graphics: EVGA GeForce 210 1GB DDR3, $35
- Case: Thermaltake V3 Black Edition, $35
- Networking: Atheros AR8151 Ethernet Onboard
- Wireless: D-Link BWA125NA USB Dongle, $35
- Bluetooth: IOGEAR Bluetooth USB Dongle, $10
- Keyboard: Macally White USB Slim Keyboard, $19
- Mouse: Generic USB Mouse (don’t use PS/2)
- Audio: VIA (Intel HDA) Realtek Onboard
* Prices are estimated.
I built this machine just to run Mac OS X. The onboard video is supported (HD3000) depending on your CPU type. The CPU I bought is on the lower end of the Intel spectrum which means I only receive HD2XXX without an actual graphics card installed; this wasn’t a big deal because I didn’t plan on using onboard graphics. You can if you’re looking to save money or have issues with your primary card. Other (newer) CPUs will receive working HD3000 for those who do not want to purchase a graphics card. It’s not amazing but it works in a pinch. Everything functions normally on the latest version of Mac OS X 10.10 (Yosemite) Developer Preview as I write this and also works in Mavericks 10.9 which I am currently dual-booting using another hard drive. My Geekbench score is between 5,400 and 5,700 on Mavericks and a little bit lower on Yosemite, however; it felt much faster running 10.10 verses 10.9, even after I restored my software: Adobe CC, Microsoft Office, and so forth. I will run some more benchmarking tests later, though since I plan on doing an upgrade soon, I am not too concerned about my current performance.
I originally installed Mavericks using a USB thumb drive (16GB Centron). It took a couple minutes because at the time I did not have anything faster than 2.0. I copied the image to my thumb drive with Disk Utility and then installed the latest version of Chameleon boot loader. For Yosemite, I migrated both Mavericks and Yosemite to Clover v2k r2692 or newer — at the time, Chameleon was not updated or tested for 10.10. It took a little getting used to but now I love it. The Developer Preview image floating around online for download is the same one released from Apple and works on both hacks and real Macs. Let’s get started!
Step 1: Booting The Installer
This guide assumes you already have Mac OS X downloaded. Open Finder and go to “[highlight]Install Yosemite 10.10.app[/highlight]” and right click it. Select show package contents from the menu and from there navigate to Contents/SharedSupport and mount InstallESD.dmg.
Open Terminal and type [highlight]open “/Volumes/OS X Install ESD/BaseSystem.dmg”[/highlight]
Open Disk Utility and restore “[highlight]Base System[/highlight]” to the USB thumb drive (or whatever drive you’re using that is formatted MBR). After Disk Utility finishes, unmount Base System.
Navigate to [highlight]System/Installation[/highlight] on the USB drive and delete the Packages shortcut. Go back to the OS X Install ESD that is still mounted and copy the Packages folder to [highlight]System/Installation[/highlight] (where we deleted the shortcut). We’re replacing the shortcut with the real files.
Open Terminal and type:
[highlight]cp “/Volumes/OS X Install ESD/BaseSystem.dmg” /Volumes/USB_DRIVE_NAME/ ; cp “/Volumes/OS X Install ESD/BaseSystem.chunklist” /Volumes/USB_DRIVE_NAME/[/highlight]
These files may be hidden from Finder, so it’s best to stick to Terminal.
Now it’s time to copy your kexts/extensions that you need to boot your system to /System/Library/Extensions/. For my current build, I needed:
- FakeSMC.kext (Emulation)
- NullCPUPowerManagement.kext (Replacement)
- VoodooHDA.kext (Onboard Audio)
- AtherosL1cEthernet.kext (Onboard Ethernet 10/100Mbit)
You can search for updated versions of these kexts, or download my kexts package here. I have included an updated version of FakeSMC.kext, along with some backup kexts and HWMonitor. When you work with kexts, be sure the permissions are correct by using chmod -R775 *.kext and chown -R root:wheel *.kext.
[quote]I recommend placing all your kexts in a “kexts” folder on the drive, so you always have them handy! Keep them safe for future updates.[/quote]
If you run into error messages trying to follow these steps, there are some automated or semi-automated tools that can help you create a bootable USB installer for Yosemite. The same programs can also help you with previous versions, such as Mavericks and Mountain Lion. Google is your friend on this one.
Boot from your USB installer stick and if you have problems getting it to boot, try manually selecting the drive in your BIOS options. For me, that’s done by pressing F12 and then selecting the USB CENTRON from my boot options. Once in Clover, use your arrow keys and work your way to the options (below the hard drive icon). Set your boot args to “[highlight]kext-dev-mode =1 -s -v[/highlight]” and then hit return. Highlight your USB installer drive and press the space bar to access another menu, then select single user mode.
[quote]Now you should be in console mode at a shell prompt. If not, double check your steps before continuing.[/quote]
At the command prompt, type the following commands:
- fsck -fy
- mount -uw /
- chmod -R 755 /kexts/FakeSMC.kext
- chown -R root:wheel /kexts/FakeSMC.kext
- cp -R /kexts/FakeSMC.kext /System/Library/Extensions/
- kextcache -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions
- kextload -v /System/Library/Extensions/FakeSMC.kext
This mounts the file system, double checks your kext permissions, copies and loads FakeSMC.kext, and exits you out of single user mode. Now the installation GUI can boot! The hard part is over with. Run the installer as normal and follow the on-screen prompts. Depending on your hard drive situation, you can open Disk Utility from the installer and re-partition your drives accordingly. Be sure to have a generous portion of drive space for Mac OS X Yosemite.
Step 2: Booting The Desktop
[quote]After installation is complete, reboot the system and go back into the installer — but don’t re-install anything![/quote]
Open up Terminal and type: [highlight]cp -R /Volumes/Yosemite/kexts/FakeSMC.kext /System/Library/Extensions/[/highlight] (we want to copy FakeSMC.kext to the bootable S/E/L directory, just like we did to get the installer running. This will allow your system to boot. You can double check the permissions if you wish (just like we did above). Now restart your system again.
Go back into Clover boot loader, back to the options section that we were in previously. Add the following boot args: [highlight]kext-dev-mode=1 GraphicsEnabler=yes -v[/highlight]
Now you should see the welcome screen where you’re asked to fill out your information, such as creating your user account, password, and so forth. Because we don’t have the right kexts installed yet, you won’t be online. Click through the windows, selecting to connect to the net at another time. After this is finished, you should be sitting at your Mac OS X desktop! Now we need to get a few things working from here.
Step 3: Fixing Interfaces
I recommend grabbing a working computer and downloading a copy of Kext Utility or similar kext helper app to make installing kexts a little easier. You can do it manually as we have done in the past, but there are awesome tools available to make it go faster. You’ll want to place your kexts in [highlight]/System/Library/Extensions/[/highlight]
VoodooHDA.kext (remove AppleHDA.kext)
iCloud/App Store/iMessage Fix
Delete the following files after installing networking and making a successful connection to the net (to ensure it works properly). Your ethernet card will be listed as en1 — we need to change it to en0 for increased functionality with Apple’s services:
Reboot and you should now notice your ethernet has changed to en0 and iCloud, etc. will not give you strange errors when you try to log in. Go back to Disk Utility and verify/repair your permissions to ensure everything is where it should be for ownership, and you’re good to go.
Tips & The Future
There are some other boot strings I’ve used in the past to boot this system on older or different software. If you experience strange reboots or kernel panics, try these boot flags in addition to what you’re already using:
If you are receiving kernel panics or strange reboots, remove AppleTyMCEDriver.kext from S/L/E.
It’s best to work with and build the installer from an existing Mac — you can use virtualization (VMWare, VirtualBox, etc.) to boot any recent version of Mac OS X to start with, even if you’re coming from a Windows or Linux system.
I have a couple upgrades planned sooner than later. These include replacing my older SATA drives with SSD, and bumping the graphics up to a Gigabyte GeForce GTX 660 OC 2GB GDDR5 or better. I would also like to move from Dual Core to Quad Core with the addition of an Intel i5 or i7 processor. Currently, the CPU is shown as an i5 (Yoesmite) or i7 (Mavericks) but that is not correct — the cosmetics of the About This Mac window are easily edited and I’ve yet to do this at the time of writing this guide.
Although you have working ethernet for a wired connection, I had trouble getting this to work when I first bought the hardware, so I also purchased my USB wireless dongle. The drivers are included in my kext pack. To install, put RT2870USBWirelessDriver.kext in /System/Library/Extensions/, copy RalinkAirport to Applications, and install RalinkWirelessUtility.prefPane. Don’t forget to fix permissions and rebuild the kextcache (kextcache -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions), then reboot.
Let me know if you have any questions, suggestions, or tips by adding a comment below.