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

作業項目
  • Windows環境下でRaspiOSのセットアップを行う
     ここで用意する物:USBタイプのSDカードリーダーかPC本体付属のSDカードリーダーと16GB、32GB、64GBのどれかのSDカード本体(class10以上)
     ここでは、Windows環境の構築編でデスクトップ上にpiworks310というホルダがすでに展開されているものとする。
     C:\Users\user_name\Desktop\piworks310<-デスクトップ上
     C:\Users\user_name\Desktop\piworks310\bookworm\bookworm.tar.gz<-このtar.gz圧縮ファイル
     bookworm.tar.gzはraspiOSであるimg形式ファイルをtar.gzに圧縮したファイルである。
     このファイルにはraspiOS(bookworm版)本体とsystemdを含めた起動アプリがセットアップされているため電源入れた段階でアプリが起動する。
     電源入れた段階で、内部ストレージに収集データを保存しているためWindows環境の構築編で作成したランチャーアプリでネットワーク接続が確立す
     ればグラフ表示が可能である。
     なお、推奨RaspiはZeroW、ZeroWh、Zero2WでA+、2B、2B+、3B、3B+等は推奨しない。また32bit版限定で64版は動作未確認である。
     この装置は温湿度センサーをHATという部分に取り付けている構造上、発熱のため温度誤差を生じるので推奨としていない。
     また、消費電力の点からキーボードやデスプレイも接続しない。
     
    1.bookworm.tar.gzファイルの展開
    2.SDカードへbookworm.imgを書き込む
    3.WindowsからsshにてRaspiへログインしIP番号等を調べる
    4.ランチャーを起動しIP番号を入力して該当場所のアプリを起動する

bookworm.tar.gzファイルからraspiOSのimgファイルを作成

RaspiOSのimgファイル作成
 ● タスクトレイの「ここへ入力して検索」へ半角で dosと入力すると黒いウインドウ枠のコマンドプロンプトが現れる。
Microsoft Windows [Version 10.0.19045.4780]
(c) Microsoft Corporation. All rights reserved.
C:\Users\user_name> cd C:\Users\user_name\Desktop\piworks310\bookworm<-user_nameは適時、自環境に合わせる
C:\Users\user_name\Desktop\piworks310\bookworm> tar -xvzf bookworm.tar.gz
x bookworm.img<-展開に少し時間がかかる

C:\Users\user_name\Desktop\piworks310\bookworm>
 ● \piworks310\bookworm\ <-ここに約4GB程度のbookworm.imgファイルが作成されている。
  ・ なおこのimgファイルはDHCP(固定ipではない)で立ち上がるように作成されているため例えば居間やキッチンなど複数のdeviceを稼働させる場
   合にはこのimgファイルでSDカードを複数枚作成しておけば良い。(例えば、bookworm版がlegacyとなってもずっと使い続けることができる)
   ネットワーク接続の管理にランチャーアプリがあるため必ずしも固定ip環境下にしなくても良いということである。
   DHCP環境でも使える良い点は違うネットワーク環境へ持って行きそこで取り付けてもそこの環境下で稼働できるという点があるがいつip番号を
   勝手に変えられても文句は言えないので適時ip番号を調べる手間が一つ入ることになる。

bookworm.imgファイルからraspiOS(bookworm版)用のSDカードを作成

SDカードへRaspiOS(bookworm版)のimgを作成
 ● この作業に引き続き、ip固定化を行う予定がある場合全てのraspi(device)を現、ネットワーク環境下へ参加させておいて以下の作業を始めること。
  どういうことが起きるかというと重複された同じip番号がネットワーク内のDHCPサーバにより2重登録される可能性がある。
 ● また、SDカードにすでに何か書き込まれている場合、SD Card Formatter等で完全消去しておいたほうが良い。
 Windows版のimagerをここよりダウンロード。(バージョンは頻繁に更新されている、その場合適時読み変える)
 ・Download for Windowsをクリックするとダウンロードが始まる。ダウンロードしたファイルを\piworks310\内に配置してクリックするか又は、
 ・\piworks310\bookworm\ <-ここのimager_1.8.5をクリックすると以下のようにimagerが立ち上がる。
 ・OSを選択をクリック
 ・Use customを選択
 ・C:\Users\user_name\Desktop\piworks310\bookworm\bookworm.imgを選択してOpenをクリック
 ・OSがBOOKWORM.IMGに変更された
 ・次に、ストレージを選択をクリック
 ・MultiFlashReaderを選択
 ・ストレージがMultiFlashReaderに変更された
 ・次へ
 ・設定を編集する
 ・注意!複数のraspiでip固定化を行う予定がある場合、必ず全てのraspi(device)を現、環境下のネットワークへ参加させておいてこの作業行うこと。
  例えば電源切り状態などの不参加でこの作業を行うと重複されたip番号が割り振られることになり後々、ipのConflict(競合)が発生して動作不具合
  に陥る。一旦、不具合に陥ると回復にかなりの修復作業を要する。(不参加中のdeviceがすでにip固定化されている場合がこれにあたる)
 ・ここでNetworkManagerでネットワーク環境を設定する(DHCP環境の設定)
 ここでは以下の設定を行う
 ・ホスト名:日本語以外で任意のユニークな文字列(ホスト名とユーザー名とパスワードは後ほど使用するのでメモしておく)
   ユニークな文字列とは居間とかキッチンへ設置する場合、重複しないよう必ず別名にする必要がある
 ・ユーザー名:pi raspiでは慣習的にpiとするようである。ここではsystemdにユーザ名を含めたpathを登録するので必ずpiとする。
  ユーザー名は重複可能である。
 ・パスワード:任意の日本語以外の文字列(重複可能)
 ・WiFiを設定する
   SSID:現在、WindosはWiFi環境下で稼働中であるので「WiFiの利用できるネットワークの表示」より、プロパティ SSID:以後をコピーしてここへ張り付ける
  (例では0024A5C99861であった)
   パスワード:WiFiの底に貼ってある KEY:以降を張り付けても良いがここでは任意の日本語以外の文字列
   このパスワードは後で頻繁に使うことになるので任意文字列だと忘れる可能性もありKEY:のような文字列が適当と思われる。
   なお、パスワードを見るにチェックを入れると記入ミスが少ない
   WiFiを使う国:JPを選択
 ・ロケール設定をする
   タイムゾーン:Asia/Tokyoを選択
   キーボードレイアウト:JPを選択
 ・保存をクリックする前に一般 横のサービスをクリックする(sshはデフォルトで使える状態ではないのでここでSSHを有効化)
 ・注意:ホスト名、ユーザー名、パスワードの内どれか一つでも不整合があるとログイン不可能になるので要注意!!
 ・SSHを有効化にするにチェック
 ・ここで保存をクリックすると以上の設定を引き継いでSDカードへ書き込みされる
 ・書き込みの注意喚起があるが「はい」をクリック
 ・プログレッシブバーが進行し、書き込みが始まる
 ・書き込み内容の検査が始まる
 ・正常終了すると以下のメッセージが出力される
 ・続けるをクリックして X でimagerを閉じる
 ・タスクトレイのUSBアイコンをクリック
 ・Card Readerの取り出しをクリック
 ● これでraspiOSがSDカードへ書き込めたのでカードリーダーから抜き出してraspiへ差し込む。
  bookworm.img本体は約4GBであるが自動的にSDカードの容量へパーティション拡張されて書き込まれている。
  Raspi起動時、キーボードやデスプレイは接続しないのでbookworm版では以下のようにする。(Bullseye版とはふるまいが異なる)
  また、電源入れるとsystemdに登録したアプリが立ち上がるので必ず購入したHATを取り付けてから電源を入れること。
  デスプレイを接続して立ち上げると経過は見れるが約8分程度待っていれば使える状態になる。
  ① 電源を入れると緑のLEDが点滅して立ち上がり、LEDが消灯してシャットダウン状態(数分後)になる。
  ② シャットダウン後、再度電源を入れなおし今度は約8分程度待つ。
   数回リブートしているがこれはパーティションの整合性を取り直しているものと思われる。
 ● 電源を入れて立ち上がった最初に行うのはraspiのupdateとupgradeを行っておくことである。
 ・Windowsのコマンドプロンプトを立ち上げ先ほどメモしたユーザー名:piとホスト名:raspi11を入力しraspiへログインする。
Microsoft Windows [Version 10.0.19045.4780]
(c) Microsoft Corporation. All rights reserved.

C:\Users\user_name>ssh pi@raspi11<-windows標準のsshでraspiへログインする
The authenticity of host 'raspi11 (fe80::325c:4e32:53f0:e8b4%15)' can't be established.
ECDSA key fingerprint is SHA256:d9HpQMSso8f+l9Z9UqOzxgmkZuhkp+LedD9JMSdGCUs.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes<-yesを入力
Warning: Permanently added 'raspi11' (ECDSA) to the list of known hosts.
pi@raspi11's password:<-先ほどメモしておいたパスワードを入力
Linux raspi11 6.6.31+rpt-rpi-v6 #1 Raspbian 1:6.6.31-1+rpt1 (2024-05-29) armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
pi@raspi11:~ $ sudo apt update<-まず最初updateを行う
Get:1 http://archive.raspberrypi.com/debian bookworm InRelease [39.0 kB]
Get:2 http://raspbian.raspberrypi.com/raspbian bookworm InRelease [15.0 kB]
Get:3 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf Packages [14.5 MB]
Get:4 http://archive.raspberrypi.com/debian bookworm/main armhf Packages [443 kB]
Get:5 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages [441 kB]
Fetched 15.4 MB in 44s (350 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
pi@raspi11:~ $ sudo apt upgrade<-次にupgradeを行う
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.<-配部されたbookworm.imgが最新版であったためupgradeはすぐ終了した。
                                古かった場合ここで数10分かかる。
pi@raspi11:~ $
 ● systemdに登録したアプリが起動しているか確認(ondo_run.service; enabled; preset: enabled)enabledであれば正常起動中
pi@raspi11:~ $ sudo systemctl status ondo_run.service
● ondo_run.service - Bme680 Ondo
     Loaded: loaded (/etc/systemd/system/ondo_run.service; enabled; preset: enabled)
     Active: active (running) since Fri 2024-08-16 13:31:56 JST; 18min ago
    Process: 815 ExecStartPre=/usr/bin/bash -c sleep 22s; (code=exited, status=0/SUCCESS)
   Main PID: 901 (bash)
      Tasks: 9 (limit: 849)
        CPU: 31.068s
     CGroup: /system.slice/ondo_run.service
             ├─901 bash /home/pi/programs/pidev/sysmd/ondf.sh
             ├─904 ./st_ondo.bin
             ├─906 bash ./ondf1.sh
             ├─909 python d_server680_kivy.py
             └─910 python d_ond_disp_kivy.py

Aug 16 13:31:34 raspi11 systemd[1]: Starting ondo_run.service - Bme680 Ondo...
Aug 16 13:31:56 raspi11 systemd[1]: Started ondo_run.service - Bme680 Ondo.
pi@raspi11:~ $
 ● systemdに登録したSDカードの寿命を延ばすための/var/logをRamdiskへ待避させる処理(enabled; preset: enabled)enabledであれば正常起動中
pi@raspi11:~ $ sudo systemctl status tempfs-var-log
● tempfs-var-log.service - tempfs var-log
     Loaded: loaded (/etc/systemd/system/tempfs-var-log.service; enabled; preset: enabled)
     Active: active (exited) since Fri 2024-08-16 13:30:15 JST; 25min ago
   Main PID: 354 (code=exited, status=0/SUCCESS)
        CPU: 654ms

Aug 16 13:30:11 raspi11 systemd[1]: Starting tempfs-var-log.service - tempfs var-log...
Aug 16 13:30:12 raspi11 sudo[368]:     root : PWD=/ ; USER=root ; COMMAND=/usr/bin/sh -c 'echo "\\n[ begin - restore ]\\nFri 16 Aug 13:30:11 JST 2024" >> /backup/logs/20240816_var-log-backup.log'
Aug 16 13:30:12 raspi11 sudo[368]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Aug 16 13:30:12 raspi11 sudo[368]: pam_unix(sudo:session): session closed for user root
Aug 16 13:30:13 raspi11 sudo[384]:     root : PWD=/ ; USER=root ; COMMAND=/usr/bin/sh -c 'rsync -auv /backup/var-log/* /var/log/ >> /backup/logs/20240816_var-log-backup.log'
Aug 16 13:30:13 raspi11 sudo[384]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Aug 16 13:30:15 raspi11 sudo[384]: pam_unix(sudo:session): session closed for user root
Aug 16 13:30:15 raspi11 systemd[1]: Finished tempfs-var-log.service - tempfs var-log.
pi@raspi11:~ $

Windows標準のsshにてraspiへログインしIP番号等を調べる

 ● ランチャーでアプリを起動させるためのipアドレスを確認する(eth0とWiFiのアドレスが確認できる)
pi@raspi11:~ $ sudo ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.51.54  netmask 255.255.255.0  broadcast 192.168.51.255<-192.168.51.54:eth0のアドレス
        inet6 fe80::325c:4e32:53f0:e8b4  prefixlen 64  scopeid 0x20<link>
        ether bc:5c:4c:e1:09:c6  txqueuelen 1000  (Ethernet)
        RX packets 12677  bytes 16123989 (15.3 MiB)
        RX errors 0  dropped 1004  overruns 0  frame 0
        TX packets 1978  bytes 180197 (175.9 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 19  bytes 2216 (2.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19  bytes 2216 (2.1 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.224  netmask 255.255.255.0  broadcast 192.168.1.255<-192.168.1.224:WiFiのアドレス
        inet6 fe80::4c:71ee:80e0:857d  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:51:a8:67  txqueuelen 1000  (Ethernet)
        RX packets 190  bytes 19716 (19.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 42  bytes 6094 (5.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

pi@raspi11:~ $

ランチャーを起動しIP番号を入力して該当アプリを起動する

 ● ランチャーを起動して環境モニターアプリを起動する。
 ・Windows編で作成した \環境モニター\ 内のランチャーアイコンをWクリックする。
  Dev_IP番号:192.168.51.54<-これを先ほどのIPに変更する
  Ping送信
  デバイス側確認
  デバイス指定 ここでランチャーメモ:の内容がビューア端末内へ保存される。
  以上のボタンを順次クリックすると黒い枠のコンソールボックスへIP:192.168.51.54の内容が表示され、device側の情報も表示される。
  デバイス側確認時はDev_IP(wlan0):欄にdevice側の固有のWiFi番号が表示されているがこの例ではすでにデバイス指定ボタンが押されてい
  るのでWiFiが表示されている。(この例ではPing送信時の192.168.1.224が表示されている)
  なお、ランチャーメモ:欄はdevice側の情報ではなくこのビューア端末で個別にメモできる内容である。
  ランチャーメモ:は各ローカルのビューア端末で独自のメモ書きが残せる。忘れないように特にipとの関連性などをメモすると良い。
 ● ランチャーで指定したIP番号の環境モニターアプリ起動する。(居間やキッチンでのIPを指定すればそれぞれの環境モニターが起動できる)
 ・Windows編で作成した \環境モニター\ 内の環境モニターアイコンをWクリックする。
 ・ロゴファイル名:(jpg、png)と表題と設置場所はランチャーで変更して「デバイス指定」をクリック後、環境モニターアイコンをWクリックする。