ノート PC (Chuwi MiniBookX N150) でスリープ時に電池を食うので見直した電源オプション設定
Chuwi MiniBookX という Windows 11 Home のノート PC を持ち歩くようになった。
「電源オプション」より「カバーを閉じた時の動作」として「スリープ」を選択しておいたので、フタを閉じればスリープになっているだろうと思ったところ、翌日 PC を開いてみたらバッテリー残量がほとんどなくなっていた。よくよく見ると、カバーを閉じた状態でも本体側面の電源 LED が光ったままだった。どうも「スリープ」が自分の想定しているような「省電力待機」の挙動じゃないっぽい?
ということで ChatGPT 大先生に聞きながら設定を見直した。期待動作としては以下のとおり。
- 自分の思う「スリープ」とは、ほとんど電池を食わずに1日くらいは待機できてほしい
- カバーを開けても自動的に画面が付かなくて良い。本体側面の電源ボタンを自分で押せば起動する形で良い
- つまりほとんど電源オフと同じ挙動でいいのだが、起動速度がある程度速いことを望んでいるので電源 OFF ではなく「スリープ」にしたい
結論から先に書くと、僕が望んでいるこの挙動は、ノート PC においては「スリープ」ではなく「休止状態」に突入させる方が正確なようだった。ということで、バッテリー駆動時に電源ボタン・スリープボタンを押した時、カバーを閉じた時は「休止状態」に入るようにし、電源に接続している間は3つの場合とも「スリープ」に突入させるように設定した。デスクトップ PC での「スリープ」とは、ノート PC ではちょっと感覚違うようで勉強になった。
ChatGPT に聞いてた過程で教えてもらった PowerShell コマンドを載せておく。
- 「この PC が何のスリープを使っているか」を確認する
PS> powercfg /a
以下のスリープ状態がこのシステムで利用可能です:
スタンバイ (S0 低電力アイドル) ネットワークに接続されています
休止状態
以下のスリープ状態はこのシステムでは利用できません:
スタンバイ (S1)
システム ファームウェアはこのスタンバイ状態をサポートしていません。
S0 低消費電力アイドルがサポートされている場合、このスタンバイ状態は無効です。
スタンバイ (S2)
システム ファームウェアはこのスタンバイ状態をサポートしていません。
S0 低消費電力アイドルがサポートされている場合、このスタンバイ状態は無効です。
スタンバイ (S3)
S0 低消費電力アイドルがサポートされている場合、このスタンバイ状態は無効です。
ハイブリッド スリープ
スタンバイ (S3) は使用できません。
ハイパーバイザーはこのスタンバイ状態をサポートしていません。
高速スタートアップ
現在のシステム ポリシーでは、この操作は無効になっています。
コレを見ると自分の PC は S0 = Modern Standby が有効になっていた。このモードはスマホの画面を消した状態に近くて、内部では通信などが維持されているため、全く省電力ではなく、バッテリー消費も激しいし、なんならマシンの発熱も起こりうる。
- カバーを閉じた時の動作設定をコマンドラインから確認する
PS> powercfg /query SCHEME_CURRENT SUB_BUTTONS
電源設定の GUID: 00000000-0000-0000-0000-000000000000 (バランス)
GUID エイリアス: SCHEME_BALANCED
サブグループの GUID: 00000000-0000-0000-0000-000000000000 (電源ボタンとカバー)
GUID エイリアス: SUB_BUTTONS
電源設定の GUID: 00000000-0000-0000-0000-000000000000 ([スタート] メニューの電源ボタンの操作)
GUID エイリアス: UIBUTTON_ACTION
利用可能な設定のインデックス: 000
利用可能な設定のフレンドリ名: スリープ
利用可能な設定のインデックス: 001
利用可能な設定のフレンドリ名: 休止状態
利用可能な設定のインデックス: 002
利用可能な設定のフレンドリ名: シャットダウン
現在の AC 電源設定のインデックス: 0x00000000
現在の DC 電源設定のインデックス: 0x00000000
- 最後に何が PC を起こしたかを確認する
PS> powercfg /lastwake
スリープ状態の解除履歴カウント - 1
スリープ状態の解除履歴 [0]
スリープ状態の解除元カウント - 0
- Windows が予約している Wake Timer を確認する
PS> powercfg /waketimers
システムにアクティブなスリープ解除タイマーがありません。
- USB マウスなどが勝手に起動させてしまう状態になっていないかどうか確認する
PS> powercfg /devicequery wake_armed
NONE
- SleepStudy レポートを出力する
PS> powercfg /sleepstudy
スリープ検査レポートがファイル パス C:\PATH\TO\sleepstudy-report.html に保存されました。
最後の SleepStudy レポートというのが有用で、直近の電源 ON・OFF やスリープ移行などの操作ログ、その時点のバッテリー残量などが HTML ファイルに出力される。
コレを見ると、自分が「スリープ」のつもりでカバーを閉じた時の動作は「Screen Off」と記録されていて、つまりほとんどマシン付けっぱなしと変わらない状態で一日放置していたことが分かった。
電源オプションで「スリープ」ではなく「休止状態」を選んだ後にレポートを見てみると、カバーを閉じた時の動作は「Hibernate」と記録されており、コレで無事余計な電池の消耗もなくなり、一日置いてもバッテリー残量はほぼ減っていないことが確認できた。