ラズパイ4のセットアップ
半導体不足のためほぼ手に入らない状態だったので
KSY でラズパイ4の教材セットのものを購入
すでにOSの書き込みはされているので
ディスプレイとキーボード、マウスなどを用意すれば
すぐに起動できる
今回は
bluetooth キーボードを使用したが
初期設定はマウスだけでもできる
パスワード入力などではキーボードが必要になる
今回は
Anker の bluetooth キーボードを使用したが
ペアリングや日本語入力で手間取った
ペアリングは
Fn + z キーの長押しで行い
日本語変換と英語の切り替えは
スペース + Control で行う
とりあえずインストールができたら端末を起動し
sudo raspi-config
を実行
Interfacing Options を Select
I2 SSH
をクリックし
はい
をクリック
これでSSHが有効になるので
ここから後は ubuntu から操作できる
なお
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
となったときには
ssh -o IdentitiesOnly=yes pi@192.168.1.48
とすることで
接続できる
今回はUSBカメラを使用する
ロジクールLogicool C270n
次に公開鍵認証にするので
Ubuntu で ssh-keygenコマンドで作成
-t で暗号形式を rsa
-b で4096ビットに指定
なおデフォルトでは2048ビット
cd .ssh
ssh-keygen -t rsa -b 4096
で作成
Enter file in which to save the key (/home/snowpool/.ssh/id_rsa):
となったらファイル名を入力
今回は raspi4
としておく
パスフレーズは省略するので
Enter passphrase (empty for no passphrase):
と
Enter same passphrase again:
は
Enter にすればパスフレーズなしとなる
次に公開鍵の登録
これは
ssh-copy-id コマンドを使う
なお接続するラズパイ4のIPは
Android ならFing で調べることが可能
scp -o IdentitiesOnly=yes .ssh/raspi4.pub pi@192.168.1.48:/home/pi/
で作成したファイルをコピー
次に
ラズパイにログイン
cat raspi4.pub >> .ssh/authorized_keys
chmod 700 .ssh/
chmod 600 .ssh/authorized_keys
sudo apt install vim
で
vim をインストール
sudo vim /etc/ssh/sshd_config
で設定ファイルを開き
パスワード認証を禁止
PermitEmptyPasswords no
PasswordAuthentication no
AuthorizedKeyFile .ssh/authorized_keys
を設定
sudo /usr/sbin/sshd -t
で設定の確認
sudo /etc/init.d/ssh restart
で
ssh の再起動
これで
ssh pi@192.168.1.48
でログインが可能になる
次に opencv のインストール
sudo apt update -y
sudo apt upgrade -y
sudo apt autoremove -y
でリポジトリ更新とアップデート
そして不要なパッケージの削除
次に opencv に必要なライブラリをインストール
sudo apt install -y libhdf5-103
sudo apt install -y libatlas-base-dev
sudo apt install -y libjasper-dev
しかし
sudo apt install -y libqt4-test
を実行したところ
E: パッケージ libqt4-test が見つかりません
となる
python : pip install OpenCVでRaspbianでこのエラーが発生するのはなぜですか?2021-12-27 06:48
によれば
Qt4はもうパッケージ化されていない
とのこと
このため
Linuxでdebパッケージをインストールする方法
を見ながら
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) と一致しません
処理中にエラーが発生しました:
となるため
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
としたが
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
となってしまう
きにせずそのまま
sudo pip install opencv-python
としたら
インストールできた
sudo python3 -m pip install pip --upgrade
で
pip もアップデートしておく
次に仮想環境を構築するツール
virtualenv
と
virtualenvwrapper
をインストール
sudo pip3 install virtualenv
を実行すると
インストールは成功するが
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を実行すると、権限が破損し、システムパッケージマネージャーとの動作が競合する可能性があります。代わりに仮想環境を使用することをお勧めします
とのこと
pip install virtualenvwrapper
でインストールすると
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の場所を探す
which virtualenvwrapper.sh
結果は
/home/pi/.local/bin/virtualenvwrapper.sh
だったので
vim .bashrc
でファイルを開き
最終行に
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=$HOME/.virtualenvs
source /home/pi/.local/bin/virtualenvwrapper.sh #ここはwhichコマンドの結果に変えてください。
fi
を追記
source .bashrc
で有効化
しかし
mkvirtualenv コマンドが見つからないので
再度設定を変更
Raspberry Pi で virtualenv のインストール
を参考に
追記部分の
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=$HOME/.virtualenvs
source /home/pi/.local/bin/virtualenvwrapper.sh #ここはwhichコマンドの結果に変えてください。
fi
を削除し
代わりに
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /home/pi/.local/bin/virtualenvwrapper.sh
を追記
source のパスは
which virtualenvwrapper.sh
のものを使用
これで
source .bashrc
を実行すると
mkvirtualenv コマンドが使えるようになる
このコマンドの詳細については
コマンドリファレンス
を参考に