ラズパイ電光掲示板用のOSをJessieからstretchにバージョンアップした

2020年4月14日

電光掲示板を操作しているラズパイ3の microSD カードの調子が悪いです。最近では、upgrade できない状態となっています。

おまけに、microSD カードが壊れかけている模様です。

この microSD カードに書き込んでいるOSは jessie でラズパイのOSとしては、二世代前に相当します。

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

そこで、完全に壊れてしまう前に、microSD カードを交換することにしました。OSは最新にした方が良いのですが、OSに追いついていないソフトがあったりして問題になることもあるようです。

そこで、それらの事情に詳しくない60爺としては、1世代前のものにした方が無難であるとの結論で、上記にある一世代前の Stretch を採用します。

スポンサーリンク

ラズパイ電光掲示板microSD設定

さて、上述したラズパイのOSについて、ちょっと触れておきます。

まずは、ラズパイのOSの変遷を見てください。

ラズパイOSの変遷

  • Lenny (Debian GNU 5.0) 2009年~2012年
  • Squeeze (Debian 6.0)2011年~2014年
  • Wheezy (Debian 7.0)2013年~2016年
  • Jessie (Debian 8.0)2015年~2018年
  • Stretch (Debian9.0)2017年~2020年
  • Buster        2019年6月~

ご覧のように、2年ごとにアップしていますね。Jessie は、ちょっと古い状況です。

そこで、OSを上げて、電光掲示板の環境設定も合わせて実施しようと思います。

電光掲示板の環境設定を次の手順で実施しました。

  1. Stretch のダウンロード
  2. microSD カードへの書込み
  3. ラズパイの設定開始
  4. 電光掲示板のライブラリのコピー
  5. 関連アプリケーションのインストール
  6. 開発プログラム、シェルのコピー

それでは、1.から順に作業を実施していきましょう。

Stretch のダウンロード

参考記事に「stretchの入手について」がありますので、そこから、「Raspbian Stretch Full」をダウンロードします。

microSD カードへの書込み

使用する microSD カードはこれです。最近は随分と安く手に入れることが出来るようになりました。

書き込みに使用したソフトは「Win32DiskImager」です。定番ですね。

「はい」をクリックしましょう

イメージファイル名と、Device名を間違えないようにして、write をクリックします。

「Complete」画面(Write Succesful.)が表示されたら終了です。


ラズパイの設定開始

書き込みの終わった microSD カードをラズパイに設定して初期設定を行います。

電光掲示板のライブラリのコピー

下記コマンドで、電光掲示板のライブラリをコピーします。

git clone https://github.com/hzeller/rpi-rgb-led-matrix/

関連アプリケーションのインストール

次の順で、下記の関連アプリケーションをインストールします。

  1. imagemagick インストール
  2. 日本語フォントをインストール
  3. 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="@*" /> -->

日本語フォントをインストール

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

PHPをインストール

NHKニュースを電光掲示板に書き出すプログラムは、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

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の環境からコピーします。

① 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

② 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:

④ シェルコマンド停止シェル

stopafterというshell停止用のコマンドを作成していたので、これも同一ヶ所に設定します。

shellで Ctrl-c を実現した!最初はミスって電光掲示板5時間動きっぱなし

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を上げるとともに、電光掲示板の環境設定を合わせて行いました。

全体の環境設定は、随分久しぶりなので、過去の備忘録をたどるとともに忠実に再現しました。

最終的には表示のテストで苦しみましたが、何とか乗り切れました。

後日のために、備忘録として残します。

※気づけば電光掲示板の記事も増えてきました

参考
stretchの入手について
一定時間でシェルコマンドを終了させるたった1つの方法

スポンサーリンク
この記事を書いた人

60爺

60路を越え、RaspberryPi と出会い、その関係でブログ開設(2017/2~)となりました。始めてみると、コツコツやるのが性に合ってしまい、漢字の記事から家の補修・将棋・windows10関係・別名・言い方などジャンルを拡大して今に至ってます。まだまだ、元気なので新たな話題を見つけて皆様に提供できればと思っています。「プロフィールはこちら

電光掲示板

Posted by 60爺