自宅Raspberry Pi再構築メモ
自宅のRaspberry Piを再構築したのでメモです。既存のRaspberry Piのスクリプト関連はGitHubにあったものの、環境関連の情報が何も残っていなかったので新規に記事に起こしています。(文章にした記憶はあるものの見つからず)
完全に自分用なので、本来ならば別の記事に分けたほうが良いものも多数あり、読みにくいと思いますがご了承ください。
また、そもそもGUIいらなかったのではないかとか、先にSSH設定して全部母艦からやればよかったのではないかとか、色々ありますがその辺りは次回構築時に改善していく予定、(いつ?)
(GUIについては、以前CUIでWifi設定に手こずったのが、一瞬でできたのでそれだけでも入っていてよかったと思う。)
※随時更新予定(最終更新 : 2020/06/16)
環境
- Raspberry Pi 3 Model B
- Raspberry Pi Imager v1.2
$ cat /etc/debian_version 10.4 $ cat /etc/issue Raspbian GNU/Linux 10 \n \l $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 10 (buster) Release: 10 Codename: buster $ uname -a Linux raspberrypi 4.19.97-v7+ #1294 SMP Thu Jan 30 13:15:58 GMT 2020 armv7l GNU/Linux
基本設定
起動まで
- Raspberry Pi Imagerインストール
- https://www.raspberrypi.org/downloads/
- 今は自分でSDカードをフォーマット、書き込む必要ないらしい。
- Raspbian FullをSDカードに書き込み
- Raspbian(other) -> Raspbian Full
- 通常版との差は調べてないが、あまり深くいじるつもりもないのでFULLを選択
- 参考 : https://www.souichi.club/raspberrypi/raspberry-pi-imager/
- Macがスリープになってしまうと止まるのでスリープにならないようにして放置
- Raspberry Pi本体にSDカードにカード設定
- GUIが立ち上がり、設定を聞いてくるので設定
- 一応参考 : https://qiita.com/katsusuke/items/4f3c7fca08801debaf53
Set Up Screen
までは同じで、その後Wifi設定聞いてきたので設定して、そのままUpdate Softwareを実行。- 結構な時間かかる
- 再起動
ユーザ関連
- ユーザの整理
- rootのパスワード変更
sudo passwd root
- mainで操作するユーザ追加
sudo adduser ${username}
- 追加したユーザにpiユーザと同じグループを紐付ける
groups pi
- 出力 :
pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio
- 出力 :
sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio ${username}
- rootのパスワード変更
SSH関連
- 別のマシンからSSH接続
- 左上のアイコン → 設定 → Raspberry Pi の設定 → インターフェイス
- SSHを有効
- ついでにカメラも有効
- 再起動
ifconfig
でIPを確認- 別のマシンから
ssh ${username}@192.168.xxx.xxx
で接続
- SSHの鍵認証設定
- 鍵作成(母艦)
ssh-keygen -t rsa
- scpでRaspberry Piに公開鍵を送る
scp ~/.ssh/raspberry_rsa.pub ${username}@192.168.xxx.xxx:~
- 公開鍵を設定(Raspberry Pi)
mkdir ~/.ssh
chmod 700 ~/.ssh
cat ~/raspberry_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
rm ./raspberry_rsa.pub
- 鍵作成(母艦)
- SSHのセキュリティとか(Raspberry Pi)
- 設定ファイル開く
sudo vi /etc/ssh/sshd_config
- ポート番号変更
Port 60522
- 鍵認証の有効化
PubkeyAuthentication yes
- パスワード認証無効化
PasswordAuthentication no
- 鍵認証が正しく設定されているか確認してからの方が良い
- rootログインの禁止も各種サイトには書かれていたが、今のバージョンではデフォルト無効になっている?
- 不安だったので
PermitRootLogin yes
としてrootでログインできてしまうことを確認した上で、下の設定を追加 PermitRootLogin no
- 不安だったので
- sshデーモンを再起動
sudo /etc/init.d/ssh restart
- 空パスワードを無効
PermitEmptyPasswords no
- 設定ファイル開く
- 公開鍵でアクセス(母艦)
- 試行
ssh -i ~/.ssh/raspberry_rsa -p 60522 ${username}@192.168.xxx.xxx
- configに設定追加
vi ~/.ssh/config
- 内容は下記参照
- 試行2
ssh raspi
- 試行
- SSHの設定確認(母艦)
- パスワードで接続できないことを確認
ssh -p 60522 ${username}@192.168.xxx.xxx
- パスワードで接続できないことを確認
Host raspi HostName 192.168.xxx.xxx User ${username} Port 60522 IdentityFile ~/.ssh/raspberry_rsa
参考
- Raspberry Pi Imager Downloads
- Raspberry Pi ImagerでOS(Raspbian)インストール
- ラズパイでやらなければいけない4つのセキュリティ対策!
- SSHサーバの設定(ポート番号変更、rootのログイン禁止、パスワード認証禁止)
- ラズパイにSSH接続(鍵認証)
ホスト名関連
- defaultは
raspberrypi
なのでわかりやすく変更しておく - 設定変更
sudo vi /etc/hostname
sudo vi /etc/hosts
- 再起動
sudo reboot
- 確認
hostname
- SSHの設定もIPだと変更される可能性があるのでホスト名でアクセスできるように変更しておく
- 試行
ssh -i ~/.ssh/raspberry_rsa -p 60522 ${username}@${hostname}.local
- configに設定追加
vi ~/.ssh/config
- 内容は下記参照
- 試行
Host raspi HostName ${hostname} User ${username} Port 60522 IdentityFile ~/.ssh/raspberry_rsa
参考
ディスプレイ装着
- 2年以上前(2018/01/29)に購入したものの放置してたディスプレイを接続する
- Kuman Raspberry Pi 3 2用ディスプレイ タッチパネル 3.5インチ 320*480 SPI インターフェース Raspberry Pi Model B B+ A+ A SC06
- https://www.amazon.co.jp/gp/product/B01FU5P2HA/
手順
- GPIOピンに差し込む
- 一番目立つピンに多分そうだろうと思う感じで挿せば動いた
- 以下の手順でドライバをインストール
- sshで接続しているとインストール後にログアウトするので注意
git clone https://github.com/waveshare/LCD-show.git cd LCD-show/ chmod +x LCD35-show ./LCD35-show
詳細
- DVD?CD?が付いていたが無視(そもそもドライブがない)
- 中身はドライバらしい
- Amazonのレビューを見るとこの商品はパチもんだが、Waveshareのドライバを使えば動くという情報を得る
- 他でも詳細情報を得る
- Waveshareのドライバインストール手順通りに実行
喋らせる
- open-jtalkをインストール
sudo apt-get update sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
- 声を変更していたので
mei_normal.htsvoice
を取得してくる- 全然記憶にないが、昔はどこかにセットがあった??
- 正しいルートはMMDAgentの中にあるVoiceを使用する
- Raspberry Piからだとうまく取得できなかったので別の手段を取る
- GitHubでファイル名検索をしてファイルを持ってくる
filename:mei_normal.htsvoice
- 実際に喋らせる部分は既存スクリプトをそのまま使用
参考
ローカルのVSCodeでRaspberry Piの上コードを編集する
拡張機能インストール
接続
- 左にあるアイコンが並んでいる部分から
PCに<>
となってるアイコンクリック- リモートエクスプローラ
- SSH Targets -> raspi を選択
- しばらくしたら別WindowでVSCodeが起動する
- TerminalタブでRaspberry Piに接続されているか確認
- 左にあるアイコンが並んでいる部分の一番上エクスプローラクリック
- OPEN FOLDER から指定のフォルダを開く
参考
USBカメラで写真を撮る
- apt-get update
sudo apt-get update
- 静止画取得用モジュールインストール
sudo apt-get install v4l-utils fswebcam
- カメラの接続確認
lsusb
- Webカメラが接続されていることを確認
- カメラで写真撮る
fswebcam -r 640x480 ../raspberrypi-home/hoge2.jpg
-r
で解像度
Python3 環境
- Python3 のバージョン確認
python3 --version
- Python 3.7.3
- 仮想環境作成
python3 -m venv .venv
- pipのバージョンアップ
pip install --upgrade pip
- 必要ライブラリインストール
pip install -r requirements.txt
Vimの設定
- デフォルトのVimは使いにくいので変更
- 確認
dpkg -l | grep vi
- アンインストール
sudo apt-get --purge remove vim-common vim-tiny
- Vimインストール
sudo apt-get install vim
- Gitのエディタを変更
git config --global core.editor 'vim -c "set fenc=utf-8"'
- システム?のデフォルト?のエディタを変更
sudo update-alternatives --config editor
参考
BluetoothリモートシャッターとRaspberry Piのカメラを連携
- bluetooth用のライブラリインストール
sudo apt-get install bluetooth pi-bluetooth
- Bluetoothリモートシャッター用のライブラリをインストール
sudo gem install bluebutton
- https://github.com/kinnalru/bluebutton
- ※↑見たらそんなに難しくないようなのでPythonで再実装してみたい
- 現在のユーザをbluetoothグループに追加
- bluetoothctlでBluetoothリモートシャッターの認識とペアリング
- 対話式なので注意
$ bluetoothctl Agent registered [bluetooth]# power on Changing power on succeeded [bluetooth]# scan on Discovery started [NEW] Device XX:XX:XX:XX:XX:XX AB Shutter3 [bluetooth]# pair XX:XX:XX:XX:XX:XX [AB Shutter3 ]# trust XX:XX:XX:XX:XX:XX [CHG] Device XX:XX:XX:XX:XX:XX Trusted: yes
- 設定ファイル作成
vi ./bluebutton.conf
keyup=echo UP keydown=echo DOWN longup=echo LONG UP longdown=echo LONG DOWN
- 試行
sudo bluebutton -d="AB Shutter3" -c "/home/yamap55/raspberrypi-home/bluebutton.conf"
- リモートシャッターのボタン押してメッセージが表示されればOK
- 接続が切れていたからか、反応するまで少し時間がかかることがあったので注意
- 処理を修正
keyup=/home/yamap55/raspberrypi-home/script/takePhoto.sh >> /home/yamap55/raspberrypi-home/logs/takePhoto.log 2>&1
- デーモン起動
sudo bluebutton -d="AB Shutter3" -c "/home/yamap55/raspberrypi-home/bluebutton.conf" &
- OS起動時に常駐するように設定
vi /etc/rc.local
exit 0
の前辺りに追加sudo bluebutton -d="AB Shutter3" -c "/home/yamap55/raspberrypi-home/bluebutton.conf" &
参考
- ラズパイ3 + リモートシャッター(Remote Shutter Control)
- Sony MESH Hubでミクさんにおかえりを言ってもらった
- Linux のコマンドラインで Bluetooth 接続
- bluetoothctlのコマンド一覧が助かった