またまた私のMacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)がスリープから復帰しなくなってしまいました。
電源ボタンを押しても、全く反応がなく、ディスプレイに何も表示されない状態でしたが、電源コードを付け直したり、電源ボタンを押したりしていると、アップルマークが表示され、起動するようになりなりました。
GW明けで、久しぶりに起動させたのでバッテリーが空になってたのかと思い、バッテリー状態を確認してみましたが、30%程度でまだ余裕はあります。
とりあえずNVRAM(PRAM)のリセットとSMSのリセットを行い、次の日、様子をみることにしましたが、次の日の朝も復帰せず、リセットの効果はありませんでした。
NVRAM(PRAM)のSMCのリセット方法は以下です。
前回でもそうだったのですが、スリープ後、短時間後の復帰なら問題ないです。
長時間放置(一晩とか)した後に復帰で問題が発生していて、復帰できなくなります。
復帰ができず、今回は、完全にフリーズ状態になっているようです。
画面は真っ黒でキーを押しても何も反応しません。
しかも、電源ボタンを押してもすぐには反応しなくなってしまいました。
調べてみると、似たようなケースが発生したとの報告を発見しました。
どうも原因はHigh Sierraのバグがあり、セーフスリープからの復帰時に問題があるようです。(私のOSのバーションは10.13.4で、現時点で最新です。)
解決策というか回避策は、セーフスリープを使わず普通のスリープを使うとのことですが、セーフスリープとスリープの違いは何でしょう。
スリープの種類(Mac)
Macには以下の3種のスリープがあるようです。
・スリープ
・セーフスリープ
・ディープスリープ
スリープ
「スリープ」は復帰時に、メモリ内のデータのみ利用しますので、常にメモリへ電力を供給しておく必要があります。
つまりバッテリーが空になりメモリへ電力が供給されなくなると、データは消えてしまうんですね。
作成中のドキュメントを保存してなかったりすると、消えてしまいますが、私としては、バッテリー空の状態になるケースってのがほとんどないし、定期的にドキュメントの保存はするので、スリープでも問題ないかなと思ってます。
セーフスリープ
「セーフリープ」は、「スリープ」とほぼ同じですが、メモリだけじゃなく、スリープ時のデータをファイルシステムへも保存するんですね。
だからバッテリーがなくなって、メモリ上のスリープデータが消えてしまっても、ディスク上にも同じデータがあるので、そちらを使い復帰できるというわけです。
というわけで、「スリープ」より高機能ですが、今回バグが出てるのも、このセーフリープでして、このバグを回避するために、セーフリープを使わないようにしました。
ディープスリープ
最後に「ディープスリープ」についてですが、スリープデータをファイルシステムへ書き出し、復帰時もそのデータを利用するスリープです。
ですので、電力消費がほとんどなくなるのですが、復帰時時間がかかります。
スリープの種類の確認方法
デフォルトではセーフスリープが設定されているので、変更した覚えがない人は、セーフスリープが設定されているはずですが、念の為のため確認しましょう。
以下のコマンドで確認できます。
pmset -g
すると、以下のように表示されるかと思います。
System-wide power settings: Currently in use: standbydelay 10800 standby 1 halfdim 1 hibernatefile /var/vm/sleepimage powernap 0 gpuswitch 2 disksleep 10 sleep 1 (sleep prevented by sharingd, coreaudiod) autopoweroffdelay 28800 hibernatemode 3 autopoweroff 1 ttyskeepawake 1 displaysleep 2 tcpkeepalive 1 acwake 0 lidwake 1
注目すべきは以下の箇所で
hibernatemode 3
「3」がデフォルト値である「セーフリープ」を意味します。
つまり、上記の結果では現在は「セーフリープ」が設定されているんですね。
そして、0が「スリープ」、25が「ディープスリープ」を意味します。
今回はセーフリープからスリープへ変更したいので、hibernatemodeの値を0へ設定します。設定コマンドは以下になります。
セールスリープからノーマルスリープへ変更する方法
sudo pmset -a hibernatemode 0
上記コマンド起動にはパスワードが必要ですので、入力しましょう。
再度以下のコマンドで0が設定されたか確認しましょう。
pmset -g
System-wide power settings: Currently in use: standbydelay 10800 standby 1 halfdim 1 hibernatefile /var/vm/sleepimage powernap 0 gpuswitch 2 disksleep 10 sleep 1 (sleep prevented by sharingd, coreaudiod) autopoweroffdelay 28800 hibernatemode 0 autopoweroff 1 ttyskeepawake 1 displaysleep 2 tcpkeepalive 1 acwake 0 lidwake 1
0へ変更されてるのを確認し、OSを再起動しましょう。
おわりに
結局のところ、これの不具合が原因ではなかったようで、この方法では解決しませんでした。引き続き問題を調査したいと思います。
コメント