2024 年現在、Hackintosh は Apple Silicon の登場により終焉を待つ状況になっている。つまり、過去の傾向を考えると macOS 15 か 16 あたりが Intel macOS の最終バージョンになると思われる。
一方で、OCLP では Leopard (10.5) 時代の Intel Mac であっても Sequoia (15) の動作がサポートされている。このことから、ハードウェアの構成次第では最初の Intel macOS である Tiger (10.4) から近い将来にリリースされる最後の Intel macOS までが動作する Hackintosh を構築することができるのでは?と考えた。
参考 : 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. | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
- CPUID を Nehalem (
0x0106A2
) に偽装 - AppleIntelCPUPowerManagement を無効化
- OCLP による root patch が必要
- macOS Catalina / Mojave patcher による root patch が必要
- Mojave の kext で動作
- kernel patch または HackrNVMeFamily.kext で動作
- NVMeGeneric.kext で動作
- VoodooHDA.kext で動作
Tiger をサポートする最後の CPU は Penryn ( Core 2 シリーズ ) となっている。しかし、他のハードウェアと異なり CPU は基本的に上位互換のはずであり、より新しい Intel CPU でも Tiger は動作するのでは?と考えた。
過去にメイン Hackintosh で使用していた i7-4790K を持っており、DDR3 メモリなどの余ったパーツを使用したかったこともあり、Haswell 世代の構成で構築できるか試すことにした。
このビルドで最も重要なパーツとなる。なぜなら、Tiger で動作して最新の macOS でも動作する GPU 世代は非常に限られているため。試した限りでは、8800 GTS/GTX/Ultra の G80 世代 GPU が唯一の選択肢だった。
Tiger では GeForce 7xxx、Radeon X1xxx が動作するが、これらは 32bit EFI の Mac にしか搭載されていなかった影響で Lion (10.7) までしかサポートされておらず、OCLP をもってしても最新の macOS で利用することはできない。
一方で GeForce 9xxx、Radeon HD 3xxx は Leopard 以降にしかドライバが含まれておらず、Tiger では動作しないはず。
Tiger にドライバが含まれており、OCLP でもサポートされている GPU として下記を試したが、少なくとも自分は 8800 GTS しか Tiger での動作を確認できなかった。
- GeForce 8800 GTS
- GeForce 8600 GT
- Radeon HD 2400 PRO
- Radeon HD 2600 XT
MacBookPro (2007) が 8600M GT を搭載しているため、8600 GT は Tiger で動作するのではないかと考えたが、Leopard まででは動作したものの、Tiger で動作させることができなかった。
Radeon HD 2400 / 2600 は iMac (2007) が搭載しているためこれも動作するはずだが、DeviceProperties の設定が上手くできていないのか Tiger に限らず動作させることができなかった。
ちなみに、VRAM が 512MB の 8800 GTS は 8800 GT と同じ G92 コアであり Tiger では動作しないはず。320MB・640MB のモデルが必要。
Tiger では普通に起動すると画面が暗転し何も表示されなくなってしまう問題がある。これを解決するためには起動時にディスプレイケーブルの抜き差しが必要になる。
具体的には、OpenCore の picker で Tiger のボリュームを選択したらディスプレイケーブルを抜き、起動が完了するのに十分な時間 ( 10 秒程度 ) 待ってからケーブルを再接続することでデスクトップが正常に表示される。
自分の環境では DVI-HDMI アダプタを利用し HDMI モニタに接続しているが、他の接続方法で解決するかどうかは不明。
参考 :
- 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
32bit kernel である Tiger, Leopard で動作する NIC の kext は非常に限られている。
Z97M Gaming のオンボード NIC は Atheros Killer E2205 だが、これは Lion (10.7) までしか動作しなかった。Intel NIC + IntelSnowMausi であっても 32bit kernel では動作しない。
Realtek RTL8111 シリーズは Tiger でも動作する可能性がある。ただ、Haswell のような新しいマザーボードでは RTL8111 のリビジョンが上がっているので、Tiger で動作するかは不明。
Marvell Yukon 88E8053 は Tiger から kext が OOB で用意されている 1Gbps NIC である。オンボードで搭載されている例は少ないが、PCIe 拡張カードとして以前は流通していた。88E8053 の kext は Mojave (10.14) まで提供されており、Mojave の kext を利用することで Sequoia (15) であっても動作する優れた NIC である。
NVMe SSD は Yosemite (10.10) 以降でしか動作しないため、Mavericks (10.9) 以前では AHCI が必要になる。通常の SATA SSD でも問題ないが、XP941 / SM951 といった PCIe AHCI SSD が最良の選択肢となる。
Tiger においては、少なくとも Haswell 世代のマザーボードでは AppleAHCIPort.kext が panic するという問題がありなんと AHCI が使えない。そのため、SATA コントローラーを IDE モードにして AppleIntelPIIXATA.kext を使う必要がある。AppleIntelPIIXATA.kext には当然 Haswell チップセットの device id などは記載されていないので、ATAPortInjector.kext を用意した。
オンボードオーディオは ALC1150 だが、VoodooHDA を持ってしても 10.6 以前で動作しなかった。オーディオは適当な USB DAC で機能すると考えられるので、あまり気にしない。
ちなみに 8800 GTS には HDMI オーディオ機能はないため、Hackintosh に関係なく動作しない。
残念ながら、Tiger については vanilla kernel で動作させることができていない ( panic せず起動はするが、青い画面が表示されデスクトップに進まない )。そのため、Hackintosh 黎明期の custom kernel を使う必要がある。
現在 Tiger の custom kernel を入手することは難しいが、例えば archive.org から入手できる XxX OS x86 10.4.11 から custom kernel を取り出すことができる。
本ビルドでは 8.9.1 kernel SSE3 apr18 を利用しており、これは 10.4.9 の custom kernel となるが、10.4.10 / 10.4.11 も起動することができる。8.10.1 以降の custom kernel では vanilla kernel と同じ症状になり利用できなかった。また、10.4.9 の vanilla kernel も同様に利用できない。
ESP に Kernels/mach_kernel
のディレクトリ構造で custom kernel を配置し、config.plist で CustomKernel
を有効にすることで適用できるが、Tiger 以外のバージョンにも適用され起動できなくなってしまうので、CustomKernel
は使用せず直接 Tiger のボリュームに配置する。
config.plist を作成するにあたり、特に古い macOS を起動するためにいくつか注意する点があるので記載する。あくまで Z97M Gaming においての設定であり、どのマザーボードにも適用できるわけではないことに注意。
-no_compat_check
の使用を避けるため、このパッチを適用する。
参考 :
- 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
10.6 以前を起動するために RebuildAppleMemoryMap
が、10.5 以前を起動するために DevirtualiseMmio
が必要だった。
また、BIOS 1.9 では ForceExitBootServices
が 10.8 以下を起動するために必要だった。BIOS 1.4 では不要。
DevirtualiseMmio
を有効化すると、今度は 10.6 以降が起動しなくなる。これを回避するために、MmioWhitelist
の調整が必要となった。
参考 : https://dortania.github.io/OpenCore-Install-Guide/extras/kaslr-fix.html#using-devirtualisemmio
ただ、DevirtualiseMmio
と MmioWhitelist
の組み合わせで全ての macOS を起動できたのはどうやら幸運だったようで、自分が試したいくつかの環境では 10.5 以前のみ起動する設定と 10.6 以降のみ起動する設定しか作ることができなかった。
参考 : https://dortania.github.io/OpenCore-Post-Install/gpu-patching/nvidia-patching/
ただし、このパッチは 10.4 に対しては効かず、NVinject.kext を使う必要があった。
Lilu.kext は 32bit でも動作するはずだが panic を起こしてしまったので、Lilu とそのプラグインは x86_64
でのみロードされるように設定している。
10.4 / 10.5 では panic を起こす kext があるのでブロックしている。これにより 10.4 で AHCI が使えなくなるため、IDE モードの使用が必要となる。
IONetworkingFamily.kext を強制ロードしないと AtherosE2200Ethernet.kext が動かないケースがあるため設定する。
DummyPowerManagement
が 10.4 / 10.5 でのみ必要となるため、Emulate
では設定せず同等のパッチを記載している。
また、10.12 においては HackrNVMeFamily.kext を利用する代わりに IONVMeFamily.kext にパッチを当てている。
10.7 以前は Haswell に対応していないため Nehalem (0x0106A2
) の CPUID に偽装している。なぜか Ivy Bridge / Sandy Bridge ではなく Nehalem の CPUID にすることで DummyPowerManagement
が不要になる。
また、10.4 / 10.5 は CPUID の偽装が必要なかったため、10.6 / 10.7 にのみ適用している。
10.4 では ProvideCurrentCpuInfo
が必要。
本質的ではないが、PickerVariant
に GoldenGate_16_9
を指定している。これは、8800 GTS には GOP が無いことでブートローダーでは 1280x1024 までしか表示できないことにより 16:9 ディスプレイで表示が歪んでしまうので、アイコンの縦横比を調整したもの。画面を引き伸ばさず表示できるディスプレイであれば、GoldenGate
に切り替える。
revpatch=sbvmm
については RestrictEvents を参照のこと。
config_noserial.plist では SystemSerialNumber
を設定していないため、OCAuxiliaryTools などを利用して設定すること。
BIOS バージョン 1.6 以降では、SATA を IDE モードにすると PCIe AHCI SSD が OpenCore から見えなくなるという問題がある。BIOS 1.4 ではこの問題は発生しない。
この問題を解決するため、このガイドに従って BIOS 1.9 に PCIe AHCI SSD 用モジュールを導入した mod BIOS を作成して利用している。
各種ファイルはこちらに用意した。
- 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
CSM に関するメニューはないが、GPU が UEFI に対応していないため CSM を無効にすることはできない。