RaspberryPi4 をWiFiで既存APに接続する

設定ファイルはインデントに注意

/etc/netplan内にあるyamlファイルを適宜変更する。

この時、各項目のインデントも大事なので、その点も含めてちゃんと書く必要がある。
また、gateway4: 192.168.a.b のようなゲートウェイの指定方法は非推奨となったので、下記の通り routes を使う。

network:
   version: 2
   ethernets:
      eth0:
         dhcp4: false
         dhcp6: false
         addresses: [192.168.x.y/24]
         routes:
         - to: default
           via: 192.168.1.1
         nameservers:
            addresses: [192.168.x.z]
      wifis:
         renderer: networkd
         wlan0:
            access-points:
                "接続したいアクセスポイントのSSID":
                  password: "xxxxxxxxxxxx"
            dhcp4: false
            addresses: [192.168.a.b/24]
            nameservers:
              addresses: [192.168.x.z]
            optional: true

書いた設定があっているか試す。
試すけど、文法的に合っているかどうかのチェックだけなので、そこは注意。
IP 被ってるとかデフォゲが間違ってるとか、サブネットがおかしいとか、そうした点はちゃんと自分で確認する必要がある。

てことで、try してみてその設定で正常につながるか、等々確認する。

$ sudo netplan try --timeout 10

Do you want to keep these settings?

Press ENTER before the timeout to accept the new configuration


Changes will revert in  7 seconds
Reverting.

–timeout 10 としているけどこれは省略しても良くて、省略すると 120 が指定される。
単位は 秒 なので 120 秒= 2 分 となり、ちょっと長すぎな感じがしたので、10 秒に指定している。

この時間が経過すると、元の設定に自動的に戻るので、その間に設定内容が問題のないものかを確かめる。

個人的には別端末から PING 打ちっぱなしで netplan try をしたところで疎通がとれることを最初に確認する事項としているので、上記のように10秒で良い。

で、10秒間の間に「問題ない」と判断できたら、ENTER で設定が反映される。

逆に、設定が間違っているなどでその設定を反映させたくなければ、10秒待てば元の設定に戻る。

尚、try じゃなくて apply という指定もできる。
この場合、即座に設定が反映されて、try のように「間違ってたら戻る」はないので、もし間違ってると、そのまま接続が切れて面倒なことにもなるので要注意。

$ sudo netplan apply

どちらを使うにせよ、設定が反映されてIPアドレスが変わるとなれば、SSHなどの接続がいったん切れるのでもう一度つなげ直そう。

新しい設定が適用されたら、接続状況を見てみる。

$ ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.x.y/24 brd 192.168.x.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.a.b/24 brd 192.168.a.255 scope global noprefixroute wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

OK~

wlan0 の state が UP になり、IPが設定通りに割り当てられている。
その後、wlan0 を使用して通信状況を確認するなど、あとは好き好きに。

そんなに難しくはないですね。

この記事にコメントしてみる