Mac信者のHackintosh修行

惑星で一番美しいOSが1台でも多くのマシンで動くことを目指します。

iMac Proもどきを自作する

f:id:siroanko:20180120200010p:plain

X299マザーボードにSkylake-Xを搭載した自作水冷マシンにmacOSをインストールする記事がtonymacx86で紹介されています。この記事が最初に書かれたのは去年の8月ですが、適宜アップデートされているようです。18コア36スレッドの究極のmacOSハードウェアを作るのは、ロマンですね。記事はかなりの長文ですのでサクッと抄訳してみたいと思います。

www.tonymacx86.com

>>----------------------------ここから抄訳----------------------------<<

Skylake-X/X299のマシンにmacOS High Sierra 10.13.2をインストールしてiMac Pro相当のマシンを作るためのガイドです。

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電力制御を行っています。そこで、ASUSBIOSにパッチを当て、MSR 0xE2レジスターを書き込みできるようにアンロックします。BIOSにパッチを当てる手順は以下です。

  1. BREWをインストールしてQT5をインストールする
  2. CodeRush UEFIPatchをGithubから入手する
  3. @interferenc氏によって作られたパッチのファイルpatches.txtを入手する
  4. ASUSから最新のBIOSを入手する
  5. UEFIPatchコマンドでパッチを当てる
  6. 出来上がったBIOSFAT32USBメモリに入れる
  7. BIOS起動時にF2を押してUSBからBIOSをアップデートする

再起動した後、ターミナルからbdmesg | grep MSRコマンドを入れると、MSR 0xE2レジスターがアンロックされたことを確認できます。

B2.) ASUSBIOS設定

BIOSを設定します。(訳注:通常の設定ですので省略します)

B3.) - GigabyteBIOS設定

BIOSを設定します。(訳注:こちらも省略します)

C.) エラーを防ぐための重要なアドバイス
  1. 配布しているファイルでは、AptioMemoriFIx.efiの代わりに再びOsxAptioFix3Drv-64.efiを使うようにしました。
  2. ATI RX560、580のユーザは、WhateverGreen.kextのv1.1.4とLilu.kext v1.2.1を使ってください。Vega 64とFrontier GPUはこれらは不要です
  3. NVIDIAのユーザは10.13 Web Driverを使ってください。
  4. Thunderbolt EX3 PCIe拡張カードを使用できているなら、macOSインストールの時にはThunderbolt 2ドライブを外しておきます。まだ使用できていないなら、インストール時には拡張カード自体を外しておきます。
  5. 最新のapfs.efiが使われていることを確認しておきます。
  6. sleep/wakeで問題を起こさないためにVoodooTSCSync.kextを入れておきましょう。VoodooTSCSync.kextのInfo.plistファイルの中のIOCPUNumberを書き換えておきます。
  7. ASUS Prime X299 Deluxで2番目のLANを使用する場合は、SmallTree-Intel-211-AT-PCIe-GBE.kextを入れるか、macOSインストール時に2番目のLANをBIOSでoffにしておきましょう。
  8. Lilu.kextでカーネルパニックを起こしたことがあります。最新のkext類を入れておきましょう。

D.) iMac Pro 用のmacOS 10.13 High Sierraを作る

D.1) iMac Pro EFIフォルダの準備
  1. EFI-X299-10.13.2-Release-iMacPro1,1-170118.zipをダウンロードしてください。この内容でEFIフォルダをデスクトップなどに作ります。
  2. EFI/CLOVERのconfig.plistをClover Configurator (v.4.60.0以上) で開いて、SMBIOSセクションのシリアル番号、ボードシリアル番号、SMIIODを設定します。
  3. 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をクリーンインストールします。このために、

  1. 新しいSSDなどを用意してHFS+でフォーマットします
  2. 先のD.1節で作ったEFIフォルダをそのSSDのESPに入れます
  3. このSSDを自作したシステムに接続し、さらにD.2節で作ったUSBメモリを入れて起動します
  4. ブート途中でUSBメモリを起動ドライブに指定します
  5. Cloverの起動画面でUSBメモリを選びます
  6. macOSSSDにインストールします。
  7. インストール途中の再起動ではF8キーを押してUSBメモリから起動するようにし、Clover画面ではInstall macOS ...を選択します。
  8. 次の再起動では、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