トップ «前の日記(2024年04月05日) 最新 次の日記(2024年04月27日)» 編集

xiphioの備忘録


2024年04月06日

_ [computer] RaspberryPi での温度計測:もう一方も結局OS入れ直し

この2月に、提供されているOS"Raspberry Pi OS lite legacy版(32bit)"に入れ直したラズパイは、昨日の様に、Mail送出のpythonプログラムを変える事で無事稼働していますが、もう一方の、古いOS(Raspbianとか呼んでいた)の方で、同じpythonプログラムを走らせてみたところ、"EmailMessage"のインポートが出来ずにエラーで止まってしまいました。EmailMessageは便利と言うだけで必須ではないので、使えないのならば、それで何とかなりますが、プログラムは同じで揃えたいです。

pythonのヴァージョンの問題でしょうが、OSが古いのでapt-getではpython3のバージョンアップも既に出来ませんでした。そこでpython3で10.1のソースを持ってきて、コンパイルしてみました。定番のconfigure, make, make installの3つの手順も、3時間弱かかりましたが無事終わり、pythonは最新バージョンになり"EmailMessage"のインポートも出来ましたが、次は"server.starttls()"の所で止まってしまいました。確か何かのサポートがない、とかのメッセージだったと思います。結局こちらの方のラズパイも、現行のOSに入れ直す事にしました。(最初からそうすれば良かった)

同じくRaspberry Pi OS lite のlegacy版(32bit)を選択しまして、カードに書き込み。立ち上げ後、固定IPアドレスに変更して、Teratarmでsshで接続。その後、SCPにて必要なプログラムを転送後展開。インストールされているpythonは3.8で、Mail発信のプログラムも問題無く動きました。

ただ、温度計測プログラムの動作を確認した所、ライブラリ不足で動きませんでした。改めてコンパイルしなおしても、"usb.h"が無いと言ってきました。前回はそんな事無かったのですが、理由は不明です。(温度計測のUSB機器を付けずにインストールしたからかなぁ)

仕方ないので、ネットで調べてみたところ、こういう場合は"apt-file"で探せとありました。apt-fileは標準で入っていないので、まずそのapt-fileをインストール。
sudo apt-get install apt-file

以下のコマンドで、アップデートしてから検索
apt-file update
sudo apt-file search usb.h

沢山出てきますが、"libusb-dev"がそれっぽいので、これをインストール
sudo apt install libusb-dev

これでmakeし直すと、ワーニングは出ましたが無事コンパイル終了しました。後は先の通り、テストの動作もOKだったので、一応復帰した筈、です。

、、って思っていたら、2台の内の一方からしかMailが届きません。来なかった方に繋げて、書き出したエラーログ見てみましたら、接続リミットに達した、とかのエラーでサーバーに接続できていませんでした。Mailを送るプログラムはCRONで起動していますが、2台とも同じ時間の設定なので、同時に接続しようとしたのでエラーになった模様(実際には少しずれてるはずですが、、Gmailの時には無かった事です)。片方を、5分遅くして再設定しました。