Skip to main content

Creating a Hackintosh

I've always wanted to create a "Hackintosh", i.e. a standard PC that runs OS X. My PC is over 5 years old so it was time for a refresh. I figured this was the best time to give the Hackintosh a go.

Hardware


  • CPU: Intel Quad Core i7 4790 3.6 Ghz
  • Motherboard: GIGABYTE GA-Z97-HD3
    • Audio: ALC 887
    • Network: Realtek 8111F-VL
  • Network Card: 4 Antennas 802.11ac WiFi BCM94360CD Wireless Network Card
  • Graphics Card: nVidia 750 GTX
  • Memory: Corsair Vengeance DDR3-1600 32 GB (4x8 GB)
  • Hard Drive: Seagate ST3000DM001 3 TB SATA3 7200 rpm
  • DVD: Samsung SH-224DB 24X


BIOS Changes


The first step was to change the BIOS settings to support OS X. Disabling VT-d is the only setting that is clearly required; the others are questionable but were done by others so I thought they were worth trying.

F7 to load Optimized Defaults
  • M.I.T.
    • Advanced Frequency Settings
      • Extreme Memory Profile (X.M.P.): Enabled
    • Miscellaneous Settings
      • PCIe Slot Configuration: Gen3
  • BIOS Features
    • Intel Virtualization Technology: Disabled
    • VT-d: Disabled
  • Peripherals
    • XHCI Mode: Auto
    • XHCI Hand-off: Enabled
    • EHCI Hand-off: Enabled


Installing Clover


Initially I installed Unibeast onto a USB drive to run the OS X Installer but couldn't get past some errors. In retrospect, the errors were caused by the 750 GTX card.

I decided to install Clover because it would give me more control over the installation process. I followed Steps 1 and 2 to download OS X Yosemite and create the bootable USB drive. I won't repeat the steps here because I followed them exactly. I chose RealtekRTL81xx.kext as the network card driver. I chose config.plist-Standard.zip as my minimal configuration.

When I booted the Clover USB drive I added these settings to the boot options:
-v nv_disable=1

This had the effect of disabling the video card and going into verbose mode so I could see the boot messages. Clover will hang and reboot unless you disable the Nvidia driver.

I then followed the instructions in Step 3 to use Disk Utility to create a partition on the hard drive then install OS X Yosemite on the drive.

When the install finished, it restarted the machine. Since the next step automatically runs stage 2 of the install process (create the recovery partition and complete the install), it was important to again add "nv_disable=1" to the boot options during this restart. Otherwise the boot would fail and the installer would not go to stage 2, requiring me to start over.

Post-Installation


I followed Step 4 in reformatting the EFI partition to FAT32 and installing Clover on the hard drive so it could boot without the USB drive. I added RealtekRTL81xx.kext and FakeSMC.kext to /Volumes/EFI/EFI/Clover/kexts/10.10.

I also followed the instructions in running Clover Configurator and imessage_debug.zip to generate a new config.plist to install in /Volumes/EFI/EFI/Clover.

Note that I removed nv_disable=1 and added nvda_drv=1 to the boot options because of the next step.

Installing Video and Audio Drivers


I installed this Nvidia experimental driver to get the 750 GTX working. Note that it only works with 10.10.0; I had previously installed 10.10.1 and had to start over all again to get this driver installed. Once you install this driver then you must activate it with the nvda_drv=1 boot option.

There is now an Nvidia driver for 10.10.1 but I'm not sure if I'm ready to move to it yet. There are reports that the DVI port doesn't work yet, which is what I use. This comment may come in handy.

To get sound working, I used this audio guide to point me to the right place. I wound up pursuing the cloverALC/Clover option. I downloaded audio_cloverALC-100.command.zip from this site. After unzipping the file, I ran it and answered "Yes" to all the questions.

To get the network card working, I downloaded the .zip file from RehabMan's fork of Mieze's Realtek RTL8111 Network Driver.

Comments

Popular posts from this blog

Building a Hadoop cluster

I've recently had to build a Hadoop cluster for a class in information retrieval . My final project involved building a Hadoop cluster. Here are some of my notes on configuring the nodes in the cluster. These links on configuring a single node cluster and multi node cluster were the most helpful. I downloaded the latest Hadoop distribution then moved it into /hadoop. I had problems with this latest distribution (v.21) so I used v.20 instead. Here are the configuration files I changed: core-site.xml: fs.default.name hdfs://master:9000 hadoop.tmp.dir /hadoop/tmp A base for other temporary directories. hadoop-env.sh: # Variables required by Mahout export HADOOP_HOME=/hadoop export HADOOP_CONF_DIR=/hadoop/conf export MAHOUT_HOME=/Users/rpark/mahout PATH=/hadoop/bin:/Users/rpark/mahout/bin:$PATH # The java implementation to use. Required. export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home hdfs-site

Working with VMware vShield REST API in perl

Here is an overview of how to use perl code to work with VMware's vShield API. vShield App and Edge are two security products offered by VMware. vShield Edge has a broad range of functionality such as firewall, VPN, load balancing, NAT, and DHCP. vShield App is a NIC-level firewall for virtual machines. We'll focus today on how to use the API to programatically make firewall rule changes. Here are some of the things you can do with the API: List the current firewall ruleset Add new rules Get a list of past firewall revisions Revert back to a previous ruleset revision vShield API documentation is available here . Before we get into the API itself, let's look at what the firewall ruleset looks like. It's formatted as XML: 1.1.1.1/32 10.1.1.1/32 datacenter-2 ANY 1023 High 1 ANY < Application type="UNICAST">LDAP over SSL 636 TCP ALLOW deny 1020 Low 3 ANY IMAP 143 TCP < Action>ALLOW false Here are so

Connecting to SQL Server from OS X perl

I've been spending my coding time in the offhours working on Perl instead of Ruby. My coding time in general has been very limited, which is part of the reason for the length of time between updates. :) My latest project is to pull data out of a Microsoft SQL Server database for analysis. I'm using perl for various reasons: I need a crossplatform environment, and I need certain libraries that only work on perl. Some of the target users for my code run on Windows. I know that Ruby runs on Windows but it's not the platform of choice for Ruby developers. The vast majority seem to develop either on OS X or Linux. So Ruby on Windows isn't at the maturity that ActiveState perl is on Windows. In fact, I don't even run native perl anymore on my MacBook Pro. I've switched over to ActiveState perl because I don't need to compile anything every time I want to install new CPAN libraries. And because it's ActiveState, I'm that much more confident it will w