ラズパイ電光掲示板用のOSをJessieからstretchにバージョンアップした
最近、電光掲示板を操作しているラズパイ3の microSD カードの調子が悪く、upgradeができない状態となっています。
どうやら、microSD カードが壊れかけている模様です。
この microSD カードに書き込んでいるOSは jessie でラズパイのOSとしては、二世代前に相当します。
そこで、microSDカードが完全に壊れてしまう前に交換することにしました。
OSは最新のバージョンにした方が良いのですが、OSに追いついていないソフトがあったりして問題になることもあるようです。
そこで、それらの事情に詳しくない60爺としては、1世代前のものにした方が無難であるとの結論で、Stretchを採用します。
その手順をまとめましたので、ご覧になってください。
ラズパイのOSの変遷
さて、上述したラズパイのOSについて、ちょっと触れておきます。
まずは、ラズパイのOSの変遷を見てください。
ラズパイOSの変遷
ご覧のように、2年ごとにOSがアップしていますね。
ご覧のように、60爺のラズパイのOSであるJessieは、最新のBusterに比べ古くなっていますね。
root@raspberrypi:~# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
そこで、OSを上げて、電光掲示板の環境設定も合わせて実施しようと思います。
ラズパイ電光掲示板の設定
ラズパイ電光掲示板の設定を、OS(Stretch)のインストールから環境設定を行う手順をまとめました。
- Stretch のダウンロード
- microSD カードへの書込み
- 電光掲示板のライブラリのコピー
- 関連アプリケーションのインストール
- 開発プログラム、シェルのコピー
それでは、手順に従い、1.から順に作業を実施していきましょう。
Stretch のダウンロード
始めにラズパイOSの「Stretch」のダウンロードを行います。
「Stretch」は公式から消えてしまいましたので次のサイトから手に入れましょう。⇒ JAIST 北陸先端科学技術大学院大学
microSD カードへの書込み
使用するmicroSDカードですが、最近は随分と安く手に入れることが出来るようになりましたネ。
OSの書き込みに使用したソフトは「Win32DiskImager」です。定番ですね。
このソフトを起動すると、下記のようにメッセージが表示されますので、「はい」をクリックします。
イメージファイル名とデバイスを入力して、「書込み」をクリックします。
「Complete」画面(Write Succesful.)が表示されたら終了です。
さあ、ラズパイの設定を始めましょう。
書き込みの終わった microSDカードをラズパイに設定して初期設定を行います。
電光掲示板のライブラリのコピー
初期設定が終わったら、電光掲示板の環境設定を開始します。
下記コマンドで、電光掲示板のライブラリをコピーします。
git clone https://github.com/hzeller/rpi-rgb-led-matrix/
関連アプリケーションのインストール
次の順で、下記の関連アプリケーションをインストールします。
- imagemagick インストール
- 日本語フォントをインストール
- PHPをインストール
それでは、各々のインストール方法を示しましょう。
imagemagick インストール
日本語を電光掲示板に出すためにイメージファイルを作成するために必要です。
電光掲示板でpythonのサンプルプログラム実行。ラズパイで電光掲示板 part3
sudo apt-get install imagemagick
policy.xmlに対して次の訂正をしないとエラーが出ますので修正を行います。
【ファイル名】/etc/ImageMagick-6/policy.xml
旧)<policy domain="path" rights="none" pattern="@*" />
新)<!-- <policy domain="path" rights="none" pattern="@*" /> -->
日本語フォントをインストール
次に、日本語フォントをインストールします。
次のコマンド(sudo apt-get install fonts-ipafont)を打ち込みます。
pi@raspberrypi:~ $ sudo apt-get install fonts-ipafont
pi@raspberrypi:~ $ ls /usr/share/fonts/truetype/
crosextra fonts-japanese-gothic.ttf gentium liberation openoffice
dejavu fonts-japanese-mincho.ttf gentium-basic liberation2 piboto
droid freefont lato noto
/usr/share/fonts/truetype/を確認して、日本語のフォント(fonts-japanese-gothic.ttf、dejavu fonts-japanese-mincho.ttf)がインストールされたことを確認します。
PHPをインストール
NHKニュースを電光掲示板に書き出すプログラムはPHPで作成しています。
そのため、PHPも必要です。
sudo apt-get install php
インストール後、バージョンを確認しました。
pi@raspberrypi:~ $ php -v
PHP 7.0.33-0+deb9u7 (cli) (built: Feb 16 2020 15:11:40) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.33-0+deb9u7, Copyright (c) 1999-2017, by Zend Technologies
PHP 7.0.33-0+deb9u7 (cli)です。
jessieでは、PHP 5.6.33-0+deb8u1 (cli) (built: Jan 9 2018 05:01:31)したので、だいぶバージョンがアップしましたね。
ここでは合わせて、PHPでXMLを読み込むためのライブラリをインストールします。
pi@raspberrypi:~ $ sudo apt -y install php7.0-xml
開発プログラム、シェルのコピー
60爺の開発した天気予報やニュースを電光掲示板に表示するプログラムと実行shellをjessieの環境からコピーします。
pythonプログラム
天気予報やNHKニュースを電光掲示板に書き出す元のテキストを作成しているpythonプログラムです。
天気予報を電光掲示板に表示! ラズパイで電光掲示板 part4
ニュース速報を電光掲示板でまとめて表示 ラズパイで電光掲示板 part5
ディレクトリ(python-pg)を作成後、ディレクトリに入った後、SCPコマンドでコピーします。
pi@raspberrypi:~/python-pg $ scp * pi@192.168.XXX.XXX:/home/pi/python-pg
pi@192.168.XXX.XXX's password:
jikan_file.py 100% 1749 1.7KB/s 00:00
tenki_file.py 100% 3323 3.3KB/s 00:00
tenki_out_gif.py 100% 3898 3.8KB/s 00:00
tenki_out.py 100% 4141 4.0KB/s 00:00
test_com.py 100% 105 0.1KB/s 00:00
test.py 100% 315 0.3KB/s 00:00
txt_print.py 100% 1433 1.4KB/s 00:00
phpプログラム
NHKニュースを電光掲示板に書き出すPHPプログラムをSCPコマンドでコピーします。
ニュース速報を電光掲示板でまとめて表示 ラズパイで電光掲示板 part5
pi@raspberrypi:~ $ scp test2.nhk_news.php pi@192.168.XXX.XXX:/home/pi
pi@192.168.XXX.XXX's password:
実行shell
SCPコマンドを使用してコピーします。
pi@raspberrypi:~ $ scp *.sh pi@192.168.XXX.XXX:/home/pi
pi@192.168.XXX.XXX's password:
00.sh 100% 252 0.3KB/s 00:00
30.sh 100% 259 0.3KB/s 00:00
jikan.sh 100% 1027 1.0KB/s 00:00
news.sh 100% 36 0.0KB/s 00:00
tenki_new.sh 100% 2482 2.4KB/s 00:00
tenki.sh 100% 426 0.4KB/s 00:00
time_display.sh 100% 250 0.2KB/s 00:00
シェルコマンド停止シェル
stopafterというshell停止用のコマンドを作成していたので、これも同一ヶ所に設定します。
pi@raspberrypi:~ $ scp stopafter /home/pi/rpi-rgb-led-matrix/bindings/python/samples/stopafter
pi@192.168.XXX.XXX's password:
電光掲示板表示テスト
準備が整いましたので、電光掲示板用のラズパイに作成した microSD カードをセットして、実行テストをします。
crontabの中を見ると、2つの設定がなされています。
00 7,9,12,15,17,20 * * * sh /home/pi/00.sh
30 8,10,11,13,14,16,18,19 * * * sh /home/pi/30.sh
動かしているのは、00.sh と 30.sh ですね。
00.sh を実行してみると、最初の時間表示で先に進まなくなってしまいました。
最後の led-image-viewer が止まらないようです。
stopafter が正常に作動しません!
sudo /home/pi/rpi-rgb-led-matrix/bindings/python/samples/stopafter 10 sudo /home/pi/rpi-rgb-led-matrix/utils/led-image-viewer -C --led-rows=16 --led-chain=2 --led-no-hardware-pulse /home/pi/work/jikan2.gif
しかし、個別にみていくと、stopafter が正常に作動しているのです。
どうやら、電光掲示板向けのライブラリの構成が変わったように思えます。
さんざん悩んだのですが、シェルコマンドを止める timeout コマンドがあるというのでテストしてみると、こちらは問題なく動きました。
sudo timeout 10 sudo /home/pi/rpi-rgb-led-matrix/utils/led-image-viewer -C --led-rows=16 --led-chain=2 --led-no-hardware-pulse /home/pi/work/jikan2.gif
このため、stopafter を使用している個所を全て timeout に変更して事なきを得ました。
最後に、crontab へ上記の設定を実施して、今回のミッションは終了です。
いやーーー、大変でした!
最後に
ラズパイのOSを上げるとともに、電光掲示板の環境設定を合わせて行いました。
全体の環境設定は、随分久しぶりなので、過去の備忘録をたどるとともに忠実に再現しました。
最終的には表示のテストで苦しみましたが、何とか乗り切れました。
後日のために、備忘録として残します。
※気づけば電光掲示板の記事も増えてきました
参考
JAIST 北陸先端科学技術大学院大学
一定時間でシェルコマンドを終了させるたった1つの方法
ディスカッション
コメント一覧
まだ、コメントがありません