Contribute
Register

[Guide] Intel Skylake NUC6 (and Skull Canyon) using Clover UEFI (NUC6i5SYK, NUC6i7KYK, etc)

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Overview

The purpose of this guide is to provide a step-by-step guide to install Mojave (or High Sierra/Sierra/El Capitan) on the Intel NUC6 series NUC mini computers. My NUC6 is the NUC6i5SYK, although I expect the guide will work on other similar models (any NUC6).

This guide also works for the Skull Canyon NUC6, NUC6i7KYK. The Skull Canyon model has Iris Pro Graphics, and ALC233 instead of ALC283 audio. It has a slightly different USB controller as well. No matter, all these differences are accounted for in the guide.

I have added the Samsung SM951 PCIe x4 AHCI SSD.

This guide does not use Unibeast nor Multibeast, but uses automated scripts to handle most of the post-installation details.


Some notes on the NUC6i5SYK

The unit is very similar to the Broadwell NUC5i5MYHE, except this one has no place for a 2.5" HDD/SSD (there are other models that do). The board does have the SATA power/data ports, but there is not way to house such a device in the small case. I did use the SATA port in order to do some partition cloning (with the case top open).

The BIOS on this NUC is very similar to the Broadwell NUC, although some of the options have changed. No need to disable the non-existent serial port as was needed with the Broadwell unit.

Unlike the Broadwell NUC, this NUC comes with MSR 0xE2 locked and there is no option in the BIOS to unlock it. This caught me by surprise and it took a while to realize that I needed KernelPm=true.

The NUC6i5SYK has DP and an HDMI port. I would much rather have dual DP instead of DP+HDMI, but... The graphics are Iris 540.

Unfortunately, like all Skylake NUCs, this unit has soldered WiFi, so no possibility to install a compatible WiFi module. USB WiFi is just too unreliable and the user interface is not good.

If you have an NVMe SSD, details on creating HackrNVMeFamily-*.kext here (for 10.12 or earlier, 10.13 and later NVMe is mostly native): https://github.com/RehabMan/patch-nvme


Preliminary ComputeStick

This guide also has preliminary support for the Skylake ComputeStick. I tested STCK2mv64CC. I used an external USB3 SSD as an install target as the internal eMCC is not supported. And an external USB Ethernet (supported by macOS) device. NullEthernet.kext is used to access the Mac App Store.

Predictably, the stick uses config_install_stick6.plist (pre-install), config_stick6.plist (post-install), and 'make install_stick6'.

During installation, use a USB hub connected to the USB3 port on the stick because the two USB3 ports on the power block will not work until post-installation procedures are complete. Lilu.kext and IntelGraphicsFixup.kext are required to get a signal to the monitor. If you don't use those kexts during installation, you may need to use an invalid ig-platform-id (0x12345678).


What you need



BIOS settings

On my NUC6i5SYK, I have the latest BIOS (0044) installed. I didn't try older versions.

The boot menu and BIOS setup can be accessed by mashing the F2 key during BIOS startup. After the main screen comes up choose "Advanced". That gets you to the main BIOS setup screens.

To start, choose "Load Defaults" (choose from the menu or press F9 in the BIOS setup).

Then change:
- Power->Secondary Power Settings, "Wake on LAN from S4/S5", set to "Stay Off"

These settings are important but are already set as needed by "Load Defaults"
  • Devices->Video, "IGD Minimum Memory" set to 64mb (I found both 64mb and 128mb work fine)
  • Devices->Video, "IGD Aperture Size" set to 256mb (I found both 128mb and 256mb work fine)
  • Boot->Secure Boot, "Secure Boot" is disabled
  • Security->Security Features, "Execute Disable Bit" is enabled.
  • Security->Security Features, "VT-d" is disabled (since this guide uses dart=0, can also be enabled)

You may wish to tweak the settings to suit your usage. For example, if you're not using the SATA port or a SATA M.2 SSD, you can disable the SATA controller. If you are using only OS X, you might consider disabling the WiFi.

Suggested:
  • Boot->Boot Priority->Legacy Boot Priority, disable "Legacy Boot" (it will reduce confusion)
  • Boot->Boot Configuration, disable "Network Boot"


Preparing USB and initial Installation

This guide assumes you're starting with nothing on your HDD/SSD (or nothing important). Make sure you backup your important files before starting.

You can also leave Windows intact, but it can get tricky. Read here for more information: http://www.tonymacx86.com/multi-booting/133940-mavericks-windows-8-same-drive-without-erasing.html

This guide for creating USB and installing using Clover UEFI works well: http://www.tonymacx86.com/el-capitan-laptop-support/148093-guide-booting-os-x-installer-laptops-clover.html

Special notes:

- This guide requires Clover v4658 or later.

- Definitely copy IntelMausiEthernet.kext to Clover/kexts/Other as having network support during post-install is not only helpful, but the rest of this guide depends on it.

- GenericUSBXHCI.kext is not necessary. Do not use it.

- You do not need VoodooPS2Controller.kext as it is laptop specific.

- If you have HD515/HD520/HD530 on 10.12.5+, you may need to add Lilu.kext and WhateverGreen.kext

- Use the 'createinstallmedia' approach. It works well, and there is little chance for pilot error. This method also gives you an OS X recovery partition.

- Use the config_install_nuc6.plist (non-Skull Canyon) or config_install_nuc6_sc.plist (Skull Canyon) linked by this post instead of the laptop specific config.plist files linked by the guide. Make sure you copy it to EFI/Clover/config.plist (after installing Clover). Clover will not read a file named config_install_nuc6.plist.

Special notes for the NUC6i7KYK (Skull Canyon):

- Use the HDMI connection for installation. The DP port will work only after all post-installation tasks are complete. If it is not possible to use the HDMI connection, you can set FakeID=0x12345678 (in Clover options) to disable the graphics drivers during installation. Or you can use ig-platform-id 0x193b0000 which has the 0306 (port 7) DP port enabled. Note that there is not a single ig-platform-id that contains both the 0105 and 0306, which is why a single value cannot be used without patching.

- If using a USB3 flash drive, you must use the USB port that is on the front left of the NUC. The other USB3 ports will work only after all post-installation tasks are complete. I suspect a USB2 flash drive will work in all ports.

Direct links for install config files:

For installation, NUC6, config_install_nuc6.plist: https://github.com/RehabMan/Intel-NUC-DSDT-Patch/raw/master/config_install_nuc6.plist

For installation, Skull Canyon, config_install_nuc6_sc.plist: https://github.com/RehabMan/Intel-NUC-DSDT-Patch/raw/master/config_install_nuc6_sc.plist


Post Installation

Install Clover UEFI as described in the guide linked by the previous section (post #2). After installing Clover, and configuring it correctly (config.plist, kexts, HFSPlus.efi, etc) you should be able to boot from the HDD/SSD.

Most everything works, but there are a few things to tidy up, drivers to install, etc. For that, we need to patch ACPI, provide a proper config.plist, and install the kexts that are required.

Since you have IntelMausiEthernet.kext already injected by Clover, you should have internet access simply by using an Ethernet cable to your router. Plug it in and make sure you have internet access before continuing.

Installation of the tools and patching is easy provided the scripts and tools at the repository: https://github.com/RehabMan/Intel-NUC-DSDT-Patch

To start, the developer tools must be installed. Run Terminal, and type:

Code:
xcode-select --install
You will be prompted to install the developer tools. Since you have internet working, you can choose to have it download and install them automatically. Do that before continuing.

After the developer tools are installed, we need to make a copy of the project on github.

In Terminal:
Code:
mkdir ~/Projects
cd ~/Projects
git clone https://github.com/RehabMan/Intel-NUC-DSDT-Patch nuc.git
Note: All commands for Terminal that follow will assume you have set the current working directory to ~/Projects/nuc.git (unless otherwise stated).

To change the current working directory in Terminal:
Code:
cd ~/Projects/nuc.git
Now it is time to install some more tools and all the kexts that are required...

In Terminal:
Code:
./download.sh
./install_downloads.sh
The download.sh script will automatically gather the latest version of all tools (patchmatic, iasl, MaciASL) and all the required kexts from bitbucket. The install_downloads.sh will automatically install them to the proper locations.

To finish the setup, we need a correctly patched ACPI.

For the NUC6, in Terminal:
Code:
make
make install_nuc6
For the NUC6 Skull Canyon, in Terminal:
Code:
make
make install_nuc6sc
The 'make' causes the patched files to be compiled (with iasl), the results placed in ./build.

Finally, 'make install_nuc6' (or 'make install_nuc6sc'), mounts the EFI partition, and copies the built files where they can be loaded by Clover (to EFI/Clover/ACPI/patched).

Note: No actual patching of DSDT/SSDT is happening here. We are simply building an add-on SSDT (SSDT-NUC*.aml) which provides the necessary changes. This is because the NUC requires only minimal patching so a full patched DSDT is not needed.


Power Management

Everything required for CPU/IGPU power management is already installed with the steps above.
There is no longer any need to use the ssdtPRgen.sh script.

Be aware that hibernation (suspend to disk or S4 sleep) is not well supported on hackintosh.

You should disable it:
Code:
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage
Always check your hibernatemode after updates and disable it. System updates tend to re-enable it, although the trick above (making sleepimage a directory) tends to help.


Final config.plist

Up to now, you've been using the same config.plist we were using for installation. After all the APCI files are in place (previous two steps), you're ready to use the final config.plist from the NUC repo.

First, mount the EFI partition:
Code:
./mount_efi.sh
For the NUC6, copy the file:
Code:
cp config_nuc6.plist /Volumes/EFI/EFI/Clover/config.plist
For the NUC6 Skull Canyon, copy the file:
Code:
cp config_nuc6_sc.plist /Volumes/EFI/EFI/Clover/config.plist
You could also copy the file using Finder.

After copying the config.plist from the repo to EFI/Clover/config.plist, you should customize the SMBIOS so you have a unique serial. You can use Clover Configurator to do this (use google to find/download it). DO NOT use Clover Configurator to edit your actual config.plist. Instead edit a "dummy" config.plist to create the SMBIOS data and then use copy/paste with a plist editor (I use Xcode) to copy the SMBIOS section into my active config.plist. Clover Configurator is too buggy and cannot be trusted with edits to your real config.plist.

Note: The config.plist in the repo is using iMac14,2. It is not a Skylake SMBIOS, but it has less problems with dual monitor than does iMac17,1. In theory, it would be possible to use another Skylake SMBIOS (when such models appear). The best match would be a Skylake Macmini, but Apple has not yet produced one as I write this guide.


Do not stop reading

Although most of the post-install tasks are done, continue to read this guide. It it has important information you should know about.

In the case of a problem, don't bother asking about with without all files requested in "Problem Reporting".


Updates to the patch repositories

From time to time, updates may become available to the NUC repository. In the event of such updates, you may want to update your copies, and re-patch ACPI with the updates.

Since you're using git, it is easy...

In Terminal:
Code:
git stash # to save any local changes you might have made
git pull
make clean
Then you can follow the instructions for updating config.plist or using 'make install_nuc6' (or 'make install_nuc6sc') to copy the updated SSDT.

Updates to kexts may happen at any time. You can download and install the latest versions manually (by going to their respective release sites), or by using ./download.sh, and ./install_downloads.sh.


What works

I have tested the following features:
  • UEFI booting via Clover
  • DP video/audio
  • HDMI video/audio
  • native audio with AppleHDA [see below, "Known Problems"].
  • native USB3/USB2 with AppleUSBXHCI/AppleUSBEHCI
  • native power management
  • accelerated graphics for HD540
  • wired Ethernet
  • Mac App Store working
  • sleep (hibernation disabled, not tested)
  • Messages/FaceTime (working on 10.10.3 even though I didn't run through the guide: http://www.tonymacx86.com/general-help/110471-how-fix-imessage.html)


Not tested/not working

Not working:
  • DP and HDMI at the same time may not work (eg. no multiple monitors) (Note: This was based on early testing with 10.11.4. At the current time, I have not tested with newer versions as I currently have only a single monitor to connect).
  • also, there are issues with HDMI/DP hotplug (must use the HDMI or DP that you booted with)
  • SDHC card reader
  • WiFi: Intel WiFi is not supported. Hardware is soldered.

Not tested:
  • internal USB headers
  • AirPlay mirroring to AppleTV
  • Bluetooth would require an external compatible (Broadcom) dongle

I don't have a 4k monitor, so I didn't test 4k DP video. Reports are that it works with certain monitors.


Known Problems

Find My Mac/Locking: Find My Mac does not work properly. Don't lock your mac because it's difficult (or impossible) to unlock again.

Audio: Mic input from headphone/Line In jack may not be working correctly.

Audio: SPDIF output on Skull Canyon disabled, not tested/not working.

HDMI: There may be issues on wake from sleep if you're using HDMI. Also with hot-unplug/plug. Reliability is much better using the DP connector (to a DP monitor) instead of HDMI. I am currently using DP exclusively.

Dual monitors: Working but with quirks. Must use iMac14,2 SMBIOS (or just not use iMac17,1). Hotplug can work, hot unplug may cause black screen. Booting with both still causes black on both.

NVRAM: Native NVRAM is not working. You can get emulated NVRAM working by installing Clover's EmuVariableUefi-64.efi and "RC scripts".

QuickTime full screen crash (back to login screen): This problem presents only on the NUC6i7KYK (Skull Canyon). It appears to be a bug in QuickTime with this specific graphics device (Iris 580). It is possible to work around by spoofing Iris 540, but that causes other problems with popup menus in apps like GarageBand. You can use some other video playback app for full screen (VLC, for example).


Other post-install tasks

Bluetooth: If you get the Bluetooth Setup Assistant popup, go to SysPrefs->Bluetooth->Advanced, uncheck the boxes.

BIOS settings for fan control: I find with the default settings, the fan runs excessively fast. Change in Cooling->CPU Fan Header to your own preferences. Refer to this Intel forum thread/post for guidance: https://www.tonymacx86.com/threads/guide-intel-skylake-nuc6-and-skull-canyon-using-clover-uefi-nuc6i5syk-nuc6i7kyk-etc.207848/page-27#post-1412011


System updates

First step should be to update to the latest repository.

To do so:
Code:
git stash
git pull
./download.sh
./install_downloads.sh
make clean
make
make install_nuc6 # or make install_nuc6sc
Also update Clover to the latest using the Clover installer. Be sure to fix EFI/Clover/kexts, so that only EFI/Clover/kexts/Other is existing. All version specific directories under EFI/Clover/kexts should be removed. Make sure the correct files are in in EFI/Clover/drivers64UEFI.

Also update config.plist at EFI/Clover/config.plist to the latest content from the repo. Be sure to retain your own SMBIOS data at config.plist/SMBIOS.

Now you can update via the App Store. Just boot the installer/updater upon restart.


Updating to High Sierra or Mojave

As you probably already know, High Sierra and Mojave have a new file system called APFS. Boot drives on SSDs will automatically be converted to APFS if you start the installer in the default way.


Problem reporting

Problem reports should be accompanied by various files that allow your progress to be accounted for...

The requirements for any problem report are described in the laptop FAQ.

Read FAQ, "Problem Reporting". Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
Last edited:
Joined
May 24, 2017
Messages
95
Motherboard
Intel NUC6I3SYH
CPU
i3-6100U
Graphics
HD 520 (1920 x 1080)
Mobile Phone
iOS
So APFS is unavoidable in Mojave?
 
Joined
May 24, 2017
Messages
95
Motherboard
Intel NUC6I3SYH
CPU
i3-6100U
Graphics
HD 520 (1920 x 1080)
Mobile Phone
iOS
You can clone to HFS+ with CCC after upgrade/install if you want.
Don't quite understand the clone process. What happens if I just upgrade from HS (HFS+) to Mojave? Will it still convert to APFS?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Don't quite understand the clone process. What happens if I just upgrade from HS (HFS+) to Mojave? Will it still convert to APFS?
Yes.
 
Joined
Aug 19, 2012
Messages
5
Motherboard
Windows 7
CPU
Intel Core i5
Graphics
NVDIA
Mac
Classic Mac
Mobile Phone
Overview

The purpose of this guide is to provide a step-by-step guide to install Mojave (or High Sierra/Sierra/El Capitan) on the Intel NUC6 series NUC mini computers. My NUC6 is the NUC6i5SYK, although I expect the guide will work on other similar models (any NUC6).

This guide also works for the Skull Canyon NUC6, NUC6i7KYK. The Skull Canyon model has Iris Pro Graphics, and ALC233 instead of ALC283 audio. It has a slightly different USB controller as well. No matter, all these differences are accounted for in the guide.

I have added the Samsung SM951 PCIe x4 AHCI SSD.

This guide does not use Unibeast nor Multibeast, but uses automated scripts to handle most of the post-installation details.


Some notes on the NUC6i5SYK

The unit is very similar to the Broadwell NUC5i5MYHE, except this one has no place for a 2.5" HDD/SSD (there are other models that do). The board does have the SATA power/data ports, but there is not way to house such a device in the small case. I did use the SATA port in order to do some partition cloning (with the case top open).

The BIOS on this NUC is very similar to the Broadwell NUC, although some of the options have changed. No need to disable the non-existent serial port as was needed with the Broadwell unit.

Unlike the Broadwell NUC, this NUC comes with MSR 0xE2 locked and there is no option in the BIOS to unlock it. This caught me by surprise and it took a while to realize that I needed KernelPm=true.

The NUC6i5SYK has DP and an HDMI port. I would much rather have dual DP instead of DP+HDMI, but... The graphics are Iris 540.

Unfortunately, like all Skylake NUCs, this unit has soldered WiFi, so no possibility to install a compatible WiFi module. USB WiFi is just too unreliable and the user interface is not good.

If you have an NVMe SSD, details on creating HackrNVMeFamily-*.kext here (for 10.12 or earlier, 10.13 and later NVMe is mostly native): https://github.com/RehabMan/patch-nvme


Preliminary ComputeStick

This guide also has preliminary support for the Skylake ComputeStick. I tested STCK2mv64CC. I used an external USB3 SSD as an install target as the internal eMCC is not supported. And an external USB Ethernet (supported by macOS) device. NullEthernet.kext is used to access the Mac App Store.

Predictably, the stick uses config_install_stick6.plist (pre-install), config_stick6.plist (post-install), and 'make install_stick6'.

During installation, use a USB hub connected to the USB3 port on the stick because the two USB3 ports on the power block will not work until post-installation procedures are complete. Lilu.kext and IntelGraphicsFixup.kext are required to get a signal to the monitor. If you don't use those kexts during installation, you may need to use an invalid ig-platform-id (0x12345678).


What you need

- Skylake Intel NUC6 series mini computer
- Mojave, High Sierra, Sierra, or El Capitan downloaded from the Mac App Store
- 8GB USB stick (maybe 16GB, if your stick is one of those "small 8GB" units)
- SATA SSD/HDD (for units with 2.5" capability) or M.2 AHCI (x2 or x4) or SATA SSD (keyed for B, B+M, or M)
- RAM (my unit has 16GB RAM installed)
- optional bluetooth USB, GMYLE Bluetooth Adapter Dongle, Ultra-Mini USB Broadcom BCM20702 Class 2, as per post #223: https://www.tonymacx86.com/threads/guide-intel-skylake-nuc6-and-skull-canyon-using-clover-uefi-nuc6i5syk-nuc6i7kyk-etc.207848/page-23#post-1407127


BIOS settings

On my NUC6i5SYK, I have the latest BIOS (0044) installed. I didn't try older versions.

The boot menu and BIOS setup can be accessed by mashing the F2 key during BIOS startup. After the main screen comes up choose "Advanced". That gets you to the main BIOS setup screens.

To start, choose "Load Defaults" (choose from the menu or press F9 in the BIOS setup).

Then change:
- Power->Secondary Power Settings, "Wake on LAN from S4/S5", set to "Stay Off"

These settings are important but are already set as needed by "Load Defaults"
- Devices->Video, "IGD Minimum Memory" set to 64mb (I found both 64mb and 128mb work fine)
- Devices->Video, "IGD Aperture Size" set to 256mb (I found both 128mb and 256mb work fine)
- Boot->Secure Boot, "Secure Boot" is disabled
- Security->Security Features, "Execute Disable Bit" is enabled.
- Security->Security Features, "VT-d" is disabled (since this guide uses dart=0, can also be enabled)

You may wish to tweak the settings to suit your usage. For example, if you're not using the SATA port or a SATA M.2 SSD, you can disable the SATA controller. If you are using only OS X, you might consider disabling the WiFi.

Suggested:
- Boot->Boot Priority->Legacy Boot Priority, disable "Legacy Boot" (it will reduce confusion)
- Boot->Boot Configuration, disable "Network Boot"


Preparing USB and initial Installation

This guide assumes you're starting with nothing on your HDD/SSD (or nothing important). Make sure you backup your important files before starting.

You can also leave Windows intact, but it can get tricky. Read here for more information: http://www.tonymacx86.com/multi-booting/133940-mavericks-windows-8-same-drive-without-erasing.html

This guide for creating USB and installing using Clover UEFI works well: http://www.tonymacx86.com/el-capitan-laptop-support/148093-guide-booting-os-x-installer-laptops-clover.html

Special notes:

- This guide requires Clover v4658 or later.

- Definitely copy IntelMausiEthernet.kext to Clover/kexts/Other as having network support during post-install is not only helpful, but the rest of this guide depends on it.

- GenericUSBXHCI.kext is not necessary. Do not use it.

- You do not need VoodooPS2Controller.kext as it is laptop specific.

- If you have HD515/HD520/HD530 on 10.12.5+, you may need to add Lilu.kext and WhateverGreen.kext

- Use the 'createinstallmedia' approach. It works well, and there is little chance for pilot error. This method also gives you an OS X recovery partition.

- Use the config_install_nuc6.plist (non-Skull Canyon) or config_install_nuc6_sc.plist (Skull Canyon) linked by this post instead of the laptop specific config.plist files linked by the guide. Make sure you copy it to EFI/Clover/config.plist (after installing Clover). Clover will not read a file named config_install_nuc6.plist.

Special notes for the NUC6i7KYK (Skull Canyon):

- Use the HDMI connection for installation. The DP port will work only after all post-installation tasks are complete. If it is not possible to use the HDMI connection, you can set FakeID=0x12345678 (in Clover options) to disable the graphics drivers during installation. Or you can use ig-platform-id 0x193b0000 which has the 0306 (port 7) DP port enabled. Note that there is not a single ig-platform-id that contains both the 0105 and 0306, which is why a single value cannot be used without patching.

- If using a USB3 flash drive, you must use the USB port that is on the front left of the NUC. The other USB3 ports will work only after all post-installation tasks are complete. I suspect a USB2 flash drive will work in all ports.

Direct links for install config files:

For installation, NUC6, config_install_nuc6.plist: https://github.com/RehabMan/Intel-NUC-DSDT-Patch/raw/master/config_install_nuc6.plist

For installation, Skull Canyon, config_install_nuc6_sc.plist: https://github.com/RehabMan/Intel-NUC-DSDT-Patch/raw/master/config_install_nuc6_sc.plist


Post Installation

Install Clover UEFI as described in the guide linked by the previous section (post #2). After installing Clover, and configuring it correctly (config.plist, kexts, HFSPlus.efi, etc) you should be able to boot from the HDD/SSD.

Most everything works, but there are a few things to tidy up, drivers to install, etc. For that, we need to patch ACPI, provide a proper config.plist, and install the kexts that are required.

Since you have IntelMausiEthernet.kext already injected by Clover, you should have internet access simply by using an Ethernet cable to your router. Plug it in and make sure you have internet access before continuing.

Installation of the tools and patching is easy provided the scripts and tools at the repository: https://github.com/RehabMan/Intel-NUC-DSDT-Patch

To start, the developer tools must be installed. Run Terminal, and type:

Code:
xcode-select --install
You will be prompted to install the developer tools. Since you have internet working, you can choose to have it download and install them automatically. Do that before continuing.

After the developer tools are installed, we need to make a copy of the project on github.

In Terminal:
Code:
mkdir ~/Projects
cd ~/Projects
git clone https://github.com/RehabMan/Intel-NUC-DSDT-Patch nuc.git
Note: All commands for Terminal that follow will assume you have set the current working directory to ~/Projects/nuc.git (unless otherwise stated).

To change the current working directory in Terminal:
Code:
cd ~/Projects/nuc.git
Now it is time to install some more tools and all the kexts that are required...

In Terminal:
Code:
./download.sh
./install_downloads.sh
The download.sh script will automatically gather the latest version of all tools (patchmatic, iasl, MaciASL) and all the required kexts from bitbucket. The install_downloads.sh will automatically install them to the proper locations.

To finish the setup, we need a correctly patched ACPI.

For the NUC6, in Terminal:
Code:
make
make install_nuc6
For the NUC6 Skull Canyon, in Terminal:
Code:
make
make install_nuc6sc
The 'make' causes the patched files to be compiled (with iasl), the results placed in ./build.

Finally, 'make install_nuc6' (or 'make install_nuc6sc'), mounts the EFI partition, and copies the built files where they can be loaded by Clover (to EFI/Clover/ACPI/patched).

Note: No actual patching of DSDT/SSDT is happening here. We are simply building an add-on SSDT (SSDT-NUC*.aml) which provides the necessary changes. This is because the NUC requires only minimal patching so a full patched DSDT is not needed.


Power Management

Everything required for CPU/IGPU power management is already installed with the steps above.
There is no longer any need to use the ssdtPRgen.sh script.

Be aware that hibernation (suspend to disk or S4 sleep) is not well supported on hackintosh.

You should disable it:
Code:
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage
Always check your hibernatemode after updates and disable it. System updates tend to re-enable it, although the trick above (making sleepimage a directory) tends to help.


Final config.plist

Up to now, you've been using the same config.plist we were using for installation. After all the APCI files are in place (previous two steps), you're ready to use the final config.plist from the NUC repo.

First, mount the EFI partition:
Code:
./mount_efi.sh
For the NUC6, copy the file:
Code:
cp config_nuc6.plist /Volumes/EFI/EFI/Clover/config.plist
For the NUC6 Skull Canyon, copy the file:
Code:
cp config_nuc6_sc.plist /Volumes/EFI/EFI/Clover/config.plist
You could also copy the file using Finder.

After copying the config.plist from the repo to EFI/Clover/config.plist, you should customize the SMBIOS so you have a unique serial. You can use Clover Configurator to do this (use google to find/download it). DO NOT use Clover Configurator to edit your actual config.plist. Instead edit a "dummy" config.plist to create the SMBIOS data and then use copy/paste with a plist editor (I use Xcode) to copy the SMBIOS section into my active config.plist. Clover Configurator is too buggy and cannot be trusted with edits to your real config.plist.

Note: The config.plist in the repo is using iMac14,2. It is not a Skylake SMBIOS, but it has less problems with dual monitor than does iMac17,1. In theory, it would be possible to use another Skylake SMBIOS (when such models appear). The best match would be a Skylake Macmini, but Apple has not yet produced one as I write this guide.


Do not stop reading

Although most of the post-install tasks are done, continue to read this guide. It it has important information you should know about.

In the case of a problem, don't bother asking about with without all files requested in "Problem Reporting".


Updates to the patch repositories

From time to time, updates may become available to the NUC repository. In the event of such updates, you may want to update your copies, and re-patch ACPI with the updates.

Since you're using git, it is easy...

In Terminal:
Code:
git stash # to save any local changes you might have made
git pull
make clean
Then you can follow the instructions for updating config.plist or using 'make install_nuc6' (or 'make install_nuc6sc') to copy the updated SSDT.

Updates to kexts may happen at any time. You can download and install the latest versions manually (by going to their respective release sites), or by using ./download.sh, and ./install_downloads.sh.


What works

I have tested the following features:
- UEFI booting via Clover
- DP video/audio
- HDMI video/audio
- native audio with AppleHDA [see below, "Known Problems"].
- native USB3/USB2 with AppleUSBXHCI/AppleUSBEHCI
- native power management
- accelerated graphics for HD540
- wired Ethernet
- Mac App Store working
- sleep (hibernation disabled, not tested)
- Messages/FaceTime (working on 10.10.3 even though I didn't run through the guide: http://www.tonymacx86.com/general-help/110471-how-fix-imessage.html)


Not tested/not working

Not working:
- DP and HDMI at the same time may not work (eg. no multiple monitors) (Note: This was based on early testing with 10.11.4. At the current time, I have not tested with newer versions as I currently have only a single monitor to connect).
- also, there are issues with HDMI/DP hotplug (must use the HDMI or DP that you booted with)
- SDHC card reader
- WiFi: Intel WiFi is not supported. Hardware is soldered.

Not tested:
- internal USB headers
- AirPlay mirroring to AppleTV
- Bluetooth would require an external compatible (Broadcom) dongle

I don't have a 4k monitor, so I didn't test 4k DP video. Reports are that it works with certain monitors.


Known Problems

Find My Mac/Locking: Find My Mac does not work properly. Don't lock your mac because it's difficult (or impossible) to unlock again.

Audio: Mic input from headphone/Line In jack may not be working correctly.

Audio: SPDIF output on Skull Canyon disabled, not tested/not working.

HDMI: There may be issues on wake from sleep if you're using HDMI. Also with hot-unplug/plug. Reliability is much better using the DP connector (to a DP monitor) instead of HDMI. I am currently using DP exclusively.

Dual monitors: Working but with quirks. Must use iMac14,2 SMBIOS (or just not use iMac17,1). Hotplug can work, hot unplug may cause black screen. Booting with both still causes black on both.

NVRAM: Native NVRAM is not working. You can get emulated NVRAM working by installing Clover's EmuVariableUefi-64.efi and "RC scripts".

QuickTime full screen crash (back to login screen): This problem presents only on the NUC6i7KYK (Skull Canyon). It appears to be a bug in QuickTime with this specific graphics device (Iris 580). It is possible to work around by spoofing Iris 540, but that causes other problems with popup menus in apps like GarageBand. You can use some other video playback app for full screen (VLC, for example).


Other post-install tasks

Bluetooth: If you get the Bluetooth Setup Assistant popup, go to SysPrefs->Bluetooth->Advanced, uncheck the boxes.

BIOS settings for fan control: I find with the default settings, the fan runs excessively fast. Change in Cooling->CPU Fan Header to your own preferences. Refer to this Intel forum thread/post for guidance: https://www.tonymacx86.com/threads/guide-intel-skylake-nuc6-and-skull-canyon-using-clover-uefi-nuc6i5syk-nuc6i7kyk-etc.207848/page-27#post-1412011


System updates

First step should be to update to the latest repository.

To do so:
Code:
git stash
git pull
make clean
make
make install_nuc6 # or make install_nuc6sc
./download.sh
./install_downloads.sh
Also update Clover to the latest using the Clover installer. Be sure to fix EFI/Clover/kexts, so that only EFI/Clover/kexts/Other is existing. All version specific directories under EFI/Clover/kexts should be removed. Make sure the correct files are in in EFI/Clover/drivers64UEFI.

Also update config.plist at EFI/Clover/config.plist to the latest content from the repo. Be sure to retain your own SMBIOS data at config.plist/SMBIOS.

Now you can update via the App Store. Just boot the installer/updater upon restart.


Updating to High Sierra or Mojave

As you probably already know, High Sierra and Mojave have a new file system called APFS. Boot drives on SSDs will automatically be converted to APFS if you start the installer in the default way.


Problem reporting

Problem reports should be accompanied by various files that allow your progress to be accounted for...

The requirements for any problem report are described in the laptop FAQ.

Read FAQ, "Problem Reporting". Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
Hello RehabMan

I'm trying to install macOS Mojave onto my skull canyon. But I keep getting a stop sign when I try to boot to my USB install drive. I followed the guide all along the way. I don't know where I did wrong. Could you show me what exactly should be in my drivers64UEFI folder and kext/other. I am using a Samsung PM981 as my drive for macOS if this helps. Thanks.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hello RehabMan

I'm trying to install macOS Mojave onto my skull canyon. But I keep getting a stop sign when I try to boot to my USB install drive. I followed the guide all along the way. I don't know where I did wrong. Could you show me what exactly should be in my drivers64UEFI folder and kext/other. I am using a Samsung PM981 as my drive for macOS if this helps. Thanks.
No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I have my clover folder attached here.
You're not using the recommended Clover build, but it should still be ok.
Make sure you use the correct USB port as mentioned in post #1 (only one of the ports works initially).
 
Joined
Aug 19, 2012
Messages
5
Motherboard
Windows 7
CPU
Intel Core i5
Graphics
NVDIA
Mac
Classic Mac
Mobile Phone
You're not using the recommended Clover build, but it should still be ok.
Make sure you use the correct USB port as mentioned in post #1 (only one of the ports works initially).
Thanks for the reply. Would you mind if I ask what do you mean by the recommended build? I followed along the guide and I don't think I've made any mistakes.
 
Top