( Translated from Japanese )
As of 2024, Hackintosh is facing its demise with the transition to Apple Silicon. In other words, considering past trends, macOS 15 or 16 is expected to be the final version of Intel macOS.
On the other hand, OCLP supports Sequoia (15) even on Intel Macs from the Leopard (10.5) era. From this, I wondered if it would be possible to build a Hackintosh that runs from the first Intel macOS, Tiger (10.4), to the last Intel macOS released in the near future, depending on the hardware configuration.
Reference: https://dortania.github.io/OpenCore-Install-Guide/macos-limits.html
macOS | i7-4790K | 8800 GTS | E2205 | 88E8053 | NVMe | AHCI | ATA | ALC1150 |
---|---|---|---|---|---|---|---|---|
15 | ✅ | ☑️ 3. | ✅ | ☑️ 5. | ✅ | ✅ | ❌ | ✅ |
14 | ✅ | ☑️ 3. | ✅ | ☑️ 5. | ✅ | ✅ | ❌ | ✅ |
13 | ✅ | ☑️ 3. | ✅ | ☑️ 5. | ✅ | ✅ | ❌ | ✅ |
12 | ✅ | ☑️ 3. | ✅ | ☑️ 5. | ✅ | ✅ | ❌ | ✅ |
11 | ✅ | ☑️ 3. | ✅ | ☑️ 5. | ✅ | ✅ | ☑️ 5. | ✅ |
10.15 | ✅ | ☑️ 4. | ✅ | ☑️ 5. | ✅ | ✅ | ☑️ 5. | ✅ |
10.14 | ✅ | ☑️ 4. | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
10.13 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
10.12 | ✅ | ✅ | ✅ | ✅ | ☑️ 6. | ✅ | ✅ | ✅ |
10.11 | ✅ | ✅ | ✅ | ✅ | ☑️ 6. | ✅ | ✅ | ✅ |
10.10 | ✅ | ✅ | ✅ | ✅ | ☑️ 7. | ✅ | ✅ | ✅ |
10.9 | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
10.8 | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ☑️ 8. |
10.7 | ☑️ 1. | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ☑️ 8. |
10.6 | ☑️ 1. | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ |
10.5 | ☑️ 2. | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ |
10.4 | ☑️ 2. | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
- Spoof CPUID to Nehalem (
0x0106A2
) - Disable AppleIntelCPUPowerManagement
- OCLP root patch is required
- Root patch with macOS Catalina/Mojave patcher is required
- Works with Mojave kext
- Works with kernel patch or HackrNVMeFamily.kext
- Works with NVMeGeneric.kext
- Works with VoodooHDA.kext
The last CPU to support Tiger is Penryn (Core 2 series). However, unlike other hardware, CPUs are generally expected to have backward compatible, newer Intel CPUs should also work with Tiger. Since I had an i7-4790K that I used in my main Hackintosh in the past and wanted to use spare parts like DDR3 memory, I decided to try building with a Haswell generation.
GPU is the most crucial component of this build. Because GPUs that work with Tiger and also work with the latest macOS are very limited. As far as I tried, the G80 generation GPU ( 8800 GTS/GTX/Ultra ) is the only option.
While GeForce 7xxx and Radeon X1xxx work on Tiger, they are only supported up to Lion (10.7) due to being installed only on 32-bit EFI Macs. Moreover, even with OCLP, it's not possible to use them on the latest macOS as reported here.
On the other hand, GeForce 9xxx and Radeon HD 3xxx drivers included only from Leopard onwards so expected not to work on Tiger.
I tested the following GPUs supported by OCLP and have drivers for Tiger:
- GeForce 8800 GTS
- GeForce 8600 GT
- Radeon HD 2400 PRO
- Radeon HD 2600 XT
I thought the 8600 GT might work on Tiger because MacBook Pro (2007) has an 8600M GT. While it worked up to Leopard, I couldn't get it to work on Tiger.
Radeon HD 2400/2600 are built in the iMac (2007), so it should work, but for some reason, I couldn't get it to work on Tiger or any other macOS perhaps DeviceProperties settings were not set properly.
In addition, 8800 GTS with 512MB VRAM has the same G92 core as the 8800 GT and is not expected to work on Tiger. You need the 320MB or 640MB models.
There has an issue where the screen goes black and nothing is displayed when boots up. To resolve this, perform the following steps:
- Select the Tiger volume in OpenCore picker.
- Disconnect the display cable.
- Wait for a sufficient time (about 10 seconds) after selecting the volume and reconnect the cable.
This should result in the desktop being displayed correctly.
I'm using an HDMI display with a DVI-HDMI adapter, it is unknown if the issue is resolved with alternative connection methods.
References:
- https://www.insanelymac.com/forum/topic/65849-geforce-8800-g80-only-easy-installer-tutorial/
- https://aquamac.proboards.com/thread/454/g80-working-hackintosh?page=1&scrollTo=2244
There are limited kexts for NICs that work on 32-bit kernels like Tiger and Leopard.
- The onboard NIC Atheros Killer E2205 on Z97M Gaming only works up to Lion (10.7).
- Even Intel NIC + IntelSnowMausi doesn't work on 32-bit kernels.
- Realtek RTL8111 series might work on Tiger, but compatibility is uncertain with updated RTL8111 revisions on newer motherboards.
Marvell Yukon 88E8053 is a 1Gbps NIC with an OOB kext in Tiger. It had limited onboard implementations but was available as a PCIe expansion card. The kext works up to Mojave (10.14), and using Mojave's kext allows it to work on Sequoia (15).
NVMe SSDs only work from Yosemite (10.10) onwards, requiring AHCI for Mavericks (10.9) and earlier. While regular SATA SSDs work, there's an issue with AppleAHCIPort.kext panic on Tiger, making AHCI unusable. Thus, using SATA controllers in IDE mode with AppleIntelPIIXATA.kext is necessary, with the inclusion of ATAPortInjector.kext for Haswell chipset support.
The onboard ALC1150 audio doesn't work on 10.6 and earlier even with VoodooHDA. Consider using a USB DAC for audio functionality.
Note that the 8800 GTS lacks HDMI audio functionality, so it won't work regardless of Hackintosh setup.
Unfortunately, I couldn't make run Tiger on a vanilla kernel (it boots without panic but gets stuck on a blue screen). Custom kernels from the early Hackintosh days are necessary.
While obtaining Tiger custom kernels is challenging, one example is extracting the custom kernel from XxX OS x86 10.4.11. My build uses the 8.9.1 kernel SSE3 apr18, which works for 10.4.10 and 10.4.11. Custom kernels from 8.10.1 onwards and vanilla kernels (including 10.4.9) aren't usable.
Custom kernel can be used by placing it on Kernels/mach_kernel
path in the ESP and enabling CustomKernel
in config.plist. But it causes boot failure with other macOS versions, so place the custom kernel directly in the Tiger volume without using CustomKernel
.
When creating the config.plist, there are several considerations for booting older macOS versions. The settings provided are specific to the Z97M Gaming motherboard and may not be universally applicable.
To avoid using -no_compat_check
, apply this patch.
References:
- https://github.com/5T33Z0/OC-Little-Translated/tree/main/09_Board-ID_VMM-Spoof
- https://dortania.github.io/OpenCore-Legacy-Patcher/PATCHEXPLAIN.html#opencore-settings
RebuildAppleMemoryMap
is required for 10.6 and earlier, and DevirtualiseMmio
is required for 10.4 / 10.5.
In addition, with BIOS 1.9, ForceExitBootServices
is necessary to boot 10.8 and earlier. This quirk is not required with BIOS 1.4.
When enabling DevirtualiseMmio
, 10.6 and later stop working. Adjustments to MmioWhitelist
are required to prevent conflicts.
Reference: https://dortania.github.io/OpenCore-Install-Guide/extras/kaslr-fix.html#using-devirtualisemmio
However, achieving a configuration that boots all macOS versions with the combination of DevirtualiseMmio
and MmioWhitelist
seems fortunate. Some environments might need separate configurations for booting only 10.5 and earlier or 10.6 and later.
Reference: https://dortania.github.io/OpenCore-Post-Install/gpu-patching/nvidia-patching/
However, this patch is not effective for 10.4, NVinject.kext is required.
While Lilu.kext should work on 32-bit, it caused panic, so it's configured to load only in x86_64
mode.
Blocks kexts that panic in 10.4 and 10.5. This results in AHCI being unusable in 10.4, requiring the use of IDE mode.
Force loads IONetworkingFamily.kext to make AtherosE2200Ethernet.kext working.
DummyPowerManagement
is required only for 10.4 and 10.5. Instead of enabling it in Emulate
, an equivalent patch is applied.
For 10.12, a patch is applied to IONVMeFamily.kext instead of using HackrNVMeFamily.kext.
Haswell is unsupported in 10.7 and earlier, so spoof Nehalem (0x0106A2
) CPUID. Interestingly, using Nehalem's CPUID instead of Ivy Bridge or Sandy Bridge avoids the need for DummyPowerManagement
.
CPUID spoof is applied only for 10.6 and 10.7 because 10.4 and 10.5 don't need the spoof.
ProvideCurrentCpuInfo
is required for 10.4.
Not essential, but PickerVariant
is set to GoldenGate_16_9
. This adjustment is made because the 8800 GTS lacks GOP, limiting the bootloader to display only up to 1280x1024. This causes distortion on a 16:9 display, so the icon aspect ratio is modified. If using a display that can show without stretching, switch to GoldenGate
.
For details on revpatch=sbvmm
, refer to RestrictEvents.
In config_noserial.plist, SystemSerialNumber
is not set. Use tools like OCAuxiliaryTools to configure it.
With BIOS version 1.6 and later, there is an issue where setting SATA to IDE mode causes PCIe AHCI SSD to become invisible to OpenCore. This problem does not occur with BIOS 1.4.
To resolve this issue, a modded BIOS with a PCIe AHCI SSD module for BIOS 1.9 has been created and is being used following this guide.
Files for this BIOS mod can be found here.
- SATA Mode - IDE Mode
- XHCI Hand-off - Enabled
- EHCI Hand-off - Enabled
- Fast Boot - Disabled
- Boot mode select - UEFI
- Intel VT-D Tech - Disabled
- CFG Lock - Disabled
There is no option related to CSM, but since the GPU does not support UEFI, disabling CSM is not possible.