WiFiモジュールの電源管理(パワーセーブ)をオフにする方法について。 また一時的/恒久的に設定する方法について。
- 検証および動作確認に使用したデバイス・OS
- Raspberry Pi 5 / Ubuntu 24.04 LTS
- Raspberry Pi 3 Model B+ / Ubuntu Server 22.04 LTS
- Raspberry Pi Zero 2 W / Ubuntu Server 24.04 LTS
一時的にオフにする
iw
コマンドでpower_save
にoff
をセットすることで、パワーセーブをオフにできる。 例として、WiFiインターフェイスwlan0
のパワーセーブをオフにする場合は次のようにする。
この設定はpersistentではないので、再起動すると元の設定に戻る。
現在の設定状態を取得する場合は、次のようにする。
iwconfig
コマンドでも、Power Management:の項目で設定状態が確認できる。
常にオフにする
起動するたび、あるいはネットワークインターフェイスが有効になるたびに、パワーセーブをオフに設定する方法について。
Netplanの場合
ネットワーク設定をNetplanで管理している場合について。
Ubuntu 24.04 LTS時点でのNetplanでは、設定ファイルにネットワーク・インターフェースが有効になったときにコマンドを実行させるためのフックを記述することができない。 ここではその代わりとしてudevを使用する場合を考える。
udevルールでコマンドをトリガーする
udevルールファイルを作成して、ネットワークデバイスが作成(ACTION=="add"
)されたときにiw
コマンドを実行させるようにする。 以下のudevルールファイルを/etc/udev/rules.d/
に作成する。
udevadm test
コマンドを使って作成したルールが実際に動作するかテストする。 WiFiインターフェイス名がwlan0
の場合は、テスト対象として引数に/sys/class/net/wlan0
を指定する。
上記のようにルールファイルの読み込み(Reading rules file)と、コマンドの実行(run:)が行われていることを確認する。
udevadm trigger
コマンドで、デバイスが追加されるときのアクションをトリガーさせ、実際にルールを適用させる。
問題なく動作すれば、トリガーした後にpower_saveがoffとなっている。 また、再起動も同様にルールが適用され、パワーセーブがオフとなるはず。
その他の方法
netplan以外の場合
/etc/network/interfaces
などでネットワーク設定を行っている場合は、up
オプションなどでフックを利用することができる。 この方法については未検証のため省略。