NetplanでWiFi設定

Netplanの設定方法。Raspberry Pi 3 B+、OSはUbuntu 18.04.2(arm64)にて、NetplanでRaspberry Piのon boardのWiFiを有効化しました。

Kauzmichi Shirai

NetplanでWiFi設定

手元にあるRaspberry Pi 3 B+でROS2を勉強しようと、環境構築していたらネットワークの設定で調べることになったのでメモします。

ROS2を動作させるために、Raspberry Piに64bitのUbuntu 18.04.2をインストールしました。
ここまではRaspberry PiにHDMIケーブルでモニターに接続してターミナルを表示し、USBキーボードで入力していました。インターネットへの接続には有線イーサネットを使ってました。
今後、WiFiを使うことを想定して、WiFi設定しました。

Ubuntu 18.04.02ではネットワーク設定にNetplanを採用しています。
ですので、過去の記事で書いたようにwpa_supplicant.confとinterfacesを編集する方法ではWiFi設定できません。
iPhone/NexusテザリングにRaspberry PiとPCを接続して、Raspberry Piコンソールを操作する

yaml設定

Netplan configuration examples によると、Netplanでは/etc/netplan/*.yaml.を編集することで、ネットワーク設定します。
今回、私の環境では50-cloud-init.yamlでした。

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        eth0:
            dhcp4: true
            match:
                macaddress: b8:27:00:00:00:00
            set-name: eth0
    wifis:
        wlan0:
            dhcp4: true
            access-points:
                    SSID_NAME0:
                        password: "password0"
                    SSID_NAME1:
                        password: "password1"
    version: 2
    renderer: NetworkManager

13行目までが有線イーサネットの設定で、この行までは自動で生成されていました。
14行目からWiFiの設定です。
wlan0にon boardのWiFiが割り当てられていました。
access-pointsでWiFiのSSIDとパスワードを設定します。
1つのインターフェイスに複数のWiFiのSSIDを記載できます。
今回はwlan0に、SSIDがSSID_NAME0というWiFiと、SSIDがSSID_NAME1というWiFiに接続できるように記載しました。
パスワードには”“が必要なようです。

    wifis:
        wlan0:
            dhcp4: true
            access-points:
                    SSID_NAME0:
                        password: "password0"
                    SSID_NAME1:
                        password: "password1"

22行以降にNetworkManagerを使うことを明記しています。
NetPlanはnetworkdとNetworkManagerをサポートしていますが、WiFiを使用するときはNetworkManagerを使わないといけないようです。

    version: 2
    renderer: NetworkManager

設定反映

yamlを設定したら、次のコマンドで設定を反映させます。

sudo netplan apply

参考

https://netplan.io/examples
https://qiita.com/Aton-kish/items/e06d87626b21e21c1e33