Sandy Bridgeの作例です。スリープ、LAN、サウンドが機能します。iMessage、FaceTime、Continuity関連は未確認ですが純正無線ユニットをいれているので多分大丈夫です。CPUが古いのでMojaveではiGPUが動きません。たまたま手元にパーツがあったので試みましたが、Mojaveで動かすには色々無理があります。
Table of Contents
ハードウェア
- マザーボードはGIGABYTE GA-Z68MX-UD2H-B
- CPUはIntel(R) Core(TM) i5-2500K CPU @ 3.30GHz (MojaveではiGPU不可)
- グラフィックスはNVIDIA GTX 770, ブランドはELSA(OOBで動作)
- WiFi/BluetoothはBCM94360CD(OOBで動作)
AliExpress.com Product – BCM94360CD
マザーボードに搭載されているチップは以下です。
- インテルチップセットに追加のSATAがMarvell 88SE9172(OOBで動作)
- 有線LANがRealtek RTL8111E(RealtekRTL8111.kextで動作)
- オーディオがRealtek ALC889(AppleALC.kextで動作)
- USB 3.0がEtron EJ168(動作しません)
グラフィックスカードには手元にあったGTX 770を使いました。MojaveからNVIDIAのドライバが使えなくなりましたが、GTX 770は古いカードなので、もともとmacOSがサポートしています。なのでドライバ不要で動きます。
BIOS設定
まずはLoad Optimized Defaultsを選択して工場出荷時状態にします。その後で以下の設定をしました。
- AdVanced BIOS Features –> Onboard VGA –> Enable If No Ext PEG
- Integrated Peripherals –> PCH SATA Control Mode –> AHCI
- Integrated Peripherals –> F_USB30 Controller –> Disabled
- Integrated Peripherals –> R_USB30 Controller –> Disabled
- Integrated Peripherals –> GSATA3 Ctrl Mode –> AHCI
- Integrated Peripherals –> Onboard Serial Port 1 –> Disables
- Power Mnagement Setup –> HPET Mode –> 64-bit mode
Onboard VGAは、PCIeにグラフィックスカードが挿さっている場合にはiGPUを動かさないという設定にします。これ以外の設定にすると非サポートのiGPUが機能しようとするためか、sleepからの復帰に失敗します。電源は回復するのですが表示が真っ黒なままになります。
SATAのモードはmacOSがサポートするAHCIにします。最近のマザーボードではAHCIがデフォルトですが、古いマザーではIDEがデフォルトなので変更する必要があります。GSATA3の項目は、追加SATAチップのMarvell 88SE9127のことです。これもAHCIにします。シリアルポートはmacOSがサポートしていないのでDisabledにします。これが有効だと起動に失敗することがあります。HPETもmacOSに合わせて64-bit modeに設定します。
USB 3.0にはEtron EJ168というチップが使われています。当時のインテルのチップセットはUSB 2.0だけをサポートし、USB 3.0をサポートしていませんでした。なのでUSB 3.0はサードパーティのチップが使われました。EtronのチップはmacOSで不安定だったり使えない場合があありました。特に最近のmacOSでは古すぎてサポートされていないようです。今回の場合も、BIOS設定でUSB 3.0がEnabledになっているとMojaveの起動に失敗します。
ソフトウェアと機種ID
- macOS Mojave 10.14.3 (18D109)
- Clover v2.4k r4920
- iMac12,2
機種IDはこの世代のiMacのIDを採用しました。iMac12,2ではSandy BridgeのCore i5 2500S、i5 2400、i7 2600が採用されています。MojaveではSandy Bridgeはサポート外です。なのでそのままでは起動しません。後述のようにconfig.plistで互換性チェックを無効にして使います。またiMac12,1を指定しているとMojaveのインストールもアップデートもできません。今回は起動ドライブにmacOSを別のマシンからインストールしています。
EPSの設定
kext類 (kexts/Other)
- AHCI_3rdParty_SATA.kext
- AppleALC.kext
- Lilu.kext
- RealtekRTL8111.kext
- USBInjectAll.kext
- VirtualSMC.kext
- WhateverGreen.kext
このマザボの8個のSATAのうち2個はMarvell 88SE9172が担当しています。これを正しい名前で認識させるためにAHCI_3rdParty_SATA.kextまたはAHCI_3rdParty_eSATA.kextを使います。eの付く方はホットスワップ対応です。また、LANのチップのRealtek RTL8111Eを使用するためにRealtekRTL8111.kextを使います。オーディオのALC889はAppleALC.kextで動きます。
efiドライバ (dirver64EFI)
- ApfsDriverLoader-64.efi
- AptioMemoryFix-64.efi
- DataHubDxe-64.efi
- EmuVariableUefi-64.efi
- FSInject-64.efi
- SMCHelper-64.efi
- VBoxHfs-64.efi
DataHubDxe-64.efiとEmuVariableUefi-64.efiはもしかしたら不要かもしれません。
config.plist
以下です。実機で未使用のシリアル番号を生成して書き込みましたので、このままでも問題なく使えます。しかし、Apple社のサービスを使う前にシリアル番号、UUIDを独自の値に設定し直してください。
MojaveはSandy Bridgeをサポートしていないので、iMac12,2では起動しません。そこで起動オプションに-no_compat_checkを入れて、互換性チェックを無視するよう指定しています。
うちはiMac 13.1に設定してMojaveを動かしていますが12.2でも動くんですね。知りませんでした。
やはりSandy BridgeでMojaveを動かすのはだいぶ無理がありますね。とりあえずビデオカードは必須ですかね。。ただ、一旦動作させることができればかなり安定している印象があります。8年くらい前のCPUがまだ使えるとは思ってませんでした。
とはいえ、-no_compat_checkを入れて動かしているので動くというレベルではないかもしれないです。アップデートもできないので、長く使うなら13.1の方が良いかもと思います。