- Jun 18, 2013
- INTEL NUC DC3217IYE
- Classic Mac
- Mobile Phone
nab’s INTEL NUC DC3217IYE - i3-3217U (Ethernet edition)Components
2015-03-04 this post is out of date, see post 92 for the clover install info.
Intel NUC DC3217IYE (ethernet version)
memory: 8GB (2x4GB) Corsair Vengeance
SSD: 256GB Plextor PX-256M5M mSATA SSD
monitor: 23" AOC I2367FH
WiFi/Bluetooth: Dell dw1702 combined WiFi/Ethernet (note this is a re-branded Atheros AR9285 wifi and AR3011ƒ Bluetooth chip on a single half height ePCI card.
.. I ordered my parts from scan.co.uk - total cost £590 including delivery.
Apple Mac OS X version 10.8.4 Mountain Lion
Apple Magic Mouse
Apple wireless keyboard
UPDATE: Yosemite install with Clover. See post 92.
First of all, many thanks to syngatesfan200 - without his guide I would have been lost: http://www.tonymacx86.com/user-builds/86370-success-syngatesfan200s-intel-nuc-dc3217by-thunderbolt-edition-non-thunderbolt-edition.html
I also found the following very helpful in providing a bit of background/context: http://lifehacker.com/the-always-up-to-date-guide-to-building-a-hackintosh-o-5841604
..and there is a lot of good information generously provided by the contributors to tonymacx86.com.
This my first hackintosh, although I have a reasonable amount of experience with linux and unix machines. If you are in the same boat I hope you will find this rather long winded account useful.
TAKE NOTE! I made lots of mistakes when doing this install, all of which were avoidable if only I’d followed the instructions carefully.
... with that in mind, the below is not a guide so much as a list of things I wish I’d known before I started.
1. Hardware set-up
2. Prepare bootable USB memory stick (unibeast)
3. Install Mac OS X
4. Post Install Steps
5. What doesn’t work
6. Was it worth it?
1. Hardware set-up
Things to do
* insert the bits
* upgrade the firmware (I upgraded to the latest version as of June -v42)
* set the graphics memory in your Bios to 128m (else your system won’t start - I don’t know why).
The fan noise was louder than I expected (it is only 2 feet away from me on the desk, mind) .
Apparently the minimum fan speed is now higher than it was in the original bios to account for overheating SSDs. As I like to live on the edge, I have set mine to ‘quiet’ mode in the bios and the fan is now a barely audible whir, only detectable when you put your ear very close. Of course it gets louder if you do CPU intensive tasks (playing minecraft causes it to go bonkers).
The large energy rating sticker plastered to the stand of my new AOC monitor was glued down with the stickiest substance known to mankind and took about 50 minutes to remove (I am not kidding). I actually read about this in a user review of this monitor and assumed they were exaggerating (which they weren’t).
The NUC see comes with a power block but no kettle lead - you need a ‘cloverleaf’ type if you plan on plugging it into the electric.
Take a peek at the nuc fold out instructions before trying to forcefully shove your memory in at the wrong angle.
Do not ignore the fact that the very first thing syngatesfan200 says is that you must upgrade the bios and then expect everything to work properly (it won’t).
2. Prepare bootable USB memory stick (unibeast)
Things to do
you have to install UniBeast (an installer app from tonymac) - note you will need a retail copy of Mountain Lion. I had not realize that Mac OS is licensed as a personal copy (so you do not need to buy another copy if you have already done so - as I had previously when upgrading my iMac. Not realizing this I tried to buy another copy thru the app store only to be told I already own it, which was a pleasant surprise)
You can download the installer and find very clear instructions in the guide section of tonymac’s site. The software is very simple - you will use it to create a bootable USB memory stick - you may need to go into your bios setting to allow your PC to boot from it.
Note you may have trouble booting OS X at some point when trying to set up your computer - there are a couple of boot parameters that will help (-v verbose and -x which loads only basic drivers). The former will give you a clue about where the boot halts, and sometimes -x will allow the boot to proceed even if the hardware is not fully recognized.
For the NUC there was no problem booting from the USB and getting to the installer
Annoyances - none
v32 of the NUC motherboard bios contains a bug that means the system won’t start if you try and boot from a USB with the option to also boot from the network turned on and no Ethernet connection. Of course if you were following the syngatesfan200 instructions properly you would have upgraded the bios at the start and therefore not have spent 30 minutes googling for solutions and worrying that you had a duff motherboard, as I did.
Also avoid spending avoid 10 minutes researching how to supply boot parameters on start-up - simply press any key at the boot device selection screen and then type them in.3. Install Mac OS X
3. Install Mac OS X
Things to do
Once you boot from the USB you can partition and format the SSD in your NUC as per the instructions you can then follow the install wizard to install the OS to the internal disk. Then you can restart - you need to leave the USB memory stick in since we are going to sort out the boot loader on your internal storage at a later stage - use UniBeast to start OS X from the new installation on the SSD.
Notes: if you have trouble booting try using safe mode (-x) if you can get the OS to boot then you will be able to log in to resolve the issues
If you still can’t get to the UI then you can still mount the filesystem on the SSD (mount -uv /) from the terminal app available on the installer and make changes from there
Annoyances - none
If you want to avoid repeated re-installs and halted boots do not attempt to make some of the post-install configuration steps (below) to the filesystem on the USB memory stick. The idea is to just use UniBeast to get you to a bootable install , with minimal support for your hardware, and then do the tweaks to get all your hardware components properly recognized later. With hindsight, I realize this is why they are called ‘post-install’ steps.
4. Post-install steps - introduction
It is at this stage that I had the most problems understanding what was going on - I still don’t understand a lot of it but what I gleaned is below.
Things to do
Use MultiBeast and chimera wizard to do the main post install work, which is all about configuring the OS to support your specific hardware.
MultiBeast is again by tonymacx86 and - amongst other things - allows the handy install of various common ‘kext’ files (see explanation below), and installation of a custom bootoader (Chameleon) that is designed to consult a number of customizable configuration files (you will be editing these later).
There is a companion program called Chameleon Wizard that can be used to simplify some of the config steps not handled in multibeast.
Note you will also read about the ‘Chimera’ bootloader - Chameleon is a stable branch of this open source project tested by tonymac86 and co.
The aforementioned programs make it a doddle to install the software. In fact you don’t really need to understand what is going on, just follow syngatesfan200’s screenshots for the desired config and follow the wizard. Note you *must* install Intel -hnak's AppleIntelIE1000e, Patched AppleIntelCPUPowerManagement, FakeSMC and the Chimera bootloader.
for completeness, I should say this is not the only way to install OS X on a PC, and if you Google for alternatives you won’t be many steps away from controversy of the normal who-said-what-to-whom type. Suffice to say the tonymac software certainly helps get going without having to first dive into the bewildering complexity of making PCs work with OS X, and for that I am very grateful.
If like me you are curios about what is happening, then here is what I found out about the main configuration files (there is much more information in the tonymac86 wiki):
i. Kext files are kernel extensions that are loaded when the computer boots - sometimes they are additional code specifically for hackintoshes, and sometimes they are modified versions of existing Mac kexts. In any case they are all kernel changes that add support for hardware that Apple do not put in their machines. Note the OS X UI shows these as single files, but actually they are directories and can be navigated from the command line - sometimes they contain config files (e.g *.plist) that need to be amended by hand to reflect your specific set-up.
The kext files live in:
NOTE this is frequently abbreviated to /S/L/E
MultiBeast comes prepackaged with various common kexts that you have the option to install, and there is another program called kextbeast that installs individual kexts that you have sourced (you can also install them by hand if you pay attention to permissions, and force a rebuild of the cached versions of these files by touching /S/L/E)
ii. DSDT.aml - there is a lot of information about this on the internet - and you don’t really need to understand it to install your NUC (you can simply copy the syngatesfan200 version).
In a nutshell, there is an open standard called ACPI to allow device configuration and power management by the OS. Part of the standard defines ‘tables’ that provide the interface between complaint OSs and the firmware on the system, and one of the tables is called ‘DSDT’.
After running MultiBeast you can put custom versions of the configuration file in /Extra - the boot loader can then be told to consult the custom version instead of the default version that would otherwise be retrieved from the bios on the motherboard (see below for information about extracting and modifying your own DSDT)
iii. smbios.plist - I was not very successful when trying to find out exactly what this file does, but it seemsproide some information about the profile of the machine that changes how the hardware is exposed to the operating system. Having said that, the only notable change in behaviour I could cause by amending the file was the enabling of SpeedStep on the CPU (see below). As with the DSDT, MultiBeast allows you to keep a custom a copy of this file in /Extra. MultiBeast also allows you to specify certain values (e.g ‘system definition’) for this file when it is first created, although you can of course edit it later.
iv. org.chameleon.Boot.plist is a file that is used to tell the bootloader what to do after the machine starts up (e.g use specific boot parameters, or use an alternative kernel). Chameleon Wizard is a handy tool for editing this file, and of course you can do it yourself if you wish (the config file are generally xml and can be edited with your favourite editor)
To get the NUC fully configured you have to modify the DSTD.aml, smbios.plist , org.chameleon.Boot.plist and install some kexts.
Note also that much of the fiddling is needed to get HDMI audio , bluetooth and wireless working (the later will vary according to your hardware choice - the below is just about the DW1702). So depending on your requirements, you may not have as much tweaking to do.
TOP TIP - this next stage will use several tools and patches. You can save a lot of faffing around by putting them on your USB memory stick before getting going.
4a. DSTD.aml creation
We need a custom DSDT.aml file to enable html audio ( that way we can use the horrible tinny speakers in our monitors).
Things to do
The easy way - use the DSDT.aml provided by syngatesfan200
The harder way - extract and modify your own:
To start with you need to extract a clean DSDT from your bios - luckily there is a tool to do this (MaciASL). You want to do this first before running multibeast, since we want it ready to put in the /Extra directory. In fact MultiBeast will check your desktop directory for DSDT.aml and copy it in for you if you like.
A few things to note about DSTD.aml files
- they are compiled (the syntax is similar to C) - the disassembled versions are normally stored as .dsl and can be edited and patched like normal source code.
- The file in /Extra must be the compiled .aml file.
- MaciASL will compile, patch and disassemble files.
When you first compile the 'clean' DSDT extracted from your system you may get warnings and errors - why? who knows - a mixture of lazy programmers and slightly different implementations between Windows and OSX would be my guess
Anyhow, you can do what I did and fix up the file by hand or instead take a look at this link:
toleda has written a couple of patches that we can use to amend our DSDT and provides instructions on what to do. Don’t be put off by the terse nature of the instructions as they are very clear and precise. To make it as convenient as possible toleda has stored the patches on github (copy the NUC url from his post):
...and this link can be included as a source for MaciASL (see preferences)
I did start to explore what the html audio patch actually does, but trying to get enough background info looked like a major undertaking, so I gave up.
HDMI audio volume can only be controlled by the volume buttons/remote for the device the speakers are in (in my case these consist of two tiny, impossible to find , buttons on the back of my monitor). This is true on the Mac Mini also.
toleda has links to hdmi audio patches for UEFI enabled motherboards. You can save yourself a lot of aggro by not trying to get these patches to work unless you are actually booting in UEFI mode . What I had not understood was that the NUC supports both UEFI and bios boot modes, but Chameleon/Chimera only supports booting via the bios. There is a boot loader that will handle UEFI booting, but it is not supported on this forum (just Google if you are interested).
Note there are references to the BIOS release version in the DSDT file, which suggests they can be specific to particular versions, but in practice when I compared syngatesfan200’s version (based on v40) and mine (v42) the only difference was the references to the version numbers and both versions worked fine.
4b. Run MultiBeast to install boot loader and common kexts
Things to do
Run MultiBeast with the options shown by syngatesfan200:
This will install the bootloader, create /Extra and install the selected kexts (to allow complete support for Ethernet, cpu power management and TRIM) . It will also specify the ‘system profile’ in smbios.plist (recommended macmini5,1 to enable SpeeSstep - I tried both macmini 6,1 and 6,2 and SpeedStep was not enabled, but I could not find any other differences in behavior)
After you are done you can copy your modified DSTD.aml into /Extra (if you left a copy on your desktop dir, multibeast will do this for you).
4b. Chimera Wizard config
Things to do
Use the Wizard to put these changes in org.chamelon.Boot.plist
- Quiet Boot in Boot Flags (slide the cursor left)
- Select the Default Partition
- In Graphics Mode, choose the native resolution of the screen
- Darkwake check = 0
- Select Built-in Ethernet
- PCIroot=1 (bottom right corner now)
- specify the location of the custom DSTD file ,e.g /Extra/DSTD.aml
Note that I was not able to wake my system with ‘darkwake=0’, but as per syngatesfan200 darkwake=10 works fine. Since this is not an option supported by the wizard you will have to edit /Extra/org.chamelon.Boot.plist with your favorite editor.
4c. Frame buffer fix
after restarting there was a problem with the graphics - the screen flickered very noticeably when refreshing. As per syngatesfan200 there is a fix for this already available and the instructions are included with his downloads.
In summary you are going to run a perl string replacement on the binary file included in the kext directory:
I am afraid that other than finding out that this kext is involved with controlling the monitor, I haven’t got the faintest idea what this fix does, how it was discovered (or by whom), or why it needed after the DSDT patch.
4d. WiFi Bluetooth kext installs.
things to do
I got a Dell DW1702 from ebay, it is a rebranded version of this:
.. and I got it because syngatesfan200 and others reported that this was a half size pci card with both WiFi and Bluetooth chips that works in OS X (and it does). If you look at the specs you will see it combines an AR9285 11n wifi card AR3011ƒ single-chip Bluetooth which are installed in a number of laptops popular with hackintoshers
This is great for a NUC which, after the SSD is installed, only has one spare half height slot, and a measly 3 usb ports for adding dongles.
By all accounts getting Bluetooth to work without standard mac hardware can be a bit of a nightmare, but there is quite a lot of information about this particular card if you hunt around.
There are two things to do:
The first is to install IOath3kfrmwr.kext that will load the firmware for this card after each cold boot (the controller chip for this card does not have any flash memory to store the firmware so it needs to be loaded by the OS - see posts by RehabMan and Macman if you are interested in how they figured out this permanent fix)
I had a lot of difficulties getting this to work, as I was convinced it was the cause of a problem with my Bluetooth Jambox speaker although with hindsight I suspect that I was trying to resolve an unrelated issue (see buffoonery below), anyhow what I ended up doing was finding the latest copy of the code and recompiling the kext:
I suspect the version supplied with syngatesfan200 is identical, but did not go back and check.
If you are interested in trying to get this to work with a differently branded version of the chip you can see the discussion here:
The second and final step is to install IOBluetoothFamily.kext and the latest AirPortAtheros40.kext
As is well documented in the various threads about this card the so called ‘mighty mouse’ does not work properly - actually it seems to connect reliably, but sometimes is laggy and various multi-finger gestures cause it to immediately disconnect. I have looked for ways to disable these gestures but could not find out how. The consensus seems to be this problem with the Atheros card and the apple mouse is not fixable. Unfortunately these issues make them basically unusable in this Bluetooth set-up, so plan on getting another mouse if you have a MM.
on a few occasions the sound quality from my Jambox speaker was dreadful after it was turned on - initially I was able to fix it by various combinations of removing the Bluetooth connection, restarting and reconnecting. Subsequently I found out that I could fix it by changing the frequency in the format section of Audio Midi Setup. It isn't entirely clear what happens, but it is as if something causes it to flick to the wrong frequency sometimes. Unfortunately I did not use the speaker on my old imac, so can't tell if this is to do with my current set-up or just some pre-existing Bluetooth/audio weirdness.
Don’t spend 20 minutes downloading Xcode just to compile the firmware loader kext above - RehabMan already has precompiled versions in Google code (there is a link from github).
Don’t spend 20 minutes trying to debug the poor quality sound after your children play the charmingly entitled Kill Everybody by Skrillex - it actually sounds like that (I really did this, btw)
5 what doesn’t work
With the exception of the Mighty Mouse, everything works exactly as it did on my (problem free) iMac - Bluetooth , wake from sleep (Bluetooth/Ethernet), graphics, airplay, audio etc. My NAS based Time Machine even works without any problems.
6 was it worth it?
Let’s face it, for very little extra money I could have got a Mac Mini with a better CPU that would have 'just worked' and would not need the continuing commitment in fiddling time that keeping the NUC working will no doubt require.
Having said that, it was good fun to do; it is tiny and practically silent; and in day-to-day use is considerably faster than my (2009) iMac for just about everything I use it for.
So, would I do it again? Yes, I would
Last edited by a moderator: