X299マザーボードにSkylake-Xを搭載した自作水冷マシンにmacOSをインストールする記事がtonymacx86で紹介されています。iMac Proのようなマシンです。この記事が最初に書かれたのは去年の8月ですが、適宜アップデートされているようです。18コア36スレッドの究極のmacOSハードウェアを作るのは、ロマンですね。記事はかなりの長文ですのでサクッと抄訳してみたいと思います。
>>—————————-ここから抄訳—————————-<<
Skylake-X/X299のマシンにmacOS High Sierra 10.13.2をインストールしてiMac Pro相当のマシンを作るためのガイドです。
Table of Contents
A.) ハードウェアの概要
i7-7640X と 7740X は、2チャンネルのDDR4-2666であったり、PCI express 3.0が16本しかなかったりで、見劣りがします。i7-7800とi7-7820は4チャンネルDDR4-2666ですがPCIeが28本です。ということで、最高の性能を得るためには、i9-7900X以上のCPUを選択することをお勧めします。
今回の構成は以下です。
- マザーボード: Asus Prime X299 Deluxe
- CPU: i9-7980XE (18 core, 4.4Ghz)
- メモリ: Tridentz DDR-4 3200 Mhz 128GB (8x16GB)
- GPU: Gigabyte Aorus GTX 1080 Ti Waterforce WB Extreme Edition 11GB
- システムディスク: EVO 960 NVMe M.2 1TB (system disk macOS High Sierra 10.13.2); EVO 960 NVMe M.2 1TB (system disk macOS Sierra 10.12.6 Sierra)
- 電源: Corsair AX1500i
- モニター: LG 38UC99-W 38″ curved 21:9 Ultra Wide QHD+ IPS Display (3840 pix x 1600 pix)
- Bluetooth + Wifi: BCM94360CD
- ケース: Thermaltake Core X71
- CPUとグラボの水冷: 2台のD5ポンプ、360mm, 280mmのラジエータを複数使ったDIY水冷
B.) マザーボードのBIOS
B1.) ASUS BIOSにパッチを当てる
本物のMacでは、MSR 0xE2レジスタが書き込み可能で、これによりOSX XCPM電力制御を行っています。そこで、ASUSのBIOSにパッチを当て、MSR 0xE2レジスターを書き込みできるようにアンロックします。BIOSにパッチを当てる手順は以下です。
- BREWをインストールしてQT5をインストールする
- CodeRush UEFIPatchをGithubから入手する
- @interferenc氏によって作られたパッチのファイルpatches.txtを入手する
- ASUSから最新のBIOSを入手する
- UEFIPatchコマンドでパッチを当てる
- 出来上がったBIOSをFAT32のUSBメモリに入れる
- BIOS起動時にF2を押してUSBからBIOSをアップデートする
再起動した後、ターミナルからbdmesg | grep MSRコマンドを入れると、MSR 0xE2レジスターがアンロックされたことを確認できます。
B2.) ASUSのBIOS設定
BIOSを設定します。(訳注:通常の設定ですので省略します)
B3.) – GigabyteのBIOS設定
BIOSを設定します。(訳注:こちらも省略します)
C.) エラーを防ぐための重要なアドバイス
- 配布しているファイルでは、AptioMemoriFIx.efiの代わりに再びOsxAptioFix3Drv-64.efiを使うようにしました。
- ATI RX560、580のユーザは、WhateverGreen.kextのv1.1.4とLilu.kext v1.2.1を使ってください。Vega 64とFrontier GPUはこれらは不要です
- NVIDIAのユーザは10.13 Web Driverを使ってください。
- Thunderbolt EX3 PCIe拡張カードを使用できているなら、macOSインストールの時にはThunderbolt 2ドライブを外しておきます。まだ使用できていないなら、インストール時には拡張カード自体を外しておきます。
- 最新のapfs.efiが使われていることを確認しておきます。
- sleep/wakeで問題を起こさないためにVoodooTSCSync.kextを入れておきましょう。VoodooTSCSync.kextのInfo.plistファイルの中のIOCPUNumberを書き換えておきます。
- ASUS Prime X299 Deluxで2番目のLANを使用する場合は、SmallTree-Intel-211-AT-PCIe-GBE.kextを入れるか、macOSインストール時に2番目のLANをBIOSでoffにしておきましょう。
- Lilu.kextでカーネルパニックを起こしたことがあります。最新のkext類を入れておきましょう。
D.) iMac Pro 用のmacOS 10.13 High Sierraを作る
D.1) iMac Pro EFIフォルダの準備
- EFI-X299-10.13.2-Release-iMacPro1,1-170118.zipをダウンロードしてください。この内容でEFIフォルダをデスクトップなどに作ります。
- EFI/CLOVERのconfig.plistをClover Configurator (v.4.60.0以上) で開いて、SMBIOSセクションのシリアル番号、ボードシリアル番号、SMIIODを設定します。
- VoodooTSCSync.kextをEFI/CLOVER.kexts/Other/に入れます
D.2) iMac Pro macOS High Sierra 10.13.2 (17C2120) のInstallerパッケージを作る
訳注:iMac Proにインストールされているらしい10.13.2 (17C2120)は、現在App Storeでは配布されていません。App Storeにある最新は、17C205です。17C2120をcurlコマンドでアップルのサーバから取り寄せて、インストーラパッケージを作る手順が説明されています。長いのでオリジナルを見てください。もしこれからiMacを作る場合、間も無く10.13.3が出ると思いますので、そうなったらそれを使えば良いので、この作業は不要になります。
D.3) iMac Pro macOS High Sierra 10.13.2 (17C2120) USB インストーラを作る
いつものようにcreateinstallmediaコマンドで、インストール用USBメモリを作ります。作ったUSBメモリをブート可能にするために、以下の操作をします。
cd /Volumes/USB_VOLUME mkdir .IABootFiles cd .IABootFiles cp /Volumes/USB_VOLUME/System/Library/CoreServices/boot.efi .
前のD.1節で作ったEFIフォルダを、このUSBのEFIパーティションに入れます。
D.4) iMac Pro macOS High Sierra 10.13.2 (17C2120) のクリーンインストール
Skylake-X/X299の自作システムに、17C2120をクリーンインストールします。このために、
- 新しいSSDなどを用意してHFS+でフォーマットします
- 先のD.1節で作ったEFIフォルダをそのSSDのESPに入れます
- このSSDを自作したシステムに接続し、さらにD.2節で作ったUSBメモリを入れて起動します
- ブート途中でUSBメモリを起動ドライブに指定します
- Cloverの起動画面でUSBメモリを選びます
- macOSをSSDにインストールします。
- インストール途中の再起動ではF8キーを押してUSBメモリから起動するようにし、Clover画面ではInstall macOS …を選択します。
- 次の再起動では、F8でSSDを選んで、Clover画面ではmacOS High Sierraアイコンを選びます
D.5) すでに動いている10.13 SSDを自作iMac Pro用に変換する
訳注:配布されている、iMac Pro非対応のmacOSを、iMac Pro対応にする方法が説明されています。ESP部分を、今回用意したものに差し替え、/System/Library/CoreService/PlatformSupport.plistにBoardID Mac-7BA5B2D9E42DDD94を追加します。これも10.13.3が出れば不要な作業かと思います。
D.6) iMac Pro macOS High Sierra Build Update Procedure
クリーンインストール、もしくは、iMac Pro用macOSへの変換が成功した後、10.13.2追加アップデートを当てることができます。これでビュルト番号は17C2120から17C2205になります。10.13.3 Public Beta 4へアップデートすることもできます。これらは通常のApp Storeから可能です。
訳注:もしかしたら10.13.3 Public Beta 4を使えば、そのままiMac対応High Sierraになっていたのかもしれないですね。
E.) インストール後の設定
E.1) CPU電力制御設定
訳注:電力制御を動かすための設定が説明されています。もともとXeonやXシリーズは、電力制御の設定が必要だったのですが、iMac Proのおかげで多少は楽になったようです。それでもいくつか作業が必要のようです。また、ssdtPRGen.shを使ってSSDTも作ります。
E.2) グラフィックス
- RX 560, RX 580はWhateverGreen.kext v1.1.4とLilu.kext v1.2.1.の組み合わせで使うことができます。
- Vega64とFrontierは10.13でそのままサポートされていますのでWhateverGreen.kextやLilu.kextは不要です。
- NVIDIAのカードもWeb Driverでサポートされています。17C2120や17C2205が動くバージョンのWeb Driverも配布されています。10.13.3 Public Beta 4を使う場合は、パッチを当てます。(訳注:この後パッチの方法が説明されています。)
- NVIDIAのブラックスクリーンを回避するには、NvidiaGraphicsFixup.kext v.1.2.1とLilu.kextを使います。10.13.3 Public Beta 4の場合は、NVDAStartupWeb.kextへのパッチが必要です。
E.3) オーディオ
- オーディオはAppleALC.kext v1.2.1.とLilu.kext v.1.2.1で対応できます。ただしconfig.plistでDSDTにパッチを当てる必要があります。またAudio IDの設定も必要です。
- VoodooHDA.kext 2.9.0.d10も使えます。が、VoodooHDA.kextのInfo.plistを書き換える必要があります
- AppleHDA.kextにパッチを当てることもできます。ただ、これはシステムがバニラでなくなってしまいます。
E.4) USB の設定
10.13.2追加アップデートから、X299マザーボードの全ての外部・内部USB 3.1 Gen 1 とUSB 2.0 Gen 1が仕様通りのスピードで動くようになりました。また、全ての外部・内部USB 3.1 Gen 2ポートも140 MB/sで動きます。
E.5) ASUS Prime X299 Deluxe Thunderbolt EX3 PCIeカードを使う
Thunderboltカードを使うためには、残念ながらWindowsもインストールする必要があります。Windowsでカードが認識されて初期化されて、初めて、BIOSでThunderboltの設定ができるようになります。そこで、Windowsを起動できるようにインストールして、付録のThunderbolt EX3 DVDからドライバをインストールします。この後、BIOSからカードを設定します。
E.6) NVMe の互換性
10.13からSamsung EVO 960 M.2 NVMe SSDのような市販のSSDがネイティブに使えるようになりました。10.12で必要だったパッチは全て不要になりました。
E.7.) SSD TRIM Support
TRIM機能はアップル純正SSDでしかonになりません。そこで、IOAHCIBlockStorage.kextにconfig.plistでパッチを当てます。それでTRIMが有効になります。
Name* Find*[HEX] Replace*[HEX] Comment MatchOS IOAHCIBlockStorage 4150504c 45205353 4400 00000000 00000000 0000 Trim Enabler 10.12.x,10.13.x
E.8) ASUS Prime X299 Deluxe のEthernet
このマザーボードには、Intel I1219-VとIntel I211_ATの二つのEthernet端子がついています。前者は、Hackintoshで以前からサポートされていました。後者も、SmallTree-Intel-211-AT-PCIe-GBE.kextのおかげで使用できるようになりました。
E.9) ASUS Prime X299 Deluxe PCI Device Implementation
全てのPCIデバイスを正しくインストールするために、適切なACPI DSDT置き換えパッチテーブルと、SSDT-X299.amlが必要です。ASUS Prime X299 Deluxeのためにどちらも用意されています。添付したconfig.plistに含めてあります。
E.10) 「このMacについて」のCPU表示
見た目だけの問題ですが、何もしないと、Processorの表示がUnknownになっています。これは
/System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/Resources/English.lproj/AppleSystemInfo.strings
を書き換え、config.plistのCPUセクションのTypeをUnknownに設定すると修正できます。
E.11) Logic-X などのAudioソフトウェア機能
MSR 0xE2レジスタのロックを外したことで、macOSのKernelが全て電力制御を担当することになり、以前のLogic-Xやその他のオーディオソフトウェアの問題が解決されました。それでも、Logic-Xで設定しなければならない項目があります。(訳注:これらのアプリのことがよくわかってません。すみません。)
F.) ベンチマーク
- GeekbenchのCPUベンチマークはMulti-coreが65,348, Single-coreが5,910です。
- CinebenchのCPUベンチマークは4,618 CBです。
- GeekbenchのOpenGLは229,965です。
- GeekbenchのMetal2は242,393です。
- Unigine Heaven Benchmark 4.0はFPS: 76.6, Score 1929
- Unigine Valley Benchmark 1.0はFPS: 58.2, Score 2435
ども、Boot MacOSさん、
>MSR 0xE2レジスタのロックを外したことで、macOSのKernelが全て電力制御を担当することになり、
>以前のLogic-Xやその他のオーディオソフトウェアの問題が解決されました。
>(訳注:これらのアプリのことがよくわかってません。すみません。)
epileptic or panic attacksの回避ができるよぉ〜んとありますね。。。
さらに、You will rapidly notice that everything fully behaves as expected.
The Hyperthreading-sample plays flawless at alternated CPU frequencies. と言ってますね。
結局、CFG Unlock MSR 0xE2を執り行うと完璧なるLogic X環境になるから、特にLogic Pro Xを使ってる人はつべこべ言わずやりなさいっていうことなんだと思いました。。。
OpenCoreなんかも、Toolsの下にVerifyMsrE2.efiとか入ってますし、CaseySJさんのGuideなんかにはCFG Unlock MSR 0xE2を執り行うのが当たり前的な感じもあるんで、何でかなぁと思ってたらこの記事読むと、あぁ〜なるほどねと分かりました。
[GUIDE] HWP(Intel Speed Shift) enable with full power management
https://www.insanelymac.com/forum/topic/321021-guide-hwpintel-speed-shift-enable-with-full-power-management/
ギガなどマザボのBIOSでMSR 0xE2 がUnlocking できないなら、こちらのガイドに従ってUnlockできました。
BiosがF9?になると、デフォでUnlockingされてるらしいですし、Z490系だと各社マザボもUnlockされてるのかな???
Micro-Guide: Unlocking MSR 0xE2 on Gigabyte Designare Z390
https://www.tonymacx86.com/threads/success-gigabyte-designare-z390-thunderbolt-3-i7-9700k-amd-rx-580.267551/post-2092710
MSR 0xE2レジスタのアンロックはNVRAMが有効化されてるのが前提なので、本物のNVRAMを使うシリーズの続編か、本物のKernel電力制御(HWP)を使うみたいな記事があると良いですね。。。
Youtubeにビデオが投稿されてたので貼っておきます。
Fixing your BIOS CFG Lock for the perfect Hackintosh
CFG Unlock MSR 0xE2について少し調べてみました。手元のASUS Z390マザボにはDisabled/Enabledの設定があってデフォルトはDisabledでした。試しにEnabledにしたら(config.plistでQuirksを設定していません)起動しませんでした。ASUS Z490の方には、この設定が無くなっていました。でもQuirks設定しなくても起動しました。Z390ではデフォルトがDisabledだったので、Z490ではDisabledになったまま、Enabledに変更できる設定がなくなったのかなと思っています。CFG Lockの状態を確認しようと思い、ツール(bdmesgやHackintool)をいくつか試しているのですが、うまく動かないのでもう少し調べてみます。