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を設定するので途中、通信不能になる場合がある)
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で行う。

2024/01/13(土)Windows編

作業項目
  • Windows環境構築
    1.Python関連のインストール ..... バージョンの指定
      Windows上でPythonのインストール方法は「Python公式」、「Microsoft Store」、「Anaconda」、WSL(Windows Subsystem for Linux)
      などがある。
      ここではバージョン指定の必要から「Python公式」以外の方法でインストールしないこと。
    2.Tera Termのインストール
      Tera Termをユーザ名、パスワード無しで自動起動

Windowsへアプリが必要とするPythonとTeraTermをインストールする。

WindowsのPython環境を確認し作業を進める。
 ● 「ここへ入力して検索」へ半角で dosと入力すると黒いウインドー枠のコマンドプロンプトが現れる。
  ・コマンドプロンプトが現れたら >py -0< をコピペしてEnterを押す。(スペース以後~最後まで) ※py -0が有効なのはPython公式版のみ
  ・'py -0' は、内部コマンドまたは外部コマンド、<--が表示されたらお使いのwindowsはpython環境がセットアップされていないのでインストールする。
C:\Users\usr_name> py -0<--インストールされているpythonのバージョンを調べる
 -V:3.10 *        Python 3.10 (64-bit)
 -V:3.9           Python 3.9 (64-bit)<--すでにpythonのバージョン3.9がインストールされている
 -V:3.8           Python 3.8 (64-bit)
 -V:3.7           Python 3.7 (64-bit)
 ● Python関連のインストールを行う。デフォルトでMicrosoft Store版がインストールさている場合があるが本アプリでは使用できない。
  ・Microsoft Store版はバージョン管理の問題で任意のバージョンを指定して作業ができないため。
  ・このアプリはPython 3.10.11版で動作確認しているのでPython 3.10.11版を下記よりダウンロードする。
   Windows用のPython 3.10.11版をここよりダウンロードする。
  ・ダウンロード(python-3.10.11-amd64.exe)したファイルをデスクトップへ「酸素濃度計」等の任意のホルダ名を作成しその中へ
   さらにpythonというホルダを作成し、その中にファイルを保存する。
 ① 「デスクトップ/酸素濃度計/python」配下の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設定の変更を行うよりこの方が早く、確実である。
 ⑤ 最後にモジュール類のアクティベーションを行うためのpip及びvirtualenvをインストールしておく。
  ・>python.exe -m pip install --upgrade pip<をコピペしてEnterを押す。
  ・>py -3.10 -m pip install --upgrade setuptools virtualenv<をコピペしてEnterを押す。
  ・>pip list<をコピペしてEnterを押す。
C:\Users\usr_name> python.exe -m pip install --upgrade pip<--pipの最新版をinstall
C:\Users\usr_name> py -3.10 -m pip install --upgrade setuptools virtualenv<--python3.10.11用の最新版virtualenvインストール
C:\Users\usr_name> pip list<--以下が表示され、3点が含まれていること。
Package             Version
------------------- ----------
certifi             2023.11.17
cffi                1.16.0
charset-normalizer  3.3.2
contourpy           1.2.1
cycler              0.12.1
distlib             0.3.8
et-xmlfile          1.1.0
filelock            3.13.4
idna                3.7
importlib_resources 6.4.0
kiwisolver          1.4.5
pip                 24.0<--これ
platformdirs        4.2.0
pyasn1              0.6.0
pyparsing           3.1.2
setuptools          69.5.1<--これ
virtualenv          20.25.3<--これ
TeraTermをインストールする。
 ● TeraTermを下記よりダウンロードして「酸素濃度計/python」配下へ格納(移動)しインストールを行う。
   TeraTerm5.0版を-ここよりダウンロード。(バージョンは頻繁に更新されている、その場合適時読み変える)
  ・「Python_sys」配下のteraterm-5.0.exeをクリックする。
  ① セットアップに使用する言語の選択--->日本語--->OK
  ② 使用許諾契約書の同意--->同意する(A)--->次へ
  ③ インストール先の指定--->デフォルトのまま--->次へ
  ④ コンポーネントの選択--->標準インストール--->次へ
  ⑤ 言語の選択--->日本語(J)--->次へ
  ⑥ スタートメニューフォルダの指定--->Tera Term5(J)--->次へ
  ⑦ 追加タスクの選択--->デスクトップにTera Termのショートカットを作る(D)--->次へ
  ⑧ インストール準備完了--->インストール(I)
  ⑨ Tera Termセットアップウィザードの完了--->完了(F)
 ● コマンドプロンプトからsshでRaspiへログインしip番号を得る。
  ・※注意!! RaspiOSを書き込んだ後の1回目のboot時はLEDが緑の点滅を繰り返し、wlan0設定の所で止まっている。
   キーボードやVGA端子(コネクタ)が接続されていないためここは強制的にUSB電源を取り外す。2回目以降はちゃんと立ち上がる。(原因不明)
  ・Raspiは user名:pi、host名:raspberrypi01、password:***とする。
   数回、問い合わせがあるが全て「yes」で答える。
C:\Users\usr_name> ssh pi@raspberrypi01<----sshコマンドでログイン
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes<--yesを入力
pi@raspberrypi01's password:***<--パスワードを入力
pi@raspberrypi01:~ $ hostname -I<----IP番号を得る
192.168.1.241 192.168.51.131
pi@raspberrypi01:~ $ ifconfig
eth0: 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::123c:42fd:f2fd:26f9  prefixlen 64  scopeid 0x20<link>
        ether bc:5c:4c:e1:09:c6  txqueuelen 1000  (イーサネット)
        RX packets 56745  bytes 24131164 (23.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3003  bytes 217625 (212.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 1032375  bytes 133174400 (127.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1032375  bytes 133174400 (127.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.241  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::56ba:9ed0:bae:6b91  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:42:67:f0  txqueuelen 1000  (イーサネット)
        RX packets 945273  bytes 97775155 (93.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 843175  bytes 493120314 (470.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

※ ifconfigでWiFi:192.168.1.241、有線LAN(eth0):192.168.51.131であることが分かる。
 ● Tera Termの起動:デスクトップへ作成されたTera Term5の黄色いアイコンをクリック
  ・Tera Term:新しい接続
   TCP/IP ホスト(T) myhost.example.com v<--をクリックし-->myhost.example.com選ぶ
   myhost.example.com<----コピペで右に変更-->192.168.51.131
   その他はデフォルトのまま
   OK<--クリック
   ログイン中:192.168.51.131
   ユーザ名(N):pi<--ユーザ名を入力
   パスフレーズ(P):***<--パスワードを入力
   その他はデフォルトのまま
   OK<--クリック
● Tera Termウインドーが開き、以下のように作業を行う。
Linux raspberrypi01 6.1.21+ #1642 Mon Apr  3 17:19:14 BST 2023 armv6l
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jan 18 17:23:19 2024 from 192.168.51.100
pi@raspberrypi01:~ $<--このTera Termプロンプトが表示されるとsshにてRaspiとWindowsの通信が開通している。
pi@raspberrypi01:~ ls -al<--通信が開通したらLinuxのコマンドなどを受け付ける。
合計 52
drwxr-xr-x  7 pi   pi   4096  1月 16 16:38 .
drwxr-xr-x  3 root root 4096  4月  4  2022 ..
-rw-------  1 pi   pi   1757  1月 16 18:18 .bash_history
-rw-r--r--  1 pi   pi    220  4月  4  2022 .bash_logout
-rw-r--r--  1 pi   pi   3598  7月  1  2022 .bashrc
drwxr-xr-x  3 pi   pi   4096  7月  1  2022 .byobu
drwxr-xr-x  3 pi   pi   4096  7月 13  2022 .cache
drwx------  3 pi   pi   4096  7月 13  2022 .local
-rw-r--r--  1 pi   pi    807  4月  4  2022 .profile
drwx------  2 pi   pi   4096  1月 16 16:38 .ssh
-rw-------  1 pi   pi   1049  5月 10  2023 .viminfo
-rw-r--r--  1 root root   26  7月  1  2022 .vimrc
drwxr-xr-x 14 root root 4096  1月 17 11:12 programs
pi@raspberrypi01:~ $ exit<--Tera Termウインドーを終了
 ■ Tera Termをユーザ名、パスワード無しで自動起動させる。(開発アプリの保守を行うため)
  ・Tera Term5の黄色いアイコンを右クリック-->コピー(C)-->マウスポインタを画面の空いてる所へ移動して右クリック-->
  貼り付け(P)-->Tera Term5-コピーを右クリック-->プロパティ(P)-->リンク先(T):の内容をコピペにて以下と入れ替える。
  ・下記内容の*部分を右のように編集して *.*.*.*=hostname -Iで表示されたip番号 ***=password:*** コピペ貼り付け
  "C:\Program Files (x86)\teraterm5\ttermpro.exe" *.*.*.* /auth=password /user=pi /passwd=***
  OK<--クリック
  アイコン名の変更を行う:Tera Term5 - コピー<--右クリック-->名前の変更()<--*.*.*.* このip番号名に変更する。
 ■ 次のTera Term起動は:
  ◇ 1. *.*.*.*のアイコンをクリック<---ユーザ名とパスワードの入力無しにTera Termが自動起動する。
  ◇ 2. Tera Term5のアイコンをクリック<---従来通りのユーザ名とパスワードを入力する。
 ■ 起動したTera Termの終了:
pi@raspberrypi01:~ $ exit<-- exit EnterかX:閉じるで終了
   実行環境の圧縮ファイルを:download/actdev.tar.gzよりダウンロードする。
   USB_WiFiドライバの圧縮ファイルを:download/rtl8188eu.tar.gzよりダウンロードする。

Raspiソフトウエアセットアップ

作業項目
  • Raspi
    1.RaspiOSのインストール
    2.WindowsからsshにてRaspiへログイン
      有線LANとWiFiのIPを固定化
       bookworm版 bullseye版
    3.セットアップを継続

Raspberry piのセットアップ

Windows環境にてRaspiOSのインストール
 ● /bootfs内へ空sshファイルを作成しpipのインストールから始める。
 (raspiはpipがデフォルトでインストールされていない) ※なお、bookworm版からpip環境がデフォルトで許可されていない。
  RaspiOSを空のSDカード(64GB)へ書き込むためImagerのインストール(Windows版)を行う。
 Windows版のimagerを Just a moment... からダウンロードする。
 Download for Windowsを選択し、imager_*.*.*.exeをインストールする。(例はimager_1.8.4.EXE、bookworm版の場合)
 ここで、WindowsはRaspiと同じネットワークハブ内にありWiFiアクセスポイントも稼働中であるものとする。
 最新版OS(bookworm)ではDHCP環境がNetworkManager管理下になっており、WiFi設定等を自動的行わせるため。
 このネットワーク環境で作業すると下記4.WiFiのSSID及びパスワードを自動認識し有線LANのIPも自動的に割り振られる。
 システム設定:Windows:設定の項で作成したホルダ「Python_sys」配下へファイルを移動する。
 ・「Python_sys」内のimager_1.8.4.EXEをクリック
 ・ WindowsのGUIにより( SDカードへRaspiOSを書き込む )RaspiOSのインストールを行う。
 1.Raspberry: Piデバイス nofiltering クリック NO FILTERING
 2.OS: OSを選択 Raspberry Pi OS(other) > Raspberry Pi OS Lite(32-bit)を選択 RASPBERRY PI OS LITE(32-BIT)...※CUI版
 3.ストレージ: ストレージを選択 Multi Flash Reader - 62.2 GBと表示された部分をクリック MULTI FLASH READER
   選択状態 [NO FILTERING  RASPBERRY PI OS LITE(32-BIT)  MULTI FLASH READER]<--この並びで 次へ <--クリック
   ここで必ず、設定を編集する<--クリック
   ホスト名:、パスワード:、WiFiのSSIDやロケールやその他を設定するため
 4.ホスト名: raspberrypi01 .local ユーザ名とパスワードを設定する ユーザ名:pi パスワード:***
   Wi-Fiを設定する SSID *** パスワード:*** WiFiを使う国:GB<--JPに変更 (パスワード:*** パスワードを見るで表示される)
   ※ここでパスワードは固定化IPで使用するのでメモ帳などへコピペしておく
   ロケール設定をする タイムゾーン:Asia/Tokyo キーボードレイアウト:us <--jpに変更
   保存<--クリック はい<--クリック 警告 はい<--クリック(SDカードへ書き込みが始まる)
   プレグレッシグバーが表示され、進行状態が表示される 書き込み中...60%  確認中...50%
   途中でデスクのフォーマットをしますかが表示されるがこれはXで閉じる
   書き込みが正常に終了しました
   SDカードをSDカードリーダーから取り出すことができます。
   続ける<--クリック 右上のXで終了(閉じる)する。
   USB Card Reader取り出し<--クリック --OKが表示されたらUSBケーブルを一端取り外す。
   USBケーブルを取り外して再接続し、/bootfs(D:)内へ空のsshファイルを作成する(初期boot時のsshをイネーブルするため)
   SDカードをCard Readerから取り出し、Raspi Zを立ち上げる。
 5.エラーが出て書き込みがうまくいかない時、以下を確認する。
  ・SDカードの接触不良の場合は挿し直すと解決する場合がある。
  ・USBケーブルの交換や別のSDカードスロットや、SDカードリーダーにすると解決する場合がある。
WindowsからsshにてRaspiへログインし、圧縮ファイルを転送後はTeraTermでログインし直す。
  Raspi:(ホスト名:raspberrypi01 ユーザ名:pi パスワード:***)
  ・※注意!! RaspiOSを書き込んだ後の1回目のboot時はLEDが緑の点滅を繰り返し、wlan0設定の所で止まっている。
   キーボードやVGAが接続されていないためここは強制的にUSB電源を取り外す。2回目以降はちゃんと立ち上がる。(原因不明)
  ・Raspiは user名:pi、host名:raspberrypi01、password:***とする。
 ● 「ここへ入力して検索」へ半角で dosと入力すると黒いウインドウ枠のコマンドプロンプトが現れる。
  ・ここでは、Raspiの/home/pi配下へprogramsというデレクトリを作成する。
  ♦ この作業はRaspi側へ通信記録を残す非常に大事な作業であり、必ずssh接続を最低1回は行なっておく必要がある。
   記録例: tcp Local Address:Port 192.168.51.139:22という履歴が残りこの:22が本作業に該当する。
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:~ $ mkdir -p /home/pi/programs && cd $_<-----①programsデレクトリ作成と移動
・すでにprogramsデレクトリがあればprogramsが表示される。
pi@raspberrypi01:~/programs $ cd /
pi@raspberrypi01:~ $ sudo chmod 767 /home/pi/programs<---書き込み権と実行権を設定
 ● Raspiのpiユーザ配下へprogramsデレクトリが作成されたのでダウンロードした実行環境を格納する。
  ・先ほど、デスクトップ上に作成済みホルダ「Python_sys」配下へダウンロードした*.tar.gzを格納
  ・再度、新規コマンドプロンプトを起動
  ・scpコマンドで*.tar.gzファイルをprograms配下へ移動(user_name、pi@raspberrypi01は自分の環境へ適時、合わせる)
C:\Users\user_name> scp C:\Users\user_name\Desktop\Python_sys\actdev.tar.gz pi@raspberrypi01:/home/pi/programs/actdev.tar.gz
 ● 有線LANとWiFiのIPを固定化( bookworm版, bullseye版 )し、以後TeraTermで作業を行う。
以下、ssh接続のTeraTermでセットアップ作業を行う。 (TeraTerm不明時、TeraTermをインストールする で検索をかける)
  ・Raspiへvirtualenv環境を作成しPythonモジュール類をインストールする。
  ・Windows編で作成した、Tere Termのアイコン *.*.*.* をクリック
pi@raspberrypi01:~ $ sudo apt update
Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) 
for details.<--無害ではあるがWarningが発生した場合
pi@raspberrypi01:~ $ sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d<--Warning停止
pi@raspberrypi01:~ $ sudo apt -y update
pi@raspberrypi01:~ $ sudo apt -y upgrade
pi@raspberrypi01:~ $ sudo apt -y install vim
pi@raspberrypi01:~ $ python3 --version
Python 3.11.2
pi@raspberrypi01:~ $ uname -a
Linux raspberrypi 6.1.0-rpi7-rpi-v6 #1 Raspbian 1:6.1.63-1+rpt1 (2023-11-24) armv6l GNU/Linux
pi@raspberrypi01:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)"
NAME="Raspbian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
 ● Raspiの画面がフリッカしている場合があるのでその対策を行う。
pi@raspberrypi01:~ $ sudo vi /boot/config.txt
iを入力
--INSERT --
#dtoverlay=vc4-kms-v3d<--#を入れてコメント化
ESC :wq Enter<-- viエデイタ 書き込み終了
pi@raspberrypi01:~ $ sudo reboot
 ● virtualenvをインストールした後、pip本体のインストールとアップグレードを行う。
pi@raspberrypi01:~ $ sudo apt install virtualenv python3-virtualenv -y
Setting up javascript-common (11+nmu1) ...
Setting up python3-filelock (3.9.0-1) ...
Setting up python3-distlib (0.3.6-1) ...
Setting up python3-platformdirs (2.6.0-1) ...
Setting up libexpat1-dev:armhf (2.5.0-1) ...
Setting up zlib1g-dev:armhf (1:1.2.13.dfsg-1) ...
Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
Setting up python3-wheel-whl (0.38.4-2) ...
Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
Setting up python3-virtualenv (20.17.1+ds-1) ...
Setting up libpython3.11-dev:armhf (3.11.2-6) ...
Setting up virtualenv (20.17.1+ds-1) ...
Setting up libjs-sphinxdoc (5.3.0-4) ...
Setting up libpython3-dev:armhf (3.11.2-1) ...
Setting up python3.11-dev (3.11.2-6) ...
Setting up python3-dev (3.11.2-1) ...
Processing triggers for man-db (2.11.2-2) ...
pi@raspberrypi01:~ $ sudo apt install -y git
pi@raspberrypi01:~ $ sudo apt install i2c-tools
pi@raspberrypi01:~ $ sudo apt install byobu
pi@raspberrypi01:~ $ sudo apt install -y ufw
● 温湿度計ではntpを必要としているのでchronyをインストールする。
pi@raspberrypi01:~ $ sudo apt install chrony
pi@raspberrypi01:~ $ sudo vi /etc/chrony/chrony.conf
i Enter
--INSERT --
refclock SHM 0 offset 0.5 delay 0.2 refid GPS<-最終行に追加しておく(GPSによる時刻同期)
Esc : w q Enter<--順番に入力し書き込んで終了する
pi@raspberrypi01:~ $ sudo systemctl enable chrony
Executing: /lib/systemd/systemd-sysv-install enable chrony
pi@raspberrypi01:~ $ sudo systemctl start chrony
pi@raspberrypi11:~ $ timedatectl status
   Time zone: Asia/Tokyo (JST, +0900)<--JSTならOK
   Time zone: Europe/London (GMT, +0000)<--もしJSTでないならJSTに変更
pi@raspberrypi11:~ $ timedatectl set-timezone Asia/Tokyo
● すでにWindowsのscpコマンドでactdev.tar.gzファイルを/home/pi/programs/actdev.tar.gzに移動しているので、
pi@raspberrypi01:~ $ cd programs
pi@raspberrypi01:~/programs $ sudo tar -zxvf actdev.tar.gz
pi@raspberrypi01:~/programs $ ls -al
drwxrw-rwx 3 pi   pi      4096 Jan 22 15:25 .
drwx------ 4 pi   pi      4096 Jan 22 15:23 ..
drwxr-xr-x 4 root root    4096 Jan 17 11:15 actdev<--このデレクトリ内へソフトウエアのセットアップを行う。
-rw-r--r-- 1 pi   pi   9915634 Jan 19 18:28 actdev.tar.gz
pi@raspberrypi08:~/programs $ cd /home/pi/programs/actdev
・仮想環境(virtualenv)を作成し、pip等をインストールする。
pi@raspberrypi01:~/programs/actdev $ sudo chmod 767 dev_venv<--書き込み権と実行権を設定
pi@raspberrypi01:~/programs/actdev $ virtualenv -p /usr/bin/python3 dev_venv
pi@raspberrypi01:~/programs/actdev $ source dev_venv/bin/activate
(dev_venv) pi@raspberrypi01:~/programs/actdev $ pip list
Package    Version
---------- -------
pip        23.0.1<--最新版にupgrade
setuptools 66.1.1<--最新版にupgrade
wheel      0.38.4
(dev_venv) pi@raspberrypi01:~/programs/actdev $ pip -V
pip 23.0.1 from /home/pi/programs/actdev/dev_venv/lib/python3.11/site-packages/pip (python 3.11)
(dev_venv) pi@raspberrypi01:~/programs/actdev $ python -m pip install --upgrade pip setuptools<-pip,setuptoolsのupgrade
Successfully installed pip-23.3.2
Successfully installed setuptools-69.0.3
(dev_venv) pi@raspberrypi01:~/programs/actdev $ pip install numpy==1.24.2   (pip3)<---?
 ● Raspiへログインし直しセットアップ作業を継続する。
pip install python-dateutil<--日付処理をより簡単に行えるライブラリ
pip install bme680
pip install cryptography
pip install pigpio
pip install PyYAML
pip install smbus2
pip install smbus
■■■■■■■