Mac信者のHackintosh修行

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

SAPPHIRE NITRO+ RADEON RX 580を使う (10.13.4以降)

更新: RX 480/470がサポートされたことを追記しました。2018/4/16

f:id:siroanko:20171118234329p:plain

10.13.4では、Radeon搭載のThunderbolt 3接続外部GPUボックスが正式サポートされました。これにより、AMDグラフィックスカードの互換性が向上して、今まで以上に簡単にHackintoshで使えるようになりました。

10.13.3以前のmacOSでSAPPHIRE NITRO+ RADEON RX 580を使ったRadeon RX 580を使う方法を以下の記事で紹介しました。お勧めしませんが、どうしても10.13.3以前のmacOSを使いたい場合はこちらを参考にしてください。

siroanko.hatenablog.com

上記の記事では、kextを使用したり、config.plistに設定を書いたり、kextにパッチを当ててモデル名を書き換えたりしました。10.13.4では、これらの作業が全て不要になりました。結論として、SAPPHIRE NITRO+ RADEON RX 580は、箱から出してそのまま挿せば、なんの設定もしなくてもHackintoshで動作させることができます。

以下は、上の古い記事を、10.13.4に合わせて書き直したものです。

AMDから1枚を選ぶ

Hackintoshのためのグラフィックスカード選び方に関してこの記事で紹介しました。

siroanko.hatenablog.com

また、Appleが外付けGPUボックスでサポートするAMDのデスクトップ向けグラフィックスカードは、こちらで紹介しました。

siroanko.hatenablog.com

これによると、Polaris, Vega 56, Vega 64の3種類のアーキテクチャがサポートされているようです。具体的なチップは、以下です。

これらを使えば、macOS Sierra 10.12.6からHackintoshで実用的に使用できるようになり、さらに、macOS High Sierra 10.13.4以降では箱から出してそのまま動作します。

 

SAPPHIREを選ぶ

Appleのサポートページでは、RX 570/580 GPUを使った推奨グラフィックスカードとしてSAPPHIRE PULSEシリーズが紹介されています。SAPPHIREは、AMDのグラフィックスカードだけを長年手がけていて、供給も安定している印象があります。そういう実績を評価してか、Appleが販売しているVR開発者用キットであるExternal Graphics Development Kit では、 SAPPHIRE PULSE RADEON RX 580が搭載されています。PULSEを入手できれば、10.13.3以前のmacOSであっても互換性が高いです。ただ、このカードは、すでに販売中止になっていて、入手が困難です。

PULSEの後継機種は、オーバークロックされたNITRO+です。これなら入手は容易です。また、10.13.4からは、NITRO+でもPULSE並みの互換性が確保されるようになりました。そこで今回は、SAPPHIRE NITRO+ RADEON RX 580 8Gを選びました。SAPPHIRE以外のブランドのカードでも、次に紹介するSONNETの資料によると、問題なく動くようです。ただ、Appleが採用・言及しているブランドですので、マザーボードブランドに合わせて見た目を揃えたいというように、特に選びたいブランドがなければ、HackintoshにはSAPPHIREを選んでおくのが無難かと思います。

SAPPHIRE以外の選択

Sonnet社が、同社のThunderbolt 3接続外部GPUボックスで使う各社グラフィックスカードの互換性リストを公開しています。

siroanko.hatenablog.com

これから推測すると、10.13.4ではSAPPHIRE以外のメーカのカードも問題なく使用できるようです。そして、互換性の有無は、搭載しているGPUチップで決まるようです。このリストの内容をまとめると、以下のようです。

  • RX 470, RX 480, RX 570, RX 580はどのメーカ製品も互換性あり
  • RX Vega 56/64はどのメーカ製品も互換性あり
  • RX 460/550/560は互換性なし
  • R9 NANO/FURY は互換性なし
  • WX 5100は非互換で、WX 7100, WX 9100は互換性あり
  • NVIDIA GeForce は互換性なし 

RX 460, 550, 560などは価格が安く入手しやすいですが、この資料では互換性が無いとされています。実際に、Hackintoshで使った場合に、スリープからの復帰などで問題が出ることが報告されています。RX 460, 550, 560は避けた方が良いようです。

NVIDIAからの乗り換え方法

実はこれまでNvidia Geforceを使っていました。大昔はAMDを使っていましたが、macOSとの互換性が悪くなって、最近は、ずっとNvidiaでした。NVIDIAからAMDに移行するためには、NVIDIAのために入れていたWebドライバやkextやconfig.plistの設定を外します。

まずは、/Library/Extensions/に導入されたWebドライバをアンインストールします。Webなんとかという名前のkextが複数ありますので、それを消せば良いです。また、iMacretinaディスプレイの回路を回避してブラックスクリーン発生を防いでくれる機能があるNvidiaGraphicsFixup.kextを入れている人も多いと思いますが、これも外します。また、config.plistでNvidiaWebドライバを有効にしていた所もfalseにします。もしくは、この部分を全部削除してもかまいません。

        <key>SystemParameters</key>

        <dict>

                <key>NvidiaWeb</key>

                <false/>

        </dict>

RADEONを動かす

ここでシステム終了して、NVIDIAを使っていた場合はそれを外し、Radeon RX 580に差し替えます。

初期化の問題(10.13.3以前で発生)

AppleのThunderbolt 3外付けGPUボックスでは、外部グラフィックスカードがプライマリディスプレイになることはありません。そのため、Hackintoshでグラフィックスカードをプライマリとして使用すると、初期化の問題が10.13.3以前では発生しました。この問題に対応しないと起動しても画面が表示されませんでした。しかし、10.13.4ではその問題がなくなり、差し替えて、電源を入れるだけで画面表示されます。

10.13.3以前では、 

  • Radeonカードをセカンダリで起動する。例えばマルチスクリーン環境にして内蔵GPUをプライマリにする。
  • kextやDSDTにパッチを当てて初期化をさせないようにする。
  • これに相当する作業をWhateverGreen.kextとLilu.kextの組み合わせで実施する。
  • CloverのRadeonDeInit機能で初期化を阻止する

 のいずれかの手段で初期化問題を回避していました。しかし、これが必要なくなりました。むしろ副作用が出る可能性もあります(10.13.4でRadeonDeInitを使うとノイズが出ました)ので、元の状態に戻すのが良いです。

モデル名の誤表示(10.13.3以前で発生)

10.13.3以前ではSAPPHIRE PULSEシリーズ以外のカードで、名前が正しく認識されない問題もありました。これは表面上のことで、性能や互換性には関係しないと言われています。見た目にこだわる場合は、対応するkextにパッチを当てることで表示名を変更できました。しかし10.13.4では、NITRO+カードも「システム情報」などで正しい名前が表示されます。

f:id:siroanko:20180403122858p:plain

OpenCLスコアの劣化(10.13.4でも発生)

Geekbench 4でのOpenCL Scoreは145000前後です。他でも報告されている程度の妥当な成績なので、正しく設定できていると思います。しかし、しばらく使用していると性能が低下して、ベンチマークスコアが50000くらいになってしまうことがあります。色々試して見たところ、Intel CPU内蔵GPUマザーボードの設定で無効にしていると性能低下が発生するようです。内蔵GPUセカンダリーに設定して使用しない場合でも、有効にしておくのが良いようです。(この性能低下問題はMojaveでは発生しなくなりました。しかし内蔵グラフィックスを無効にするとJPEGファイルがクイックルックやプレビューで開けないようです。内蔵グラフィックスは有効にしておくのが良いようです。)

Safari動画再生の停滞(10.13.4でも発生)

Intel CPU内蔵GPUマザーボードの設定で有効にすると、今度は別の問題が発生することがあります。NITRO+では、SafariYoutubeなどの動画を再生すると、再生がカクカクして滞ったり、場合によってはハングすることが発生しました。Google Chromeでは問題が出ません。この不具合は、CPU内蔵GPUを無効にすれば解決しますが、上記で述べたような性能低下が発生します。

以前、Intel HD Graphicsを使って同様な不具合が発生した経験があり、その時は、IntelGraphicsFixup.kextとLilu.kextの組み合わせで解消しました。今回も、これで改善しました。ただし、IntelGraphicsFixup.kextとLilu.kextは最新版を使うのが良いです。古いバージョンだと改善しません。

ということで、Radeon GPUを正しく動作させるために10.13.4であっても

  • Intel CPU内蔵GPUは有効にしておく
  • IntelGraphicsFixup.kextを使う

のが良いようです。