2024/01/17(水)固定化IP(bookworm)
bookworm版の有線LANを固定化IPとする
■ RaspiOSのbookworm版はIP設定をNetworkManagerで行うように変更されている。NetworkManager:Red Hat, Inc.が開発したアプリケーション
・なぜ固定化IPが必要かはRaspiのboot初期値はDHCP(auto)によりIP番号は動的に変更されることがある。
それを禁止するため。(IP番号がOSの都合により変えられると温度計アプリが通信不能となる)
● NetworkManageの現状を確認する。(Windowsのコマンドプロンプトより行う)
WindowsのコマンドプロンプトからsshでRaspiへログイン(TeraTermだとnetworkを設定するので途中、通信不能になる場合がある)
pi@raspberrypi01:~ $ nmcli networking connectivity check full pi@raspberrypi01:~ $ systemctl status NetworkManager.service Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; preset: enabled) Active: active (running) since Fri 2023-12-22 08:32:23 GMT; 20h ago・active (running)が緑色で表示されれば起動中である。
ネットワークの設定ファイルにおいて、「キーファイル」と「ifcfgスタイル」の2種類があるが
bookwormは「キーファイル」の設定が優先される。「ifcfgスタイル」:CentOSなどが採用
「キーファイル」でIPアドレス設定する場合で「キーファイル」の保存先例
/etc/NetworkManager/system-connections/eth0.nmconnection
配下にeth0.nmconnectionファイルが存在しないことを確認した上で、
● IPアドレス未設定時
pi@raspberrypi01:~ $ nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 d670c16f-e489-3964-bd86-b7786675a79b ethernet eth0 lo 7cb5e7cb-183d-49ed-92c0-403dcb2b3710 loopback lo「DEVICE」と「NAME」が一致していないので一致させる。
NAME:enp0s10をDEVICE:eth0へ関連付ける。
pi@raspberrypi01:~ $ nmcli connection modify d670c16f-e489-3964-bd86-b7786675a79b connection.id enp0s10 NAME UUID TYPE DEVICE enp0s10 d670c16f-e489-3964-bd86-b7786675a79b ethernet eth0 lo 7cb5e7cb-183d-49ed-92c0-403dcb2b3710 loopback lo● このコマンドで以下のenp0s10.nmconnectionというファイルが作られる。
/etc/NetworkManager/system-connections/enp0s10.nmconnection
このファイルへnmcliコマンドで固定IP化する情報の追加や変更を行う。
Windows編でuser名:pi、host名:raspberrypi01を設定しRaspiへログインした時、DHCPで割り振られたIPをそのまま
固定化する。(なぜなら参加ネットワーク内でユニークなIP番号が割り振られているから)
・現在のIP割り振り状況の確認 pi@raspberrypi01:~ $ hostname -I 192.168.51.131 192.168.1.242 有線LAN:192.168.51.131 WiFi:192.168.1.242 pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.addresses 192.168.51.131/24 pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.gateway 192.168.51.1 pi@raspberrypi01:~ $ sudo nmcli nmcli connection modify enp0s10 ipv4.dns 8.8.8.8 pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.method manual pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/enp0s10.nmconnection [ipv4] address1=192.168.51.131/24,192.168.51.1<--追加された dns=8.8.8.8;<--追加された method=manual<--固定IP化に変更(DHCPではmethod=autoであった) ・viの閉じ方、ESC : q ! これを順番に入力し最後にEnter これで書き込み無しで閉じる● 設定を有効化する。
pi@raspberrypi01:~ $ sudo nmcli connection reload pi@raspberrypi01:~ $ sudo nmcli connection up enp0s10 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3) 最後に有線LAN(enp0s10)を再起動する。 pi@raspberrypi01:~ $ sudo nmcli c down enp0s10 && nmcli c up enp0s10
bookworm版のWiFiを固定化IPとする
● 現在のWiFi状態を確認する。pi@raspberrypi01:~ $ nmcli radio wifi enabled pi@raspberrypi01:~ $ nmcli device wifi IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY * 00:24:A5:C9:98:61 0024A5C99861 Infra 5 130 Mbit/s 100 ▂▄▆█ WPA1 WPA2 06:24:A5:C9:98:61 0024A5C99861-1 Infra 5 130 Mbit/s 100 ▂▄▆█ WPA1 B0:C7:45:34:20:60 Buffalo-G-206A Infra 8 195 Mbit/s 67 ▂▄▆_ WPA2 CA:32:E5:A8:96:CC EU_WIRELESS Infra 2 270 Mbit/s 50 ▂▄__ WPA1 WPA2 CC:32:E5:A8:96:CB EU_WIRELESS_4th_floor Infra 2 270 Mbit/s 49 ▂▄__ WPA2 00:D0:1D:26:96:6D CWN Infra 11 130 Mbit/s 44 ▂▄__ WPA2 802.1X 00:D0:1D:26:96:95 CWN Infra 11 130 Mbit/s 42 ▂▄__ WPA2 802.1X 18:C2:BF:15:2C:13 Buffalo-G-2C12 Infra 1 130 Mbit/s 37 ▂▄__ WPA2 pi@raspberrypi01:~ $● SDカードへRaspiOSを書き込む編で自動割り振りされた0024A5C99861へwifi接続し、固定IP化する。
・ここで0024A5C99861やpasswordは適時、自環境に合わせる。
・passwordはSDカードへRaspiOSを書き込む編の「パスワードを見るで表示される」でメモした文字列パスワードに置き換える。
pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk" ・このコマンドで0024A5C99861.nmconnectionファイルが以下の場所へ作成される。 /etc/NetworkManager/system-connections/0024A5C99861.nmconnection pi@raspberrypi01:~ $ nmcli con show NAME UUID TYPE DEVICE enp0s10 058c1b36-ce22-3354-b5f7-f65c75b88c15 ethernet eth0 0024A5C99861 c2a191e6-1342-41d2-a898-736458bcdb35 wifi wlan0 lo 4852a825-c549-4bfa-8a0c-85f7ca562d01 loopback lo preconfigured c7f36508-2540-4236-8f6e-59ebf3b607c4 wifi --● コマンドによりファイルが作成されたので、このファイルに対してnmcliコマンドで固定IP化する情報の追加や変更を行う。
・現在のIP割り振り状況の確認 pi@raspberrypi01:~ $ hostname -I 192.168.51.131 192.168.1.242 192.168.51.131は有線LAN、すでに固定化済み、192.168.1.242はWiFiでまだ固定化されていない。 pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.addresses 192.168.1.242/24 pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.gateway 192.168.1.1 pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.dns 8.8.8.8 pi@raspberrypi01:~ $ sudo nmcli connection modify 0024A5C99861 ipv4.method manual pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/0024A5C99861.nmconnection [ipv4] address1=192.168.1.242/24,192.168.1.1<--nmcliコマンドで追加された dns=8.8.8.8;<--nmcliコマンドで追加された method=manual<--nmcliコマンドで変更された(auto-->manualへ) ・viの閉じ方、ESC : q ! これを順番に入力し最後にEnter これで書き込み無しで閉じる● 設定を有効化する。(0024A5C99861.nmconnectionファイル変更したのでWiFiを接続しなおす)
pi@raspberrypi01:~ $ sudo nmcli connection down 0024A5C99861 pi@raspberrypi01:~ $ sudo nmcli connection reload pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk" pi@raspberrypi01:~ $ sudo nmcli c down 0024A5C99861 && nmcli c up 0024A5C99861 pi@raspberrypi01:~ $ nmcli general status STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN connected full enabled enabled missing enabled・RaspiOSを書き込む編では0024A5C99861-1を選択していたがここでは0024A5C99861に変更したので
/etc/NetworkManager/system-connections/preconfigured.nmconnectionファイルが放置されてしまった。<--無害
● IPが固定できたのでこれ以降の作業はTeraTermで行う。