ラズパイ4のセットアップ
半導体不足のためほぼ手に入らない状態だったので
KSY でラズパイ4の教材セットのものを購入
すでにOSの書き込みはされているので
ディスプレイとキーボード、マウスなどを用意すれば
すぐに起動できる
今回は
bluetooth キーボードを使用したが
初期設定はマウスだけでもできる
パスワード入力などではキーボードが必要になる
今回は
Anker の bluetooth キーボードを使用したが
ペアリングや日本語入力で手間取った
ペアリングは
Fn + z キーの長押しで行い
日本語変換と英語の切り替えは
スペース + Control で行う
とりあえずインストールができたら端末を起動し
1 | sudo raspi-config |
を実行
Interfacing Options を Select
I2 SSH
をクリックし
はい
をクリック
これでSSHが有効になるので
ここから後は ubuntu から操作できる
なお
1 2 3 | Warning: Permanently added '192.168.1.48' (ECDSA) to the list of known hosts. Received disconnect from 192.168.1.48 port 22:2: Too many authentication failures packet_write_wait: Connection to 192.168.1.48 port 22: Broken pipe |
となったときには
1 | ssh -o IdentitiesOnly= yes pi@192.168.1.48 |
とすることで
接続できる
今回はUSBカメラを使用する
ロジクールLogicool C270n
次に公開鍵認証にするので
Ubuntu で ssh-keygenコマンドで作成
-t で暗号形式を rsa
-b で4096ビットに指定
なおデフォルトでは2048ビット
1 2 | cd . ssh ssh -keygen -t rsa -b 4096 |
で作成
1 | Enter file in which to save the key ( /home/snowpool/ . ssh /id_rsa ): |
となったらファイル名を入力
今回は raspi4
としておく
パスフレーズは省略するので
1 | Enter passphrase (empty for no passphrase): |
と
1 | Enter same passphrase again: |
は
Enter にすればパスフレーズなしとなる
次に公開鍵の登録
これは
ssh-copy-id コマンドを使う
なお接続するラズパイ4のIPは
Android ならFing で調べることが可能
1 | scp -o IdentitiesOnly= yes . ssh /raspi4 .pub pi@192.168.1.48: /home/pi/ |
で作成したファイルをコピー
次に
ラズパイにログイン
1 2 3 | cat raspi4.pub >> . ssh /authorized_keys chmod 700 . ssh / chmod 600 . ssh /authorized_keys |
1 | sudo apt install vim |
で
vim をインストール
1 | sudo vim /etc/ssh/sshd_config |
で設定ファイルを開き
パスワード認証を禁止
1 2 3 4 | PermitEmptyPasswords no PasswordAuthentication no AuthorizedKeyFile . ssh /authorized_keys |
を設定
1 | sudo /usr/sbin/sshd -t |
で設定の確認
1 | sudo /etc/init .d /ssh restart |
で
ssh の再起動
これで
1 | ssh pi@192.168.1.48 |
でログインが可能になる
次に opencv のインストール
1 2 3 | sudo apt update -y sudo apt upgrade -y sudo apt autoremove -y |
でリポジトリ更新とアップデート
そして不要なパッケージの削除
次に opencv に必要なライブラリをインストール
1 2 3 | sudo apt install -y libhdf5-103 sudo apt install -y libatlas-base-dev sudo apt install -y libjasper-dev |
しかし
1 | sudo apt install -y libqt4- test |
を実行したところ
1 | E: パッケージ libqt4- test が見つかりません |
となる
python : pip install OpenCVでRaspbianでこのエラーが発生するのはなぜですか?2021-12-27 06:48
によれば
Qt4はもうパッケージ化されていない
とのこと
このため
Linuxでdebパッケージをインストールする方法
を見ながら
1 2 | wget http: //ftp .de.debian.org /debian/pool/main/q/qt4-x11/libqt4-test_4 .8.7+dfsg-18+deb10u1_arm64.deb sudo dpkg -i libqt4-test_4.8.7+dfsg-18+deb10u1_arm64.deb |
としたが
パッケージアーキテクチャ (arm64) がシステム (armhf) と一致しません
処理中にエラーが発生しました:
となるため
1 2 | wget http: //ftp .us.debian.org /debian/pool/main/q/qt4-x11/libqt4-test_4 .8.7+dfsg-18+deb10u1_armhf.deb sudo dpkg -i libqt4-test_4.8.7+dfsg-18+deb10u1_armhf.deb |
としたが
1 2 3 4 5 6 7 8 9 | dpkg: 依存関係の問題により libqt4- test :armhf の設定ができません: libqt4- test :armhf は以下に依存 (depends) します: libqtcore4 (= 4:4.8.7+dfsg-18+deb10u1) ...しかし: パッケージ libqtcore4 はまだインストールされていません。 dpkg: パッケージ libqt4- test :armhf の処理中にエラーが発生しました (-- install ): 依存関係の問題 - 設定を見送ります libc-bin (2.31-13+rpt2+rpi1+deb11u2) のトリガを処理しています ... 処理中にエラーが発生しました: libqt4- test :armhf |
となってしまう
きにせずそのまま
1 | sudo pip install opencv-python |
としたら
インストールできた
1 | sudo python3 -m pip install pip --upgrade |
で
pip もアップデートしておく
次に仮想環境を構築するツール
virtualenv
と
virtualenvwrapper
をインストール
1 | sudo pip3 install virtualenv |
を実行すると
インストールは成功するが
1 | WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https: //pip .pypa.io /warnings/venv |
となる
意味は
警告:「root」ユーザーとしてpipを実行すると、権限が破損し、システムパッケージマネージャーとの動作が競合する可能性があります。代わりに仮想環境を使用することをお勧めします
とのこと
1 | pip install virtualenvwrapper |
でインストールすると
1 2 | WARNING: The script virtualenv-clone is installed in '/home/pi/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. |
とでてくる
これは
.bashrc へ設定追加が必要
virtualenvとvirtualenvwrapperを使う
を参考に
whichコマンドを使って、virtualenvwrapper.shの場所を探す
1 | which virtualenvwrapper.sh |
結果は
1 | /home/pi/ . local /bin/virtualenvwrapper .sh |
だったので
1 | vim .bashrc |
でファイルを開き
最終行に
1 2 3 4 | if [ -f /usr/local/bin/virtualenvwrapper .sh ]; then export WORKON_HOME=$HOME/.virtualenvs source /home/pi/ . local /bin/virtualenvwrapper .sh #ここはwhichコマンドの結果に変えてください。 fi |
を追記
1 | source .bashrc |
で有効化
しかし
mkvirtualenv コマンドが見つからないので
再度設定を変更
Raspberry Pi で virtualenv のインストール
を参考に
追記部分の
1 2 3 4 | if [ -f /usr/local/bin/virtualenvwrapper .sh ]; then export WORKON_HOME=$HOME/.virtualenvs source /home/pi/ . local /bin/virtualenvwrapper .sh #ここはwhichコマンドの結果に変えてください。 fi |
を削除し
代わりに
1 2 3 | export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON= /usr/bin/python3 source /home/pi/ . local /bin/virtualenvwrapper .sh |
を追記
source のパスは
1 | which virtualenvwrapper.sh |
のものを使用
これで
1 | source .bashrc |
を実行すると
mkvirtualenv コマンドが使えるようになる
このコマンドの詳細については
コマンドリファレンス
を参考に