In this chapter we will discuss our experience with the installation and the subsequent work.
If you expect a point-by-point guide on how we installed our system, we will have to disappoint you. We are more interested in showing what considerations we made in the preparation of the installation and what technical terms we have dealt with. This will hopefully help you to find your way around the topic. If you don’t know much about Hackintosh, you can find out where the biggest challenges are and what to watch out for.
For concrete support requests or assistance, we refer you to the community pages, which are linked further down in this article. This is the best place when looking for help, because every system has its own special features and things like drivers, tools and operating system versions develop very quickly. That is why we do not provide general installation instructions.
The goal when setting up a Hackintosh system is to get as close as possible to a real Mac in terms of features and functions.
On the operating system side, this includes the original kernel for us, which is generally called "vanilla".
With the features of macOS itself, the correct functioning of services such as iMessage, iCloud, Continuity or Handoff can be a challenge – exactly those features that connect macOS with the Apple ecosystem and contribute to the attractiveness of the platform. Key for this is the hardware on which the Hackintosh is build.
Not every hardware configuration is equally suitable as a basis for a hack. Even if we usually refer to desktop hardware here, i.e. self-compiled individual components, it can of course also be a notebook, a compact PC such as an Intel NUC or a complete system from a large manufacturer such as Dell or Acer. Such devices may also have custom mainboards and firmware installed, which does not make it any easier to achieve a hackintosh installation. On such devices, it is possible that custom motherboards with their own firmware are used, making it more difficult or even impossible to perform a hackintosh installation.
In our experience, hardware components can have limitations in terms of compatibility. This can include sound card,s graphics cards, LAN, WLAN and bluetooth connections as well as USB and Thunderbolt interfaces. However, if it is a notebook, even the functioning of the trackpad and keyboard, the adjustment of the display brightness or power saving functions can already create a problem.
The reason is the compatibility of the drivers or that fact that they simply do not exist. For example, there are no drivers for WLAN/Bluetooth cards from Intel, which are installed by many manufacturers on their motherboards (applies at the time of publication of this article). For other hardware components, you may find the appropriate drivers in the hackintosh community.
What is needed?
To plan, install and run a hackintosh you should not only think about the hardware. You should have some affinity for working with terminal consoles, know the most important terminal commands and be able to familiarize yourself with technical contexts.
To gain specific Hackintosh knowledge, we recommend these community websites:
A Google search with keywords such as osx86 or Hackintosh also lists other good sites.
In addition to the know-how, it also requires a certain amount of patience, because you always have to reckon with setbacks, so that you have to approach a solution step-by-step. This also means that you can stress your hardware beyond the usual level and, for example, disconnect and re-connect the power supply unit over and over again. Just pressing the power button is often not enough, residual information can still remain in the memory. If you want to reinitialize the components, you must have the voltage completely removed.
As with any subject, you are confronted with your own specific vocabulary. We have compiled a few important terms below.
A bootloader is software that is loaded by the firmware of a computer from a bootable volume and then executed. The bootloader is responsible for loading parts of the operating system, usually the kernel. Each operating system has a bootloader.
The kernel is the central component of every operating system. It defines the process and data organization on which all other software components of the operating system are based. Its tasks include the following:
Interface to user applications for starting, quitting, input/output, memory access
Control the access to CPU and other hardware components
Distribution of system resources to the user applications
Ozmosis is not a real bootloader like Clover, it follows a different concept, which we do not discuss in our articles. With Ozmosis, the UEFI-firmware is specifically supplemented with modules to start macOS native.
The term Kext is short for kernel extension, i.e. extensions of the kernel of the operating system. They are drivers for the correct functioning of hardware and services. They are executed under root rights.
The System Management Controller (SMC) is a chip on the motherboard of Intel-based Apple computers. Among other things, it is responsible for the power management of the device and the control of the trackpad (if available).
Of course, this chip does not exist on hardware you bought yourself. The task of the FakeSMC is to emulate the functions of the chip by software and to "make believe" to the macOS it runs on original hardware from Apple.
System Management BIOS (SMBIOS) describes how motherboard and system manufacturers provide management information about their hardware in a standardized format.
System Integrity Protection
System Integrity Protection (SIP) is part of Apple’s overall security policy for Mac computers. It was introduced in OS X "El Capitan" (10.11) and protects native files and directories from changes by processes without specific rights, even if they are run by the root user or a user with root privileges (sudo).
ACPI stands for Advanced Configuration and Power Interface. It is an open industry standard for power management in desktops, notebooks and servers. It provides interfaces for hardware detection, device configuration and power management.
The DSDT.aml is a configuration file that is present in every BIOS of a motherboard and describes the components that are installed on the motherboard. Since Windows and Linux have their own hardware detection, the DSDT of the PC motherboards is kept very rudimentary, while in Apple devices, everything is described in great detail.
The abbreviation UEFI stands for Unified Extensible Firmware Interface. The UEFI is the successor of BIOS. As firmware it is the interface between the operating system and the hardware.
AHCI stands for Advanced Host Controller Interface. It is an open interface standard for Serial ATA controllers. The aim is to standardize and simplify the development of drivers for Serial ATA devices. For example, no special serial ATA driver needs to be developed for motherboards whose controllers support AHCI. Instead, complete device support requires only one available, unified AHCI driver. AHCI was developed at a time when classic hard disks (HDD) were standard in the devices.
The AHCI standard has never been adapted for flash memory and produces a high I/O overhead (I/O stands for input / output, i.e. for data transfer during writing and reading). NVMe is a new standard designed to access flash memory media connected via a PCI Express (PCIe) bus. NVMe stands for non-volatile memory. It allows you to take full advantage of the speeds of drives like an SSD.
The HFS+ file system (Hierarchical File System) is a further development of HFS. Up to and with macOS 10.12 Sierra it was the default file system on the Mac. It is also used on other platforms such as iOS, watchOS and tvOS. The successor of HFS+ is APFS, introduced in 2016.
The Apple File System (APFS) is a file system introduced by Apple in June 2016 as the successor of HFS+. At first, the file system was only available for iOS. APFS is also implemented in the current macOS 12.13 High Sierra. Among other things, it contains numerous optimizations aimed at flash memory. APFS cannot be used on conventional hard disks (HDD).
Microsoft NTFS is a proprietary file system from Microsoft for all operating systems of the Windows NT series. The abbreviation stands for New Technology File System.
FAT32 is the predecessor of NTFS. The abbreviation FAT stands for File Allocation Table. Compared to FAT16, the maximum size of the entire file system has been increased from two GB to eight TB and the maximum size of a file on a FAT32 system is four GB.
The Master Boot Record (MBR) contains a partition table and a boot program to start the bootloader of the operating system. However, it can only be used on volumes with a total volume of less than 2 TB. MBR is an outdated standard that should no longer be used.
GUID Partition Table (GPT)
GUID (Globally Unique Identifier) is a standard that defines how the partition table of a volume is structured. The table lists where on the disk which partition can be found. There is always a partition that can contain EFI information.
GUID is always used in conjunction with UEFI. For Mac, UEFI is the default. Unlike its predecessor MBR, GUID can also handle volumes larger than 2 TB.
The EFI (Extensible Firmware Interface) is the name for the firmware of an original Mac. There is no graphical user interface to access or modify the information.
EFI is also a name for a hard disk partition. It is about 300 MB in size, FAT-formatted and contains the bootloader among other things.
Here we have put together a few tools that are very useful in building and managing a hackintosh from our experience.
To prepare the installation, you need a copy of macOS. This can be downloaded directly from the App Store, there is no other distribution method.
We recommend to prepare a USB stick which contains everything necessary like the macOS installer, the bootloader, its configuration file and prepared Kext.
To get an installation up and running as quickly as possible, we recommend selecting a profile like iMac 14.1. It is usually a quick way to get a working installation of macOS and you don’t have to worry about problems like a screen that stays black. The same applies to settings in the UEFI: it is best go without any overclocking and to deactivate everything else that is not absolutely necessary, for example the serial interface.
Then you can make the first attempt and with a bit of luck – and good preparation – it even works the first time around. Otherwise we recommend the forums mentioned above for help to get your own installation up and running.
The subsequent fine-tuning of the system takes much more time than the actual installation. Then you can also adjust the settings made for the first installation as mentioned above.
What is actually being "hack"ed?
In this context, hacking means bridging the differences between the original Apple hardware and the hackintosh hardware used, so that macOS can still be installed and the computer boots normally and the operating system starts up every time the system is started.
There are hardware and software aspects, we will first discuss the topic of hardware in more detail in the next section.
At the hardware level
Hacking at the hardware level takes place before the actual installation, when selecting the components and assembling the system.
The biggest question is how to find the right hardware. There are basically two different points to start: You put together the hardware you want to buy for the hack, or you already have hardware and want to use it for a hack. In the second case it is worthwhile to search the most important forums and to look whether someone has already made experiences with the same hardware components. Depending on the findings, you might have to consider purchasing some alternatives.
If you are planning a complete new purchase, websites with the Buyer’s Guide like tonymacx86 are a good guide. Here you can find complete hardware configurations that have already been tested.
As far as the CPU goes, it is recommended to use an Intel processor, because Apple uses them in their own systems and so you can also use the vanilla kernel of macOS. AMD CPU’s basically also work for a hack, because they also build on the x86 architecture. However, you cannot use a vanilla kernel with them and the system may behave strangely at some point because an AMD processor does not have the same extensions as an Intel processor. Installing updates is also not that easy, because you have to wait until a patched kernel is available from the community.
It is well worth bringing your own hardware as close as possible to an original Mac. This is the only way that Continuity, Handoff, iCloud or iMessage work – exactly the services that make the macOS or the entire Apple platform so attractive.
Regarding our project
For our project Mäcki, we had the desktop hardware already available and it had already been used once in another PC system. With Intel Haswell it is no longer the latest architecture, but the motherboard is still a good basis for a hackintosh, because the architecture was used by Apple itself in the years 2014 / 2015. Our processor (Intel i7 4790K) has even been explicitly used in an iMac from autumn 2014.
This information is entered into the Clover configuration file – in our case Apple iMac Core i7 4.0 27-Inch (5K, Late 2014). It is recommended to search for a Mac hardware profile that comes as close as possible to your own hardware. This profile will also appear under About this Mac:
A helpful site in this context is everymac.com where all the hardware configurations of Apple’s different series of each product are listed.
In order to get as close as possible to the original Mac apart from the architecture and CPU, we bought a new WLAN and bluetooth card. We could not use the Intel card supplied with our motherboard because there is no driver for it, as our research had shown in advance. However, we found the dealer OSXWIFI, who sells exactly what we were looking for, namely original cards, as they are also used by Apple. This gave us the certainty that it would also work out-of-the-box in our Hackintosh. For our motherboard we had to order the appropriate adapter.
At software and driver level
If you have the right hardware, some software and drivers have to be "bent" at system level so that macOS can be installed at all and then boots at every system start. The most important elements used are:
UEFI from motherboard with settings
Bootloader Clover and its configuration file
Kext (FakeSMC, depending on hardware: LAN, Sound)
The interaction of the single elements makes it work and lets macOS run like on original hardware – "a lot of magic" is involved so to speak. The bootloader Clover and its configuration file play a central role. He represents the bridge.
Why is the SMBIOS important?
This configuration file also contains the SMBIOS information about which system it is. The drivers are then loaded according to the profile.
If you take a closer look, you will notice how strongly hardware and the corresponding drivers are interlocked by Apple. The SMBIOS is responsible for this interlocking. Apple knows which hardware components are installed in each of their devices. Each motherboard type has its own board ID, which is linked to the product name. The drivers are designed accordingly.
As already mentioned, our Mäcki is equivalent to an iMac Late 2014, because the Intel CPU we use was also installed in this iMac model. As far as the CPU is concerned, the two devices are the same, but not as far as the rest of the hardware is concerned, of course. Due to the profile, macOS "expects" an internal display when booting. Of course this is not the case with our hardware, which is why the externally connected screen remains black when macOS is loaded while booting. To fix this, we have modified an entry in AppleGraphicsDevicePolicy.kext (info.plist). With the driver for the sound card it works a little different: Here the appropriate drivers are injected through the clover during the boot process (appleALC, Lilu). The onboard LAN card works thanks to drivers from the community.
If the installation and its preparation take about 20 percent of the work, then the fine-tuning accounts for about 80 percent of the total work and time involved. It can also quickly start to frustrate if some functions or feature just won’t seem work.
Among the tasks that still have to be completed are to get the following features and hardware components up and running:
Power management / speedsteps for the CDU
LAN and WLAN connections
all USB ports
A central point are also the graphics card drivers when using a dedicated card. Apple has not used NVIDIA cards for several generations. If you have an NVIDIA 9 or 10 series GPU, you need a web driver for your card. These are provided directly by NVIDIA. We also use the web driver for our Geforce GTX 780Ti.
Once everything is set up and configured, a hackintosh actually runs very stable.
Nevertheless, you should keep up to date with bootloader updates, new drivers and of course the macOS updates from Apple itself. We recommend that you run a time machine backup and have a USB stick available in case of emergency from which you can boot the system. The stick should contain the bootloader, the configuration files of the current system, drivers and the macOS installer. From time to time you should also remember to update the stick. Starting up the system in an emergency with such a stick also has the advantage that you do not lose all set up services such as the iCloud.
A central topic for long-term maintenance is the installation of macOS updates, which Apple publishes in regular intervals and offers for installation via the App Store.
Since we work with the vanilla kernel, we can actually look forward to such updates very relaxed. How exactly our update process with the Mäcki system looks like, we explain in the next article.
The next chapter is about our own experiences with the Mäcki-Hackintosh. We have divided these into two parts, as a pure user experience and from the system administrator’s point of view.