ひこぽんのーと

覚書と雑記です。

Raspberry Pi 3のWi-Fi自動起動のこと

Raspberry Pi 3にArch Linux Armをインストールして、
オンボードEthernetWi-FIに個別のIPアドレスを付与する点で
非常にハマったのでメモを残しておく。

Arch Linux Armのネットワーク設定は、
デフォルトの場合、Systemd-Networkdが使われていて、
Ethernetの方は自動認識してくれるが、Wi-Fiは設定を作成しないと接続できない。
そこでWi-Fi接続の際は、WPA_Supplicantの定義ファイルとSystemd-Networkdの定義ファイルを作成する必要がある。

  • WPA_Supplicantの定義 -> Wi-Fi接続設定(SSID、パスワード関連)
  • Systemd-Networkdの定義 -> IPアドレス設定(DHCP、手動接続など)

ところが、これをやってもIPアドレスは振られるものの
なぜかWi-FIから接続できなかった。(結局、原因もわからなかった)

そこで、Systemd-Networkdを使わずにNetworkManagerを使う方針に変更。
nmtuiで接続設定を作成(SSID、パスワード関連およびIPアドレス設定)し、
OS起動時にWi-Fi接続が行われるように設定した。

  • 「自動的に接続する 」をON
  • 「全ユーザーに使用可能 」をON

ところが、起動時にWi-Fi接続は行われなかった。
コマンドを用いて手動起動は確認できた。

nmcli con up <接続定義名>

ところで、うちのWi-Fiルーターはステルスモードで動いている。
WPA_Supplicantでは「scan_ssid=1」の定義を加える必要があったが、
nmtuiではそのような項目は無かったように思った。
そこで、nmcliで各プロパティを見ていると、
「802-11-wireless」の項目に「hidden」というプロパティがあるのに気づいた。
マニュアルによるとデフォルトはFALSEらしい。

結局、NetworkManagerでWi-Fi自動起動ができた。
ステルスモード時は「802-11-wireless.hidden」を「TRUE」にする必要がある。

nmcli connection edit <接続定義名>
nmcli > set 802-11-wireless.hidden TRUE
nmcli > save
nmcli > quit

結局、Systemd-Networkdでできなかった理由はわからないままか。。。
おしまい。