Network Managerのインストール

有線EthernetWi-Fiを、状況に応じて自動切換えしたいのですが、そういうときはNetwork Managerを使うと良いらしい。
しかし、Raspberry Pi OSには標準でNetwork Managerが入っていない。

というわけで、ググりながら確認しながら、Network Managerを入れてみます。

Network Managerをインストール

systemctlで確認すると、たしかにNetwork Managerは入っていないっぽい。

pi@raspberrypi:~ $ sudo systemctl | grep -i networkmanager
pi@raspberrypi:~ $

こちらによると、Network Managerはdhcpcdと競合するみたい。
dhcpcdは、たしかに動いていますね。

pi@raspberrypi:~ $ sudo systemctl | grep dhcpcd
dhcpcd.service                                                                                       loaded active running   dhcpcd on all interfaces        
pi@raspberrypi:~ $ sudo systemctl status dhcpcd.service
● dhcpcd.service - dhcpcd on all interfaces
   Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-11-20 09:00:07 GMT; 2h 45min ago
  Process: 582 ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -b (code=exited, status=0/SUCCESS)
 Main PID: 603 (dhcpcd)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/dhcpcd.service
           tq603 /sbin/dhcpcd -q -b
           mq672 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext

(略)
pi@raspberrypi:~ $

dhcpcdを停止、起動しないようにします。

pi@raspberrypi:~ $ sudo systemctl stop dhcpcd.service
pi@raspberrypi:~ $ sudo systemctl disable dhcpcd.service
Synchronizing state of dhcpcd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable dhcpcd
Removed /etc/systemd/system/multi-user.target.wants/dhcpcd.service.
Removed /etc/systemd/system/dhcpcd5.service.
pi@raspberrypi:~ $

Network Managerをインストールします。

pi@raspberrypi:~ $ sudo apt install network-manager
(略)

NetworkManagerの状態を確認すると、runningになっています。

pi@raspberrypi:~ $ sudo systemctl status NetworkManager.service
● NetworkManager.service - Network Manager
   Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-11-20 11:50:42 GMT; 1min 31s ago
     Docs: man:NetworkManager(8)
 Main PID: 14292 (NetworkManager)
    Tasks: 5 (limit: 4915)
   CGroup: /system.slice/NetworkManager.service
           tq14292 /usr/sbin/NetworkManager --no-daemon
           tq14321 /sbin/dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dhclient-95c71d1e-a
           mq14330 /sbin/dhclient -d -q -6 -N -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/dhclient6-eth0.pid -lf /var/lib/NetworkManager/dhclient6-95

ちゃんと動いているっぽい。

pi@raspberrypi:~ $ nmcli general
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN
connected  full          enabled  enabled  enabled  enabled
pi@raspberrypi:~ $

Wi-Fiを有効化

バイスは、eth0とwlan0、loの3つありました。

pi@raspberrypi:~ $ nmcli device status
DEVICE  TYPE      STATE         CONNECTION
eth0    ethernet  connected     Wired connection 1
wlan0   wifi      disconnected  --
lo      loopback  unmanaged     --
pi@raspberrypi:~ $

wlan0はdisconnectedです。

wifi listすると、アクセスポイントをとらえているのが確認できます。

pi@raspberrypi:~ $ nmcli device wifi list
IN-USE  SSID                          MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        TP-Link_4C38_2G               Infra  7     540 Mbit/s  100     ????  WPA2
        TP-Link_4C38_5G               Infra  48    540 Mbit/s  87      ????  WPA2
        DIRECT-8FDESKTOP-O9671AFmsRx  Infra  6     130 Mbit/s  72      ???_  WPA2
        0024A51178B2-1                Infra  11    65 Mbit/s   47      ??__  WPA1
        Buffalo-G-C740                Infra  3     130 Mbit/s  39      ??__  WPA2
        0024A51178B2-4                Infra  11    54 Mbit/s   37      ??__  WEP
        --                            Infra  3     54 Mbit/s   35      ??__  WEP
        0024A51178B2                  Infra  11    65 Mbit/s   35      ??__  WPA1 WPA2
        SGP200W-69A3-bg               Infra  1     260 Mbit/s  32      ??__  WPA1 WPA2
        90324BD8D988-2G               Infra  1     195 Mbit/s  24      ?___  WPA1 WPA2
        ctc-g-c2ff07                  Infra  3     270 Mbit/s  24      ?___  WPA1 WPA2
pi@raspberrypi:~ $

Wi-Fi接続してみます。

pi@raspberrypi:~ $ sudo nmcli device wifi connect TP-Link_4C38_5G password *****
Device 'wlan0' successfully activated with 'ed79f187-8595-46de-8b49-03aebcf9360a'.
pi@raspberrypi:~ $

おっ!つながったっぽい。

pi@raspberrypi:~ $ nmcli device status
DEVICE  TYPE      STATE      CONNECTION
eth0    ethernet  connected  Wired connection 1
wlan0   wifi      connected  TP-Link_4C38_5G
lo      loopback  unmanaged  --
pi@raspberrypi:~ $

おおー。

コネクション一覧でみると、こんな表示。

pi@raspberrypi:~ $ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
TP-Link_4C38_5G     ed79f187-8595-46de-8b49-03aebcf9360a  wifi      wlan0
Wired connection 1  95c71d1e-a8b0-3a12-bf2b-8ba0f04214f2  ethernet  eth0
pi@raspberrypi:~ $