2024/02/03(土)Network Managerのインストール

NetworkManagerをインストールする
 ● WindowsのコマンドプロンプトでRaspiへログインする。
C:\Users\user_name> ssh pi@raspberrypi01
pi@raspberrypi01's password: ***<-パスワードを入力
pi@raspberrypi01:~ $ sudo systemctl | grep -i networkmanager
pi@raspberrypi01:~ $ <--何も表示されないのでnetworkmanager自体がインストールされてない
pi@raspberrypi01:~ $ sudo systemctl stop dhcpcd.service
pi@raspberrypi01:~ $ sudo systemctl disable dhcpcd.service<--現在稼働中のdhcpcdをdisableする
・NetworkManagerをインストールする
pi@raspberrypi01:~ $ sudo apt install network-manager
・インストールしたNetworkManagerの状態を確認
pi@raspberrypi01:~ $ systemctl status NetworkManager.service
Active: active (running)
pi@raspberrypi01:~ $ nmcli connection show
NAME        UUID                                  TYPE      DEVICE
有線接続 1  84bb7181-a490-33f4-851e-68d2bd9854d9  ethernet  enxbc5c4ce109c6
pi@raspberrypi01:~ $ nmcli radio wifi
enabled

有線LANを固定化IPとする

● ネットワークの設定ファイルにおいて、「キーファイル」と「ifcfgスタイル」の2種類があるが
  NetworkManagerのbullseye版は「キーファイル」の設定が優先される。
  ・「キーファイル」でIPアドレス設定する場合、「キーファイル」の保存先:
  /etc/NetworkManager/system-connections/eth0.nmconnection<--例
  配下に***.nmconnectionファイルが存在しないことを確認する。
● IPアドレス設定前の初期設定
 ・NetWorkインターフェースの「NAME」を変更する。
・上記、nmcli connection showで得た84bb7181-a490-33f4-851e-68d2bd9854d9で、
pi@raspberrypi01:~ $ sudo nmcli connection modify 84bb7181-a490-33f4-851e-68d2bd9854d9 connection.id enp0s10
・このコマンドで以下ファイルが作られる。このファイルを変更することでIPを固定化する。
/etc/NetworkManager/system-connections/enp0s10.nmconnection
pi@raspberrypi01:~ $ nmcli connection show
NAME     UUID                                  TYPE      DEVICE
enp0s10  84bb7181-a490-33f4-851e-68d2bd9854d9  ethernet  enxbc5c4ce109c6
pi@raspberrypi01:~ $ ifconfig
enxbc5c4ce109c6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.51.131  netmask 255.255.255.0  broadcast 192.168.51.255
        inet6 fe80::458b:1c35:b865:9432  prefixlen 64  scopeid 0x20<link>
        ether bc:5c:4c:e1:09:c6  txqueuelen 1000  (イーサネット)
        RX packets 1032  bytes 90732 (88.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 91  bytes 12868 (12.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (ローカルループバック)
        RX packets 18  bytes 2150 (2.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18  bytes 2150 (2.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.244  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::ba27:ebff:fe42:67f0  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:42:67:f0  txqueuelen 1000  (イーサネット)
        RX packets 7017  bytes 7960332 (7.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1787  bytes 198621 (193.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
・enp0s10.nmconnectionファイルを変更することでIPを固定化する。
・ファイル変更以前の[ipv4]の状態
 [ipv4]
 dns-search=
 method=auto
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 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<--nmcliコマンドで追加された
dns=8.8.8.8;<--nmcliコマンドで追加された
dns-search=
method=manual<--nmcliコマンドで変更された
● 設定を有効化する。
pi@raspberrypi01:~ $ sudo nmcli connection reload
pi@raspberrypi01:~ $ sudo nmcli c down enp0s10 && sudo nmcli c up enp0s10
接続 'enp0s10' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/3)
pi@raspberrypi01:~ $ sudo reboot
pi@raspberrypi01:~ $ Connection to raspberrypi01 closed by remote host.
Connection to raspberrypi01 closed.

引き続き、WiFi(無線LAN)を固定化IPとする

● 現在のWiFi状態を確認する
pi@raspberrypi01:~ $ nmcli dev wifi






● IPが固定できたのでこれ以降の作業はTeraTermで行う。

2024/01/23(火)SDカードへRaspiOSを書き込む

SDカードへRaspiOSを書き込む
● imager_1.8.4.exeをクリックすると、
・最初の画面が表示される。
・デバイスを選択<--クリック NO FILTERING<--クリック
・OSを選択<--クリック Raspberry Pi OS(other)<--クリック 表示されてる一番下のRaspberry Pi OS Lite(32-bit)<--クリック
・ストレージを選択<--クリック SDカードが装着された「Multi Flash Reader-62.2GB」<--クリック
・ここまでの設定で、内容は以下のようになっている。.....確認後、
・次へ<--クリック
★!ここで必ず「設定を編集する」<--クリック(この設定を編集が説明にあったカスタマイズのことである)
・「設定を編集する」をクリックすると以下のような画面となる。
  ホスト名:raspberrypi01<--デフォルトはraspberrypiであるが任意の日本語名以外を入力する。
  ユーザ名とパスワードを設定する:ユーザ名は今までの習慣ではpi、パスワード:任意(日本語以外を入力)
  ※パスワードはsshのログイン時必要なのでメモ帳などへ保存するなどして忘れないようにすること!!
  Wi-Fiを設定する
   SSID:(Windowsがネットワーク環境内にあれば表示されている)、パスワード: (パスワードを見るで表示される)
   ※ここでパスワードは後ほど、固定化IPで使用するのでメモ帳などへコピペして保存しておく
   WiFiを使う国:GB<--JPに変更
  ロケール設定をする
   タイムゾーン:Asia/Tokyou キーボードレイアウト:us <--jpに変更
  ここまでの内容は以下のように変更されている。.....最後に
  「保存」<--クリック
・以下の注意喚起があるが「はい」<--クリック
・プレグレッシグバーが進行し、書き込みが始まる。
・書き込みが終了したら以下のようなメッセージが表示される。
・途中、フォーマットしますか?というようなポップアップウィンドーが出る場合、Xで閉じる
・「続ける」card reader取り出し<--クリック
● 次に空のsshファイルを作成する(Raspi起動時、sshをイネーブルするため) ★ 必ず行うこと
・USBケーブルを抜き出して再度差し込む
・bootfs(D:)内へ新規作成(W)-->テキストドキュメント<--クリック
・以下のように新しいテキストドキュメント.txtをsshに変更する。
● 以上でRaspiOSの書き込みが終了したので「ハードウエアを安全に取り外して」よりUSBデバイスを取り外す。
 ・SDカードを抜き取ってRaspiZへ装着し(電源を入れる)立ち上げる。

2024/01/17(水)固定化IP(bullseye)

bullseye版の有線LANとWiFiの固定化IP(※2022年9月以前のOSはNetworkManagerのインストールから)

RaspiOSのbullseye版はIP設定をdhcpcdで管理しているがこれをNetworkManagerで管理するよう変更する。
 ● WindowsのコマンドプロンプトからsshでRaspiへログインし作業を行う。(TeraTermだとnetworkを設定するので途中、通信不能になる場合がある)
C:\Users\usr_name> ssh pi@raspberrypi01
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
pi@raspberrypi01's password:***<---ここでRaspiのパスワードを聞かれるので入力
pi@raspberrypi01:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.51.138  netmask 255.255.255.0  broadcast 192.168.51.255
        inet6 fe80::83aa:2980:df1c:4e9  prefixlen 64  scopeid 0x20<link>
        ether bc:5c:4c:e1:09:ca  txqueuelen 1000  (Ethernet)
        RX packets 384  bytes 33732 (32.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 102  bytes 13180 (12.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12  bytes 1738 (1.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 1738 (1.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.242  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::ed4:979e:ac64:b4cc  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:07:f8:cb  txqueuelen 1000  (Ethernet)
        RX packets 335  bytes 31570 (30.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39  bytes 5018 (4.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
pi@raspberrypi01:~ $ hostname -I
192.168.51.138 192.168.1.242
 ● bullseye版をNetworkManagerに切り替える。
pi@raspberrypi11:~ $ nmcli
Error: NetworkManager is not running.
pi@raspberrypi01:~ $ sudo raspi-config nonint do_netconf 2<-NetworkManagerに切り替える
Failed to enable unit: Unit file NetworkManager.service does not exist.<-NetworkManager自体が無い
   OSが2022年9月以前のインストールだとNetworkManager自体が無いのでこちら( NetworkManager )から作業を行う。
pi@raspberrypi01:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.51.139  netmask 255.255.255.0  broadcast 192.168.51.255
        inet6 fe80::83aa:2980:df1c:4e9  prefixlen 64  scopeid 0x20<link>
        ether bc:5c:4c:e1:09:ca  txqueuelen 1000  (Ethernet)
        RX packets 1109  bytes 95613 (93.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 202  bytes 26389 (25.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12  bytes 1738 (1.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 1738 (1.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 4e:47:2d:3b:42:5f  txqueuelen 1000  (Ethernet)
        RX packets 1030  bytes 97051 (94.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 71  bytes 9034 (8.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 ・WiFiが無くなり、eth0が192.168.51.139になっている。
pi@raspberrypi11:~ $ sudo reboot
 ● Windowsのコマンドプロンプトから再度、sshでRaspiへログイン
  ・ 現状でRaspiから見えているWiFiを確認する。
pi@raspberrypi01:~ $ nmcli dev 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  75      ▂▄▆_  WPA2
        00:D0:1D:26:96:6D  CWN                       Infra  11    130 Mbit/s  44      ▂▄__  WPA2 802.1X
        00:D0:1D:26:96:94  --                        Infra  11    130 Mbit/s  39      ▂▄__  --
        CC:32:E5:A8:96:CB  EU_WIRELESS_4th_floor     Infra  2     270 Mbit/s  37      ▂▄__  WPA2
        CA:32:E5:A8:96:CC  EU_WIRELESS               Infra  2     270 Mbit/s  37      ▂▄__  WPA1 WPA2
        00:D0:1D:26:96:6C  --                        Infra  11    130 Mbit/s  37      ▂▄__  --
        00:D0:1D:26:96:95  CWN                       Infra  11    130 Mbit/s  37      ▂▄__  WPA2 802.1X
        18:C2:BF:15:2C:13  Buffalo-G-2C12            Infra  1     130 Mbit/s  32      ▂▄__  WPA2
        86:BA:3B:8A:83:73  DIRECT-xE73-MB5400series  Infra  3     65 Mbit/s   30      ▂___  WPA2
        00:D0:1D:26:96:9C  --                        Infra  11    130 Mbit/s  22      ▂___  --
pi@raspberrypi01:~ $ systemctl status NetworkManager.service
     Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
    Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
             └─10-dhcpcd.conf
     Active: active (running) since Wed 2024-01-31 16:22:51 JST; 8min ago
・dhcpcd.confが Drop-In 扱いとなって NetworkManager enabled; となっている。
・NetworkManagerは立ち上がっておりWiFiも認識しているようなのでWiFiの設定から先に行う。
pi@raspberrypi01:~ $ hostname -I
192.168.51.139<--WiFiが消えた

ここまででWiFiが認識できているようなので、bullseye版のWiFiを固定化IPとする

● 現在のWiFi状態を確認する
pi@raspberrypi01:~ $ nmcli radio wifi
enabled
pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk"
Device 'wlan0' successfully activated with 'aae8b353-1070-485f-ba75-e997a47b5484'.
・このコマンドで0024A5C99861.nmconnectionファイルが以下の場所へ作成される。
 /etc/NetworkManager/system-connections/0024A5C99861.nmconnection
pi@raspberrypi01:~ $ nmcli con show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  2d286ab1-58ac-30bf-8c8d-acb1d812b328  ethernet  eth0
0024A5C99861        aae8b353-1070-485f-ba75-e997a47b5484  wifi      wlan0<--追加された
pi@raspberrypi01:~ $ hostname -I
192.168.51.139 192.168.1.242<--追加された
この192.168.1.242を固定化IPとする。
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<--追加された
dns=8.8.8.8;<--追加された
dns-search=
method=manual<--変更された
● 設定を有効化する。
pi@raspberrypi01:~ $ sudo nmcli connection reload
pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk"
pi@raspberrypi01:~ $ sudo nmcli c down 0024A5C99861 && sudo nmcli c up 0024A5C99861
・ここで認証エラーが出た場合、rebootする。(NetworkManagerへ切り替えた直後なのでまだdhcpcdを引き継いでいる?)

有線LANを固定化IPとする

● ネットワークの設定ファイルにおいて、「キーファイル」と「ifcfgスタイル」の2種類があるが
  NetworkManagerのbookworm版は「キーファイル」の設定が優先される。
  ・「キーファイル」でIPアドレス設定する場合、「キーファイル」の保存先:
  /etc/NetworkManager/system-connections/eth0.nmconnection<--例
  配下にファイルが存在しないことを確認する。
● IPアドレス設定前の初期設定
 ・NetWorkインターフェースの「NAME」を変更する。
・変更前の例
pi@raspberrypi01:~ $ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  2d286ab1-58ac-30bf-8c8d-acb1d812b328  ethernet  eth0
0024A5C99861        aae8b353-1070-485f-ba75-e997a47b5484  wifi      wlan0
・NAME:Wired connection 1をNAME:enp0s10とする(DEVICEの管理をNAME名:enp0s10で行うため)
pi@raspberrypi01:~ $ sudo nmcli connection modify 2d286ab1-58ac-30bf-8c8d-acb1d812b328 connection.id enp0s10
・このコマンドで以下のファイルが作られる。このファイルを変更することで固定IP化する。
/etc/NetworkManager/system-connections/enp0s10.nmconnection
pi@raspberrypi01:~ $ nmcli connection show
NAME          UUID                                  TYPE      DEVICE
enp0s10       2d286ab1-58ac-30bf-8c8d-acb1d812b328  ethernet  eth0
0024A5C99861  aae8b353-1070-485f-ba75-e997a47b5484  wifi      wlan0
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.addresses 192.168.51.139/24
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.gateway 192.168.51.1
pi@raspberrypi01:~ $ sudo 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.139/24,192.168.51.1<--nmcliコマンドで追加された
dns=8.8.8.8;<--nmcliコマンドで追加された
method=manual<--nmcliコマンドで追加された
● 設定を有効化する。
pi@raspberrypi01:~ $ sudo nmcli connection reload
pi@raspberrypi01:~ $ sudo nmcli c down enp0s10 && sudo nmcli c up enp0s10
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
● IPが固定できたのでこれ以降の作業はTeraTermで行う。

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を設定するので途中、通信不能になる場合がある)
● 初期起動時、NetworkManagerが停止しているのでrestart後イネーブルとする。
pi@raspberrypi01:~ $ sudo systemctl restart NetworkManager
pi@raspberrypi01:~ $ sudo systemctl enable NetworkManager
pi@raspberrypi01:~ $ sudo 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
 ・コントロール Cで抜け出る。
 ・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」が一致していないので一致させる。
  d670c16f-e489-3964-bd86-b7786675a79bは表示値を適時、適合させる。
  NAME:enp0s10をDEVICE:eth0へ関連付ける。
pi@raspberrypi01:~ $ sudo nmcli connection modify 'Wired connection 1' connection.id enp0s10<-コピペ
pi@raspberrypi01:~ $ nmcli connection show
NAME     UUID                                  TYPE      DEVICE
enp0s10  d670c16f-e489-3964-bd86-b7786675a79b  ethernet  eth0 # Wired connection 1がenp0s10に変わった。
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<--これらのipはまだ固定化されたipではない。
適時、自ip番号へ置き換えること。
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.addresses 192.168.51.131/24<--192.168.51.131これを適時、上記表示と合わせる
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.gateway 192.168.51.1<-ここは168.51の51.1のgatewayに適時合わせる
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.dns 8.8.8.8<-ここはこのまま
pi@raspberrypi01:~ $ sudo nmcli connection modify enp0s10 ipv4.method manual<--ここで固定化ipとして登録される
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
有線LAN(enp0s10)を再起動する。
pi@raspberrypi01:~ $ sudo nmcli connection up enp0s10
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

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:~ $ 
● nmcli device wifiで表示されたSSIDの番号(0024A5C99861)でへwifi接続し、IPを固定化する。
 ・ここで0024A5C99861やpasswordは適時、自環境に合わせる。
 ・passwordはSDカードへRaspiOSを書き込む編の「パスワードを見るで表示される」でメモした文字列パスワードに置き換える。?????<-削除
pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk"
Device 'wlan0' successfully activated with 'f8e7ff1d-b053-41a3-bf17-85c2c8961208'.
・このコマンドでpreconfigured.nmconnectionファイルが以下の場所へ作成される。
 /etc/NetworkManager/system-connections/preconfigured.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 preconfigured ipv4.addresses 192.168.1.242/24<-適時、自IPへ合わせる
pi@raspberrypi01:~ $ sudo nmcli connection modify preconfigured ipv4.gateway 192.168.1.1<-適時、自gateway 168.1.1へ合わせる
pi@raspberrypi01:~ $ sudo nmcli connection modify preconfigured ipv4.dns 8.8.8.8<-ここはこのままコピペ
pi@raspberrypi01:~ $ sudo nmcli connection modify preconfigured ipv4.method manual<-これでIPが固定化される このままコピペ
pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/0024A5C99861.nmconnection<--SSIDを変更した時
pi@raspberrypi01:~ $ sudo vi /etc/NetworkManager/system-connections/preconfigured.nmconnection<--SSIDを変更しなかった時
[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 これで書き込み無しで閉じる
● 設定を有効化する。(preconfigured.nmconnectionファイル変更したのでWiFiを接続しなおす)
pi@raspberrypi01:~ $ sudo nmcli connection reload
pi@raspberrypi01:~ $ sudo nmcli dev wifi connect 0024A5C99861 password "2js6vmbtbdnwk"
Device 'wlan0' successfully activated with '690f0ecf-3330-4a0e-9b6c-9a2908c7124b'.
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で行う。????

2024/01/13(土)Windows編

作業項目
  • Windows環境の構築
     ダウンロードファイルはpiworks310.zip(python3.10版)及びpiworks39.zip(python3.9版)がありWindows編とRaspi編が含まれている。
     WindowsはWindows10とWindows11で動作確認、Raspi版はbookworm:Lite(32-bit)のimgファイルなのでPi Imager1.8.5でSDカードへ書き込み
     後、動作確認済み。なおSDカード容量はPi Imager1.8.5で16GB、32GB、64GBへ自動的にパーティションが拡張される。
     推奨RaspiはZeroW、ZeroWh、Zero2WでA+、2B、2B+、3B、3B+等は推奨できない。また32bit版限定となり64版は動作未確認である。
     この装置は温湿度センサーをHATという部分に取り付けている構造上、発熱のため温度誤差を生じるので推奨としていない。
     また、消費電力の点からキーボードやデスプレイも接続しない。
     
    アプリの圧縮ファイルを:download/piworks310.zipよりダウンロードする。(推奨)
    アプリの圧縮ファイルを:download/piworks39.zipよりダウンロードする。
     --------------
     ダウンロードした圧縮ファイルをデスクトップ上へ移動しておく。
     
    1.Python関連のインストール ..... バージョンの指定
      Windows上でPythonのインストール方法は「Python公式」、「Microsoft Store」、「Anaconda」、WSL(Windows Subsystem for Linux)
      などがある。
      ここではバージョン指定の必要性から必ず「Python公式」でインストールすること。
    2.アプリのインストールとアプリが使用するpythonライブラリをアクティベーションする。
      pythonライブラリをルートホルダへ登録するため例えばデスクトップへ配置したホルダ名を変更した場合は再登録のため一度だけ配下のバッチ
      ファイルをクリックする必要がある。

現在使用中のWindowsへアプリが必要とするPythonをインストールする

WindowsのPython環境を確認し作業を進める。
 ● 先ほど、ダウンロードした圧縮ファイルをデスクトップ上へ展開する。
 ・デスクトップ上のpiworks310.zipファイルを右クリック-->すべて展開(T)..クリック-->C:\Users\user_name\Desktop\(piworks310)<---
  (piworks310)の部分をBackspaceで消し、右のように、C:\Users\user_name\Desktop\ としたら下の展開(E)をクリック
  プログレッシブバーが進行してpiworks310というホルダがデスクトップ上へ展開される。
  piworks310ホルダ配下へbookwormホルダとwindowsホルダが作成されているのを確認。
 ● 次にタスクトレイの「ここへ入力して検索」へ半角で dosと入力すると黒いウインドー枠のコマンドプロンプトアイコンが現れる。
  ・コマンドプロンプトが現れたら >py -0< をコピペしてEnterを押す。(> 以後~< まで) ※py -0コマンドが有効なのはPython公式版のみ
  ・'py -0' は、内部コマンドまたは外部コマンド、..<--が表示されたらお使いのwindowsにはpython環境がセットアップされていないのでインストールする。
C:\Users\usr_name> py -0<--インストールされているpythonのバージョンを調べる
 -V:3.12 *        Python 3.12 (64-bit)
 -V:3.10          Python 3.10 (64-bit)<--すでにpythonのバージョン3.10がインストールされている
 -V:3.9           Python 3.9 (64-bit)
 -V:3.8           Python 3.8 (64-bit)
 -V:3.7           Python 3.7 (64-bit)
 ● もし-V:3.10 *が表示されていても3.10.4等で最新で無い場合がある、現在3.10.11版最新であり下記の作業により3.10.11にupgradeできる。
  ・最新版か調べるにはコマンドプロンプトよりpython -Vを入力すると詳細が表示される。
  3.10.11であった場合、アプリのインストールへと進む。
  もし、Add python.ext to PATHにチェック無しでインストールされていた場合PATHが見つからいエラー発生するので指示に従う。
 ● Python関連のインストールを行う。デフォルトでMicrosoft Store版がインストールさている場合があるが本アプリでは使用できない。
  ・Microsoft Store版はバージョン管理の問題で任意のバージョンを指定して作業ができないため。(ただし無害:アンインストールの必要なし)
  ・このアプリはPython 3.10.11版で動作確認しているのでPython 3.10.11版を下記よりダウンロードする。
   Windows用のPython 3.10.11版をここよりダウンロードするか、
  もしくはpiworks310ホルダ配下にpython-3.10.11-amd64.exeが用意してあるのでそちらをクリックしても良い。
  ダウンロード(python-3.10.11-amd64.exe)したファイルを下記ホルダ内へ移動して、
  C:\Users\user_name\Desktop\piworks310\windows\ 配下へ移動しpython-3.10.11-amd64.exeをダブルクリックする。
  下記は、piworks310ホルダ配下にあるpython-3.10.11-amd64.exeを使う例:
 ① 「デスクトップ/piworks310/windows/python3.10.11/python-3.10.11-amd64.exeをダブルクリックするとインストールが開始される。
   すでに-V:3.10があっても現在、3.10.11が最新なのでこれより古い場合、インストールすることで最新版に更新される。
   ※注意!! 画面の最下位「Add python.ext to PATH」へ必ずチェックを入れること。このチェックが無いとPATHが設定されない。
   次に、デフォルトで設定されているインストール先にインストールするためそのまま「Install Now」をクリックする。
   この画面でインストール先のPATHが下記のように表示されている。
   例:C:\Users\user_name\AppData\Local\Programs\Python3.10<--今後ここへ各バージョンがインストールされ管理される。
 ② 次はオプション機能の選択であるがすべてチェックが入ったままにして「Next」をクリックする。
 ③ その後、許可の確認を聞かれた場合は、全て「yes」をクリックして先へ進む。
   プログレッシブバーが進行し、「Setup was successful」が表示された画面でもし最下位に「Disable path length limit」が表
   示されていたらクリックする。(python環境が一度もインストールされて無い場合に表示される。)
   最後に「Close」をクリックしてインストール完了!
 ④ インストール状態を確認するためコマンドプロンプトを起動
C:\Users\usr_name> py -0<------pythonのインストール状態の確認
 -V:3.10 *        Python 3.10 (64-bit)<--これが表示されればインストールされている。なお、* はpythonのデフォルト設定
 ・ ここで「内部コマンドまたは外部コマンド、...」が表示される場合は「Add python.ext to PATH」のチェックを忘れた場合等で
  pythonのUninstallを行い再度インストールし直す。
  WindowsのPATH設定の変更を行うよりこの方が早く、確実である。

アプリのインストールとアプリが使用するpythonライブラリをアクティベーションする

 ● 先ほどデスクトップ上に展開したpiworks310ホルダ内にondop310.zipという圧縮ファイルがある。
 C:\Users\user_name\Desktop\piworks310\windows\ondop310.zip
 この圧縮ファイルを先ほどと同じように展開する。(これには少々時間を要する)
 C:\Users\user_name\Desktop\piworks310\windows\ondop310<-このホルダ(このホルダへたどり着くには順番にアイコンをクリックする)
 ondop310ホルダにはアプリ実行モジュールとpythonライブラリが作成されておりこれをデスクトップ画面直下へコピーする。
 コピー手順:
 ①エクスプローラでondop310ホルダを左クリックでポイントし、今度は右クリックのコピー(C)をクリックする。
 ②次に、マウスポインターをデスクトップ画面へ持って行き、右クリックの貼り付け(P)をクリックする。
 これでondop310ホルダがデスクトップ上へコピーされた。
 ③次に、デスクトップ上のondop310ホルダを任意の日本語以外の分かりやすいホルダ名へ変更する。
 デスクトップ上のondop310ホルダを左クリックでポイントし、右クリック後、名前の変更(M)でホルダ名を変更。
 C:\Users\user_name\Desktop\日本語以外のホルダ\*<-現在はこのような状態である
 ● pythonライブラリのアクティベーションを行う。
 この作業により「日本語以外のホルダ」がルートホルダとなり配下にあるpythonライブラリがWindowsシステムに登録される。
 このシリーズで10種類のアプリをリリースするが全てここで登録されたpythonライブラリを使用するのでこのホルダが今後、共通の土台となる。
 現在は環境モニターアプリが登録されているが順次、このシリーズで酸素濃度計、CO2濃度計などがリリースされる。
 C:\Users\user_name\Desktop\日本語以外のホルダ\* 内にモジュールインストール.batファイルがあるのでこれをWクリックする。
 ホルダ内に表示されている環境モニターホルダ以外のホルダ名、または*.batファイル名を変更するとアプリが起動しなくなるので注意すること!!
 -V:3.12 *        Python 3.12 (64-bit)
 -V:3.10          Python 3.10 (64-bit)
 -V:3.9           Python 3.9 (64-bit)
 -V:3.8           Python 3.8 (64-bit)
 -V:3.7           Python 3.7 (64-bit)
Python 3.10 (64-bit)が見当たらない場合はコントロール_Cで終了してください。
続行するには何かキーを押してください . . .<-ここで -V:3.10          Python 3.10 (64-bit) が表示されていない場合、指示に従う
・・・
・・アクティベーションに必要なモジュール類がなければ最新のモジュールとし、アクティベーションが進行する。
・・・
Python 3.10.11
Pythonのバージョン:Python 3.10.**が表示されていればアクティベーション可能です。
続行するには何かキーを押してください . . .
・・・
・・Python 3.10.11が表示されていれば一旦アクティベーションし、デアクティベーションの処理を完了し、バージョン表示して正常終了
  している。
 ● 例えば、-V:3.10がインストールされて無く-V:3.9で処理を実行するとバージョンの整合性エラーで終了する。
 ・アクティベーション後、デスクトップ上の「日本語以外のホルダ」名を変更するとルートホルダPATHが不整合となり以下のショートカッ
  トアイコンをクリックしてもアプリが起動しなくなる。この場合、再度モジュールインストール.batファイルをWクリックする。
 ● ショートカットアイコンを作成し、該当アイコンをWクリックすることでアプリが起動できるようにする。
 ① \環境モニター\launcher内のlauncher.exeをポイントし、右クリックのショートカットの作成(S)ボタンを押すとlauncher.exe - ショー
  トカットが作成される。
  それを再度、右クリックして名前の変更(M)ボタンを押し、例えば「ランチャー」等に変更する。
  そのショートカットアイコンをコピーして一つルートよりか又はデスクトップ上にアイコンを移動する。
 ② \環境モニター\内のstart_ondo.exeを同じくショートカットの作成を行い、例えば「環境モニター」等に変更してアイコンを作成する。
  そのショートカットアイコンをここに置いておくかコピーしてデスクトップ上にアイコンを移動する。
  以上で該当アイコンをWクリックするとアプリが起動できるようになる。

このアプリを別のWindowsPC(複数)でも起動させたい場合

 ● このアプリを別のWindowsPCでも起動させたい場合、以下の方法で行う。
  C:\Users\user_name\Desktop\日本語以外のホルダ\*の\日本語以外のホルダ\を圧縮してZipファイル化して別のPCへインストールしても
  良いがこの場合、以下のランチャーアプリを一回も起動していない条件が必要である。
  一回でも起動していた場合、Deviceとの接続情報の初期値が変更されており正常動作しないことがある。
  一般的に、C:\Users\user_name\Desktop\piworks310\windows\ondop310.zip<-このondop310.zipはどこのPCからでも起動できるのでこの
  zipファイルを保存しておいてその後、複数の別PCへインストールするのが確実である。
  保存したzipファイルは永久的にライブラリバージョンを維持するのでwindowsが使える限り本アプリを起動させることができる。
  なお、windowsのDLLは一切関知しないので本アプリを使用しなくなった場合はホルダごと削除してもwindows側に悪影響を与えることは無い。
 ● 注意!! USBメモリ等で別PCへインストールした時、以下の現象で正常インストールできない場合がある。
  USBメモリから圧縮ファイルをコピーして展開した場合、*.EXEファイルやUSBメモリ内の*.EXEファイル等も削除される現象に遭遇する場合
  がある。
  これは、WindowsのWindows Defenderが正常作動しているためでタスクトレイのWindows Defenderに1個の脅威が見つかりました。
  というような通知が出ているはずである。(ポップアップウインドーで通知が出る場合もある)
  ウイルスと脅威と防止からさらに調べると、例としてTrojan:Win32/Wacatac.B!ml 削除にチェックマーク欄がありこれにチェックを入れ
  てすぐ下の操作の開始ボタンをクリックすると以下のような表示が出て数10分後に処理が終了する。
  ---
  区分:トロイの木馬
  影響を受けた項目:
  file: C:\Users\user_name\Desktop\ondop31.zip->ondop31/è┬ï½âéâjâ^ü[/start_ondo.exe
  ---
  終了後、デスクトップ上のondop31.zipファイルの削除とUSBメモリのondop310.zipファイルを削除し再度、最初からインストールを行うと
  この現象は出なくなる。

先ほど展開したデスクトップ上のランチャーアイコンと環境モニターアイコンをクリックする

以下のようなランチャーアプリが立ち上がる。
上の例はランチャーアイコンをクリック後、Dev_IP番号:を架空の番号とし「デバイス側確認ボタン」を押した例であるが現時点でRaspi側が設
定されていないのでtime outエラーという接続エラーが発生している例である。
また、この時点で環境モニターアイコンをクリックすると表示画面一番下中央のDevID:が99999で停止している。これも接続先エラーの状態である。
ランチャーは複数のwindowsPCと複数のRaspi(device)が管理できるようになっており、例えばランチャーメモ:のように家庭内のキッチンや居間
の温度モニターが複数の別PC(ビューア端末)でもグラフ起動できる。