放置しておくとWi-Fi接続が切れて復帰しない。
どうやらWi-FiはPower management対象で、省電のためスリープする。
何かしらネットワーク系に動きがあれば復帰するらしいが、Headless*1のWi-Fi運用だと復帰できない(と思う。1日放置した後などはssh接続しても応答しない)
Power managementの対象外にしてもダメらしく、編み出されたのがdhcpcdが切れたらwlan0を強制ONする技法。
/etc/dhcpcd.exit-hook
を作成して以下にする :
[ -n ${disable_pm} ] || return 0 if [ “${interface}” = “wlan0” ]; then case ${reason} in CARRIER | NOCARRIER) iwconfig ${interface} power off ;; STOP | STOPPED) iwconfig ${interface} power on ;; esac fi
再起動すれば有効になる。
とりあえずRaspberry Pi 4B
+Raspberry Pi OS(12 bookworm)
で上手く行ってる。
REF :
- Raspberry Pi で WiFi 接続が切れる
- Raspberry Pi の Wi-Fi パワーマネジメントモードについて調べた
- best way to disable wlan0 power management
- dhcpcd-run-hooks(8)
*1:画面、マウス、キーボードなし