M1 MacBook Air/Pro で PowerNap を Off にする方法

スリープ中の M1 MacBook Air が熱い！
===

（本文末尾に記事を追加してあります）

どうやらスリープ中も起動してるらしい。

**PowerNap** か！

Intel Mac では、**システム環境設定** の **バッテリー** に、 **PowerNap** を Off にする項目があったのだが、M1 Mac では項目がなくなっている。常に ON にしとけということらしい。

# 現在の状況を確認する

```
pmset -g
```

すると

```
Currently in use:
 standby              1
 Sleep On Power Button 1
 hibernatefile        /var/vm/sleepimage
 powernap             1
 disksleep            10
 sleep                1 (sleep prevented by powerd, apfsd, coreaudiod)
 hibernatemode        3
 ttyskeepawake        1
 displaysleep         2
 tcpkeepalive         1
 lowpowermode         1
```

と表示される。

```
sudo pmset -a powernap 0
```

とすると、 Off にできる。

# その後（追記）

BigSurの時は、上記の設定で変更できましたが、macOS 12 Montereyから、上記の設定は変更できなくなりました！

常に、`PowerNap` が `On` の状態になります。

ただし、常に `PowerNap` が `On` の状態でも、MacBook Air M1 は熱くならなくなりました。

しかし、`PowerNap` が常に `On` なので、スリープ中でもたまに起き出して、通信をしております。

この問題点は、常に充電をしておかないと、いつの間にか通信をしていて、バッテリー残量が減っていることです！

その対策としては、スリープする前に、`Wi-Fi` を `Off` にする事です。

## 更に追記

コメントを頂きまして、改めて確認したところ、`sudo pmset -a powernap 0` で、PowerNap を OFF にできました！

# ChatGPT による pmset(Power Manegement Set) の解説

`pmset -g` は、macOSにおいて電源管理設定を表示するコマンドです。以下に、各項目の意味を解説します。

1. **standby (スタンバイ):**
   - *意味:* スタンバイモードの有効化。スタンバイモードでは、一定時間経過後にコンピューターが低電力状態になり、省エネルギーモードに入ります。

2. **Sleep On Power Button (電源ボタンでスリープ):**
   - *意味:* 電源ボタンを押したときにコンピューターがスリープモードに入るかどうかを示す。1なら有効、0なら無効。

3. **hibernatefile (ハイバネートファイル):**
   - *意味:* ハイバネートモード時に使用されるファイルの場所。ハイバネートモードでは、システムの状態がディスクに保存され、電源が完全にオフになります。

4. **powernap (パワーナップ):**
   - *意味:* パワーナップモードの有効化。パワーナップモードでは、Macがスリープ中でも一部のバックグラウンドタスクが実行される。

5. **disksleep (ディスクスリープ):**
   - *意味:* ディスクのスリープまでの時間（分）。指定した時間が経過すると、ディスクがスリープモードに入ります。

6. **sleep (スリープ):**
   - *意味:* スリープモードの有効化。1なら有効、0なら無効。括弧内にはスリープを妨げているプロセスが表示されます。

7. **hibernatemode (ハイバネートモード):**
   - *意味:* ハイバネートモードの設定。ハイバネートモードでは、ディスクにシステムの状態を保存して電源が完全にオフになります。ここでは3が設定されています。

8. **ttyskeepawake (TTYのアクティブ維持):**
   - *意味:* ターミナル接続がアクティブな場合にスリープを防ぐかどうかを示す。1なら有効、0なら無効。

9. **displaysleep (ディスプレイスリープ):**
   - *意味:* ディスプレイがスリープモードに入るまでの時間（分）。

10. **tcpkeepalive (TCPキープアライブ):**
   - *意味:* ネットワーク接続がアクティブな場合にスリープを防ぐかどうかを示す。1なら有効、0なら無効。

11. **lowpowermode (低電力モード):**
   - *意味:* 低電力モードの有効化。1なら有効、0なら無効。低電力モードでは、一部の背景タスクが制限され、バッテリー寿命を延ばすことができます。

## hibernatemode

`hibernatemode` にはいくつかの異なる状態が存在します。以下は、主な状態とその意味です。

**hibernatemodeの状態:**

1. **0 (ハイバネートモード無効):**
   - *説明:* ハイバネートモードが無効になります。システムは通常のスリープモードになり、ディスクにはハイバネート用のデータが保存されません。

2. **3 (通常のハイバネートモード):**
   - *説明:* 通常のハイバネートモードです。システムの状態がディスクに保存され、電源が完全にオフになります。これにより、バッテリーが完全に空になってもデータが保持されます。

3. **25 (安全なハイバネートモード):**
   - *説明:* 通常のハイバネートモードと同様に、システムの状態がディスクに保存されますが、セキュリティの向上が試みられています。これはmacOS 10.7.5以降でサポートされています。

## Sleep modeとHibernate modeの違い

macOSにおけるSleep Mode（スリープモード）とHibernate Mode（ハイバネートモード）は、コンピューターが省エネルギーモードに入る際の異なるアプローチを指します。以下にそれぞれのモードの違いを説明します。

### Sleep Mode (スリープモード):

- **動作:**
  - メモリー（RAM）に格納されているデータや状態を維持しつつ、プロセッサーやデバイスを非アクティブにします。
  - ハードディスクや一部のハードウェアは通常動作しているが、消費電力は低い状態。
- **速さ:**
  - スリープからの復帰が迅速で、通常は数秒以内。
- **電力消費:**
  - 通常の動作よりも低いが、バッテリーが徐々に消耗されます。
- **使用場面:**
  - 短時間の休憩や、ユーザーが操作を再開するまでの一時的な休止状態。

### Hibernate Mode (ハイバネートモード):

- **動作:**
  - メモリー（RAM）に格納されているデータや状態をハードディスクなどの永続的なストレージに保存し、システムの電源を完全に切ります。
  - コンピューターは完全にオフになり、電力消費は最小限。
- **速さ:**
  - ハイバネートモードからの復帰はスリープモードよりも遅い。データをディスクから読み込む必要があるため。
- **電力消費:**
  - ハイバネートモード中はほぼゼロに近い電力消費。
  - バッテリーがほとんど消耗されず、数週間や数ヶ月後でもデータが維持される。
- **使用場面:**
  - 長期間の休憩時やバッテリーの長時間の保持が必要な場合。

### 選択と設定:

- macOSは通常、スリープモードをデフォルトで採用しています。
- ハイバネートモードは通常、バッテリーモードが低い場合や長期間の休憩時に自動的に切り替わることがあります。
- 一部のMacモデルや設定では、ユーザーが手動でこれらのモードを切り替えることも可能です。

状況や使用環境によって、これらのモードを適切に選択および設定することが重要です。