Raspberry Pi2Bを譲ってもらって遊び始めたのが2018年の夏だったので、そろそろ3年になる。
その後ラズパイ3Bを買い足して、2台体制で運用してきた。部屋の環境を記録してつぶやいたり、micro:bit百葉箱の温度データをBLEでラズパイに飛ばして記録したりと、基本的には2台とも24時間稼働させている。
今一番重要なのが、2021年4月に公開したWebアプリ「日替わり通信術」の、電報文を自動生成するスクリプト。これはcronで毎日10時過ぎに自動実行してFTPでサイトにアップロードしている。
ただ、このスクリプトも初期の頃から少しずつ改良しているためにコードが乱雑だし、ラズパイの初期設定がPython2だったこともあって、コードはPython2で書いており、Python2のサポート終了も気になっていた。
そこでとりあえずPython3に対応させようと少しずついじっていたんだけど、そもそも3年前のRasbianだとPython3が3.5で、これもサポート終了している。まずはPython自体のアップデート...といろいろやっていたら、なんだかラズパイ自体の動作が変になってきた。こういう稼働中のシステムには「動いているものはいじるな」という格言があって、気になるところはあってもヘタに触るとおかしくしてしまうという典型。
そこでラズパイ2Bは丸ごとバックアップしてあったマイクロSDに挿し替えて元に戻し、新たにラズパイ4を買ってそちらでPython3対応などをして、最終的に2Bから4にメイン機を移行する作戦とした。その上で2Bは最新のRaspberryPi OSを入れて負荷の軽い運用とすれば良いかな。
買ったのはラズパイ4のメモリ4GBのモデルと、ファン付きヒートシンク型のケース、USB電源、マイクロSDカード。ケースはこのタイプだとGPIOがそのまま使えるので便利。あとモニタ出力がマイクロHDMIに変わっているので、ケーブルも購入した。
もうラズパイは3台目になるのに、毎回使えるようにするまでの手順をググっている。一応思い出せる範囲でやったことをメモしておく。
- Raspberry Pi OSの最新版を、Raspberry Pi Imagerを使ってマイクロSDに書き込み
- マイクロHDMIケーブルでモニタ(TV)につないで起動して、設定からホスト名・パスワードの変更、SSHの有効化、WiFiの接続設定、RealVNCのインストールと有効化
- Teamviewerのインストールと設定(これはHDMI接続した状態でやらないとダメ)。
- HDMI接続を外してもVNC、Teamviewerがつながる設定
- IPアドレスを使わずホスト名.localで接続するためにAvahiのインストール
- 以降はモニタは不要。SSH、VNCで接続して操作可能。
- cifs-utilsをインストールして、NASをマウント
- GUIの日本語入力(ibus-mozc)のインストール
- Python3をデフォルトにする場合、シンボリックリンクを変更
- nanoエディタの設定
- crontab -eでcronの設定、またはバックアップからリストア
- 基板のLEDを常時消灯にする
【追記】
ラズパイ4で日替わり通信術のスクリプトを実行するようにしたので、古いラズパイ2Bは新しいマイクロSDカードに最新のOSイメージをクリーンインストール。
クリーンインストールなのでUSB WiFiアダプタは外しておいた。ら、GUIが起動した時点でWiFiにアクセスできることに気づいた。ラズパイ2Bは内蔵無線LANはなかったはずなのに...と思って世代を調べるコマンドで確認してみたら、2Bだと思っていたラズパイが実は3Bだったことが判明。3年間気づかずにUSB WiFiアダプタを付けて使っていた。元々人から譲ってもらったものだし、メモリも同じ1GBなので全然気がつかなかった。
あれ、ラズパイ2bって内蔵無線LANなかったですよね…。USB wifiのアダプタ外しても普通にwifi繋がってる…怖い… pic.twitter.com/OG2hM2kApf
— ソウヘイ JH1CFV (@hsohei) July 17, 2021