ゼミでは、様々な形でラズパイを使用することがあるが、それぞれの設定がまちまちで引き継ぎなどに苦労している。そこで、統一したやり方で設定するために、標準の設定をメモとして残しておくことにした。
ゼミで使用しているラズパイはこれだけの種類がある。
3B、4B、ZW、AIY Voice Kit、AIY Vision Kit
AIYシリーズのOSはGoogleさんからDLしたものを使用するとして、ドノーマルなラズパイは基本的に同様の設定をすればSDを差し替えて使用できそうなので、後々の管理が楽になると思われる。もちろん、AIYシリーズもSDを作成した後の設定は同じように行うこととする。
また、設定に先立ち、USB電源、マウスやキーボード、HDMIディスプレイ、必要に応じてUSBやHDMIの変換コネクタは必要なので、書いていないからいらないというわけではない。
OSイメージ(SDカード)の作成
初期起動設定
- ロケール→Japanなど日本語に設定
- パスワード→(ゼミ共通設定に)
- Display、Wifiは適宜
- 初期アップデートは実行→かなり時間がかかる→リブート
以前はコマンドで初期アップデートをかけていたが、今は自動でやってくれるらしい
起動後の設定
- システム→ホスト名
(他のマシンと区別するために必要であとで必要になるので必ずメモる) - ディスプレイ→接続するディスプレイに合わせて設定
- インタフェース→SSHを有効に→以降はSSHを中心に操作
- 以前はオプション扱いだった「日本語化」と「mDNS」はすでに導入済み
SSHによるリモート操作
- コマンドプロンプトでpi@マシン名.localでSSH接続(Win10では.local不要かも)例:>ssh pi@karakuripi.local
ラズパイをシャットダウン後、電源を切ってよいかを簡単に確認する設定
ラズパイは、確実にシャットダウンして電源が切れる状態にしないと、むやみに電源を切ることはできない。ラズパイ上の緑色の ACT LEDは、デフォルトでは SDカードへのアクセス時に点滅するが、それをハートビート点滅に変更することで確認しやすくする。
下記の設定をする事で、緑色の ACT LEDの動作がハートビート動作になり 1秒程度の一定間隔で点滅動作をする。シャットダウンしてラズパイの CPUの動作が停止するとハートビート動作も停止するので緑色の ACT LEDは点灯したままとなる。これによって CPUの動作の停止を確認出来るのでコンセントからの給電をオフにできる
$ sudo nano /boot/config.txt
で /boot/config.txtに下記を追加して再起動
dtparam=act_led_trigger=heartbeat
ちなみにシャットダウンしたあとにGPIO3をGNDに接続すると起動する。
ミニHDMIモニターに対応(必要なら)
秋月で売っているHDMIモニター(↓こんなやつ)に対応させるためには、解像度を調整しないといけないので、以下の設定を必要に応じて実行する。
$ sudo nano /boot/config.txt
で /boot/config.txtに下記を編集して再起動
hdmi_group=2
#hdmi_mode=85 #1920x1080 for Full HD Monitor 通常はこれ
hdmi_mode=81 #1366x768 for Mini HDMI Monitor
シャットダウンボタンの設置
マウスやキーボードはおろか、画面も無いようなラズパイでシャットダウンのためだけにリモート接続してシャットダウンするのは非常に面倒である。そこで、シャットダウン用のスイッチをつけて長押しによるシャットダウンを実現させる。
さて、スイッチをつけるにしてもどこにつけるかが問題で、ネットで検索するといろんなGPIOにつけている例を見かけるのだが、ここではGPIO23につけることにする。
実は、このG23はAIYシリーズの2機種とも(↓)上についているボタンに接続されており、最初からスイッチが付いているので都合がよい。
ほかのHAT類をいくつか調べてみたが、結構このG23は空いていることが多かったので採用することにした。こことGNDの間にスイッチを接続するのだが、マザーボード用のコネクタの付いたスイッチ(↓)が便利で、写真のような2ピンなら下図のようにG23と左のGND、3ピンならG23と2つ右のGNDへ刺せば簡単に実現できる。

- ローカルにあるシャットダウンボタンスクリプトなど(下記)をラズパイにコピー
>scp .\shutdownbutton.py pi@karakuripi.local:~
>scp .\shutdownbutton.service pi@karakuripi.local:~
- ~/shutdownbutton.pyのスクリプトを755(実行権限付加)に
$chmod 755 ~/shutdownbutton.py - ~/shutdownbutton.serviceを/etc/systemd/system/へコピー
$sudo cp ~/shutdownbutton.service /etc/systemd/system/ - 設定ファイルをリロード
$sudo systemctl daemon-reload - サービスを起動時に有効化
$sudo systemctl enable shutdownbutton.service - サービスを開始
$sudo systemctl start shutdownbutton.service - 正しく動作しているか確認
$sudo systemctl status shutdownbutton.service
shutdownbutton.py
#!/usr/bin/python # coding:utf-8 # import time import RPi.GPIO as GPIO import os GPIO.setmode(GPIO.BCM) #GPIO23pinを入力モードとし、pull up設定とします GPIO.setup(23,GPIO.IN,pull_up_down=GPIO.PUD_UP) while True: GPIO.wait_for_edge(23, GPIO.FALLING) sw_counter = 0 while True: sw_status = GPIO.input(23) if sw_status == 0: sw_counter = sw_counter + 1 if sw_counter >= 100: os.system("sudo shutdown -h now") break else: break time.sleep(0.01)
shutdownbutton.service
[Unit] Description=Shutdown raspberry pi by GPIO button input Wants=network.target [Service] ExecStart=/home/pi/shutdownbutton.py Restart=on-failure RestartSec=10s [Install] WantedBy=multi-user.target
これでとりあえず最低限の設定はできたことにする。
次はLAMPにするための設定が待っている。つづく・・・
0 件のコメント:
コメントを投稿