山pの楽しいお勉強生活

勉強の成果を垂れ流していきます

自宅Raspberry Pi再構築メモ

自宅のRaspberry Piを再構築したのでメモです。既存のRaspberry Piスクリプト関連はGitHubにあったものの、環境関連の情報が何も残っていなかったので新規に記事に起こしています。(文章にした記憶はあるものの見つからず)

完全に自分用なので、本来ならば別の記事に分けたほうが良いものも多数あり、読みにくいと思いますがご了承ください。 また、そもそもGUIいらなかったのではないかとか、先にSSH設定して全部母艦からやればよかったのではないかとか、色々ありますがその辺りは次回構築時に改善していく予定、(いつ?)
GUIについては、以前CUIWifi設定に手こずったのが、一瞬でできたのでそれだけでも入っていてよかったと思う。)

※随時更新予定(最終更新 : 2020/06/16)

環境

$ 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

基本設定

起動まで

ユーザ関連

  • ユーザの整理
    • 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}

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

参考

ホスト名関連

  • 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

参考

ディスプレイ装着

手順

  • GPIOピンに差し込む
    • 一番目立つピンに多分そうだろうと思う感じで挿せば動いた
  • 以下の手順でドライバをインストール
    • sshで接続しているとインストール後にログアウトするので注意
git clone https://github.com/waveshare/LCD-show.git
cd LCD-show/
chmod +x LCD35-show
./LCD35-show

詳細

喋らせる

  • open-jtalkをインストール
sudo apt-get update
sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001

参考

ローカルのVSCodeRaspberry 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
  • カメラの接続確認
  • カメラで写真撮る
    • 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リモートシャッター用のライブラリをインストール
  • 現在のユーザをbluetoothグループに追加
    • デフォルトだとbluetoothグループに入ってないとbluetoothは使用できない用に設定されている
    • sudo usermod -a -G bluetooth ${username}
  • 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" &

参考