ASUS Z390マザーボードのshutdown/sleep対応

ASUSのZ390マザーボードで作ったHackintoshのその後の報告です。

シャットダウンが不完全な問題を解決すべく試行錯誤したところで、EmuVariableUefi-64.efiを使うことで解決しました。あまりにも呆気ない結末なのですが、EmuVariableUefi-64.efiがshutdownに関係するのは知りませんでしたし、もしかして困っている人がいるかもしれないので紹介します。

シャットダウンの症状

症状が出たマザーボードは、Z390チップセット搭載マザーボードのASUS ROG MAXIMUS XI HERO です。macOSのメニューバーから「システム終了…」を選んでシャットダウンしようとすると、そのままの画面で止まってしまいます。Cloverを-vオプションで立ち上げた状態でシャットダウンしようとすると、画面が暗くなった後に、右上に以下のようなメッセージが出ます。

vm_map_delete: map <ptr> [0x1003c1000...0x1003c2000] nothing at 0x1003c1000
Man Jan 21 21:29:26 2019 hoge.local com.apple.xpc.launchd[1] <Notice> Generating report ...
Man Jan 21 21:29:26 2019 hoge.local com.apple.xpc.launchd[1] <Notice> Report generation in 1 seconds.
bash: /private/var/install/shutdown_installer_tasks: No such file or directory
bash: /private/var/install/deferred_install: No such file or directory
Man Jan 21 21:29:26 2019 hoge.local com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice> Userspace teardown took: 5032 ms
Man Jan 21 21:29:26 2019 hoge.local com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) <Notice> Will be calling reboot(2) with flags: 0x0

スリープの時も同様です。-vオプションなしでは、画面が止まってしまい、-vオプションで起動していると、黒くなった画面右上に同じメッセージが出て反応がなくなります。

後からわかったのですが、このメッセージは異常を示すものではなく、ここで処理が停滞して止まっているだけのようです。実はこのマシンを組み上げた直後は、スリープもシャットダウンも正常に動いていた気がしていました。これも後からわかったのですが、気のせいではなかったようです。

シャットダウン問題解決

色々な方法を試したのですが、結局は最初に書いた通り、Clover の drivers64UEFI フォルダに、 EmuVariableUefi-64.efi を入れることですんなり解決しました。 EmuVariableUefi-64.efi は、macOSからATXマザーボード上のNVRAMがうまく読めない場合に、NVRAMのふり(エミュレーション)をしてくれるefiドライバーです。

マザーボード上のNVRAMがmacOSから利用できていればEmuVariableUefi-64.efiは不要なのですが、ASUSのこのマザーボードの場合は必要だったようです。NVRAMが機能しない場合は、

  • NVIDIAのWeb driverが動かない(Web driverを使用するかどうかをNVRAMに書き込んでいる)
  • 音量などの値が保存されない

などの症状が出ることは知っていましたが、スリープ、シャットダウンで固まってしまう現象が起こりうるとは知りませんでした。多分、シャットダウン時にNVRAMに情報を書き込もうとして、それができなくて処理が止まっていたと考えられます。

実のところ、最初にこのマシンを組んだ時には、EmuVariableUefi-64.efi を入れていてうまく動いていました。その後、試しに外しても動くようなので、マザーボードのNVRAMにアクセスできていると思い込んで、外していました。EmuVariableUefi-64.efi を外してから、シャットダウンに影響が出るまで時間がかかるので、因果関係に気づきにくいです。

Sleep問題

追記:この問題は10.14.4で発生しなくなりました。

ということで、一時は解決したかに思ったのですが、スリープの問題が発生していました。スリープに入って15秒くらいまではキーボード操作などで画面復帰するのですが、それ以降では画面が暗くなったままです。RX 580で発生しているようです。解決策見つかったら報告します。

(追記) こちらの方法で解決しました。

Sleep/shutdown対策のまとめ

スリープ、シャットダウンできない不具合はHackintoshでよくあるトラブルです。ただ、様々なことが原因で発生するので、対策も多岐に渡ります。一般的な解決策、ASUSの類似マザーボード案件を探して見つかった解決策、今回の解決策を列挙しておきます。

  • config.plistでFixShutdownをtrueにする。一番一般的な解決策です。だいたいこれで解決します。
  • config.plistでFixShutdown_0004をtrueにする。Cloverのマニュアルにも書かれているASUSマザーボード対策です。古くからの方法なので今は効かないかもしれません。今回も関係ありませんでした。
  • Cloverの起動オプションで、darkwake=0またはdarkwake=1とする。ASUSマザボの問題が解決したという報告がありましたが、今回は無効でした。
  • macOSのシステム環境設定でPower Napを無効にする。今回は関係ありませんでした。
  • BIOS設定で、Advanced / AMP Configuration / Power On By PCI-E/PCIをEnabledにする(出荷時設定はDesable)。ASUSマザボの問題が解決したという報告がありましたが、今回は無効でした。
  • EmuVariableUefi-64.efiもしくはEmuVariableUefi.efiを入れる(今回のシャットダウン解決策)。
  • CloverブートメニューでF11を押してnvramをリセットする。
  • /Library/Preferences/com.apple.PowerManagement.*ファイルを消す。これを消してもmacOSが自動作成してくれます。
    sudo rm /Library/Preferences/com.apple.PowerManagement.*
  • スリープからの復帰で画面が暗いままな状況はグラフィックスの問題でした。iGPUのデバイスIDを指定したら治りました。
  • いただいたコメントによると、ディスプレイを接続しているカードのコネクタを変えると治ることもあるようです。HDMIではダメだったけどDPにしたらスリープ解決したそうです。