My hackintosh has been running strong since the initial setup a few months ago. This Sunday I decided to update from version 10.13.2 to the latest version 10.13.3 which was released on February 20th.

The MacOS Update

I lied, I actually performed a clean install. The past few months I’ve been running MacOS on my secondary SSD. I’ve been so impressed with the hackintosh’s stability that I decided to replace Windows 10 (on my main SSD) with MacOS.

I re-downloaded High Sierra on my MacBook pro and created a new Unibeast installer with the .img. From there I installed everything exactly the same way as documented in my previous post.

Problem: Laggy Graphics

A latest version of the Nvidia web driver is horrible. It causes unbelievable UI lag. The solution is to install an older version of the driver. Luckily a guy named Vulgo created a CLI for managing this.

I installed version 378.10.10.10.25.104 with sudo webdriver -l, and then unlocked the driver for my build version with sudo webdriver -m. Problem solved.

System Definition Update

When setting up a hackintosh you have to choose a system definition. To my understanding a system definition tells the OS about your hardware and how to operate it. You can’t create your own system definitions though, you have to choose one of a real Mac. Furthermore you’re supposed to choose the system definition closest to the hardware you’re using.

Prior to this weekend I was using 14,2 which is the definition of a 2013 iMac. Everything worked fine, but recently Clover Configurator added a the 18,3 definition, which is the definition of a 2017 iMac with a kaby-lake 7700 (just like I have). I decided to switch to it.

Problem: USB ports stopped working

As soon as I switched over all my USB ports stopped working. The fix was follow an extreme lengthy guide: Creating a Custom SSDT for USBInjectAll.kext.

The gist of the guide is this:

  1. Inject every single possible USB port location
  2. Figure out which ones are being used
  3. Create a custom SSDT for USBInjectAll.kext

I felt like I was guessing the entire time following the guide, but in the end everything worked and the guide creator verified my work. Here’s the SSDT I ended up with in the end.

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20161210-64(RM)
 * Copyright (c) 2000 - 2016 Intel Corporation
 * 
 * Disassembling to non-symbolic legacy ASL operators
 *
 * Disassembly of iASL4BgIUG.aml, Sat Feb 17 20:40:53 2018
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000246 (582)
 *     Revision         0x02
 *     Checksum         0x04
 *     OEM ID           "hack"
 *     OEM Table ID     "UIAC-ALL"
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20161210 (538317328)
 */
DefinitionBlock ("", "SSDT", 2, "hack", "UIAC-ALL", 0x00000000)
{
    Device (UIAC)
    {
        Name (_HID, "UIA00000")  // _HID: Hardware ID
        Name (RMCF, Package (0x02)
        {
            "8086_a2af", 
            Package (0x04)
            {
                "port-count", 
                Buffer (0x04)
                {
                     0x1A, 0x00, 0x00, 0x00                         
                }, 
                "ports", 
                Package (0x18)
                {
                    "HS01", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x01, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "HS02", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x02, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "HS03", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x03, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "HS04", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x04, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "HS05", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x05, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "HS06", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x06, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "SS01", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x11, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "SS02", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x12, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "SS03", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x13, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "SS04", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x14, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "SS05", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x15, 0x00, 0x00, 0x00                         
                        }
                    }, 
                    "SS06", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0x03, 
                        "port", 
                        Buffer (0x04)
                        {
                             0x16, 0x00, 0x00, 0x00                         
                        }
                    }
                }
            }
        })
    }
}

A performance boost

By changing system definitions my system is now fine-tuned for my CPU. This brought a little performance benefit! My old Geekbench score was 5538 for single core and 18188 for multi-core. The new score is 5699 and 19938. Not a drastic improvement, but it’s something.

Hackintosh computer geekbench scores

Messages fix

Reading around the tonymacx86 forums I found some people talking about how older Apple Id accounts seem to just work with hackintoshes while new ones can get blocked. I managed to recover my very first Apple I (probably close to a decade old) to test out this theory. To my surprise it worked. So I transfered everything over to this new-old ID. Text message forwarding from mu iPhone works too!