目次

(c~2) インストール : systemd

for RPi-PWR2 univ

2019.12.10 Raspbian Jessie/Stretch/Buster対応
2024.01.23 Raspbian Bullseys/Bookworm動作確認


(*) はじめに

このページに記載されている情報は、RPi-PWR2 univのJessie, Stretch, Buster用の設定です。 Raspbian Wheezyを使用する場合は、( c-1) インストール : SysVinitを参照して下さい。

Raspbian Jessie, Stretch, Busterでは、新しいディストリビューションに搭載されている systemd を採用しています。
サービス起動/停止スクリプトの代りに、Unitという形式で管理されます。
RPi-PWR2用に、起動時に実行するサービス:rpi-shdn-sense.serviceと、シャットダウン時に実行されるサービス:rpi-poweroff.serviceを組込みます。


1. シャットダウン時のパワーオフ用設定

RPi OS(Jessie/Stretch/Buster)のシャットダウンシーケンスでRPi GPIO#4を操作するように設定します。
Jessie/Stretch/BusterではWheezyと異なり、systemdを用いたシステム管理を採用しています。

手順:
以下のリンクからシェルスクリプト:powerdown-gpio.pyをダウンロードします。
下記の例では、Raspberry Piでwgetを実行してファイルをダウンロードしています。
尚、シェルスクリプトのダウンロードにはパスワードが必要です(下記のwgetでは<PASSWD>)。
必要なアカウント(ユーザ名)およびパスワードは、(A)購入商品に同梱されている「はじめにお読み下さい」に印刷されているか、(B)製品購入者にメールで送られているので、それを使用します。

以下のリンクから圧縮ファイル:rpi-pwr2-univ-systemd.zipをダウンロードします。
下記の例では、Raspberry Piでwgetを実行してファイルをダウンロードしています。
ダウンロードした圧縮ファイルは、解凍パスワードが必要です(下記の例では7zで解凍し、パスワードは<PASSWD>)。
必要なアカウント(ユーザ名)およびパスワードは、(A)購入商品に同梱されている「はじめにお読み下さい」に印刷されているか、(B)製品購入者にメールで送られているので、それを使用します。

$ cd
$ mkdir rpi-pwr
$ cd rpi-pwr
$ pwd
/home/pi/rpi-pwr
$ wget https://www.ladybugsystems.com/supports/customer/rpi/rpi-pwr2-univ/rpi-pwr2-univ-systemd.zip --no-check-certificate
$ unzip -P <PASSWD> rpi-pwr2-univ-systemd.zip
$ mv rpi-pwr2-univ-systemd/* .
$ rm -r rpi-pwr2-univ-systemd
$ sudo chmod 755 powerdown-gpio.py
$ sudo chown root:root powerdown-gpio.py
$ sudo chmod 755 rpi-poweroff.service
$ sudo chown root:root rpi-poweroff.service

次にsystemdでサービスを組み込みます。

$ sudo mv rpi-poweroff.service /etc/systemd/system/rpi-poweroff.service
$
$ sudo systemctl enable /etc/systemd/system/rpi-poweroff.service 

2. シャットダウン時のオートパワーオフの確認

$ sudo shutdown -h now

正常にrpi-poweroff.serviceが組み込まれ、シャットダウンが行なわれれば、RPiのACT LED(SDカードアクセス)が点滅した後、RPiのPWR LEDが消灯します(電源供給も停止)。


3. ソフト電源オフ用設定

ソフト電源オフとは
RPi OSが稼働中にRPi-PWR2 univ上の電源SWを操作して、Raspberry Pi OSを正常にシャットダウンさせ、先に設定したシャットダウン時のパワーオフを実行します。

※ソフト電源オフ機能は、前述の「1. シャットダウン時のパワーオフ用設定」が正しく実施されている必要があります。

ソフト電源オフの仕組み
RPi-PWR2 univは通電中にボード上の電源SWを1-2sec程度、押下(スイッチオン)とすることで、ユーザのソフト電源オフ要求を受け付けます(JP1:拡張電源ボタンを取付けて、同様の動作が可能です)。
この後、RPi-PWR2 univはシャットダウン要求シーケンスとなり、GPIO#17(RPi-B+/RPi2 J8-11)をLow:0とします。
RPiはOSの起動時に開始してあるシャットダウン要求検出機能で、定期的にGPIO#17をモニタし、RPi-PWR2 univからのシャットダウン要求を検出します。
RPiはシャットダウン要求を確認すると、OSのシャットダウンを開始し、前述のシャットダウン時のパワーオフが実行されます。

Raspberry Piの設定
RPi OS(Jessie/Stretch/Buster)のシャットダウンシーケンスでRPi GPIO#4を操作するように設定します。
Jessie/Stretch/BusterではWheezyと異なり、systemdを用いたシステム管理を活用しています。

手順
先の手順の圧縮ファイルがダウンロードされ、解凍されている前提で手順を記します。

(※)この例では、必要なファイル:wait-for-shdn-req.py、rpi-shdn-sense.serviceは/home/pi/rpi-pwrに置く前提で記しています。もし異なる位置に置く場合は、下記のrpi-shdn-sense.serviceの記述を対応する位置に変更して下さい。

$ cd /home/pi/rpi-pwr
$ pwd
/home/pi/rpi-pwr
$ sudo chmod 755 wait-for-shdn-req.py
$ sudo chown root:root wait-for-shdn-req.py
$ sudo chmod 755 rpi-shdn-sense.service
$ sudo chown root:root rpi-shdn-sense.service

次にsystemdでサービスを組み込みます。

$ sudo mv rpi-shdn-sense.service /etc/systemd/system/rpi-shdn-sense.service
$
$ sudo systemctl enable /etc/systemd/system/rpi-shdn-sense.service 

設定を反映させるために、一度再起動します。

$ sudo shutdown -r now

4. ソフト電源オフのテスト

RPi-PWR2 univの電源SW(PUSH SW:S1)を約1-2秒押下し、スイッチを離します。 RPiのシャットダウンシーケンスが起動します。

※5秒以上、RPi-PWR2 univのS1を押下し続けると、強制電源オフとなるので注意する事。