ラズベリーパイの調理法

Raspberry Piニュース、および関連商品紹介

クリップで Pi をシャットダウン - ヘッドレッス Pi の安全なシャットダウン

20160111a_Pi_GPIO_Halt_02.jpg
20160111a_Pi_GPIO_Halt_01.jpg

Pi をヘッドレスで使用していて、電源を切りたいとき、SSH 環境であれば、安全にシャットダウンできますが、そうでない場合、シャットダウンしないで電源を切るのは、SDカードを破壊するなどの可能性が有り、悩ましいものです。

ペーパークリップ、ただし導電性のクリップの必要がありますが、これを利用して、Pi を安全にシャットダウンすることができます。

GPIO ピン状態をモニタリングし、状態が変わったら haltコマンドを発行、すなわち、GPIO のピン2本をクリップ(導電性のあるもの)で接触してイベントを起こす、という、Adafruit のアイデアを参考に、MICHAEL HORNE氏がインストラクションをまとめました。

インストール

(1) GIT インストール、および Adafruit のスクリプトのダウンロード

sudo apt-get install git
git clone https://github.com/adafruit/Adafruit-GPIO-Halt


(2) コンパイル、インストール

cd Adafruit-GPIO-Halt
make
sudo make install


スクリプトを /usr/local/bin/gpio-halt にインストールしますので、これをサービスとして実行するようにします。


Raspbian Jessie の場合

(1) ファイル gpio-halt.service の作成

sudo nano /lib/systemd/system/gpio-halt.service

ファイル内容
-------------------------------------------------------
[Unit]
Description=Short pins 21 and ground to shutdown the Pi
After=multi-user.target

[Service]
Type=idle
ExecStart=/usr/local/bin/gpio-halt 21 &

[Install]
WantedBy=multi-user.target

-------------------------------------------------------

上記ピン番号 "pins 21" は、GPIO 40(Pi A+/B+/2B)の場合です。
GPIO 26 の場合は、"pins 21" を "pins 7" とします。


(2) ファイルに実行権限を付加

sudo chmod 644 /lib/systemd/system/gpio-halt.service

(3) スクリプトのサービス実行を指示

sudo systemctl daemon-reload
sudo systemctl enable gpio-halt.service


(4) Pi のリブート、サービスの確認

sudo systemctl status gpio-halt.service


Raspbian Wheezy の場合は、下記のオリジナル「Shutdown your Raspberry Pi using a paper clip」を参照してください。


シャットダウン実行

GPIO の最後のピン、GPIO 40 の場合、"GPIO21" と "GND" をショート(クリップで接触)します。
GPIO 26 の場合は、"GPIO7" と "GND" です。

20160111a_Pi_GPIO_Halt_03.jpg


Shutdown your Raspberry Pi using a paper clip



スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://raspi10.blog.fc2.com/tb.php/613-57f41ffd
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad