はじめまして、Sohと申します。
macOSをMojaveからCatalinaにアップデートした直後から、Hackintoshがスリープ中にランダムで起動するようになりました。
今回、そちらの対処法を調べてみたのでメモがてらに共有させていただきます。
(もし対処法のみ知りたい場合は一番下までスクロールしてください)
詳細な現状
- スリープ中にランダムで復帰する(ディスプレイはオフのまま)
- USBのSSDTは作成済み
原因の究明
まず、
log show -last 24h |grep -i "Wake reason"
でWake Reasonを調査します。
直近で起こったスリープ復帰を調査するには、24hを1hなどに変更すればその範囲のみでマスクされます。
私の環境下では、
kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: RTC (Alarm)
と表示されました。この場合厄介で、調べてもいまいち理由がつかめません。
Wake ReasonがRTC以外の場合はGoogle検索すると色々な解決法にヒットするかもしれません。
仕方ないので、
pmset -g log
でsleep logを確認してみます。
すると、
Created MaintenanceWake "mDNSResponder:maintenance" 00:00:00 id:0x0xd00008ed5 [System: PrevIdle BGTask SRPrevSleep kCPU]
という気になる記載がありました。
意訳すると、mDNSResponderのメンテナンスによってスリープから復帰されたという趣旨のログです。
原因がわかったので、次は*根本的な*原因について書き連ねていきます。
根本的な原因&対処法
Cloverのインストールパッケージでは、Disable Sleep Proxy Clientにチェックをいれると、
/etc/rc.boot.d/70.disable_sleep_proxy_client.local
にファイルが作成されます。
このファイルは、mDNSResponderのLaunch Daemonのplistファイルである
/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
を編集し、mDNSResponderに
-DisableSleepProxyClient
というオプションを付加する、というものです。
しかし、私の環境ではうまく動作しなかった(クリーンインストールでないから?)ようで、
plistファイルが編集されていませんでした。
macOS Catalinaからはシステム領域がプロテクトされているため、
sudo mount -uw /
で、Write権限とともにマウントします。
次に、
sudo /etc/rc.boot.d/70.disable_sleep_proxy_client.local
でSleep Proxy Clientを無効にするためのスクリプトを実行します。
一度目の実行で
Disabling mDNS responder sleep proxy
二度目の実行で
mDNS responder sleep proxy already disabled
というメッセージが出れば完了です。
最後に
これがためになる人はいるのかな・・・と思いつつ書いてますし、正直根本的な解決にはなっていないので、クリーンインストールしたほうがいい気もします。
この方法では、アップデート時にplistファイルが再度上書きされる可能性もあるので、その点には注意が必要です。
乱文失礼いたしました。