it技術:ラズベリーパイ
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
it技術:ラズベリーパイ [2021/07/04 18:16] – yajuadmin | it技術:ラズベリーパイ [2022/04/11 18:17] (現在) – [Pyinstaller] yajuadmin | ||
---|---|---|---|
行 23: | 行 23: | ||
* armhf … ARMv7 (32bit) までのプロセッサに対応 | * armhf … ARMv7 (32bit) までのプロセッサに対応 | ||
* arm64 … ARMv8 (64bit) からのプロセッサに対応 | * arm64 … ARMv8 (64bit) からのプロセッサに対応 | ||
- | ==== USBメモリ ==== | + | |
+ | 32-bit OS と 64-bit OSの両方あるが、今回の実機はARMv7 (32bit)を使用している。\\ | ||
+ | [[https:// | ||
+ | ==== USBメモリのアクセス | ||
ラズパイ上では自動で認識してマウントしてくれる。 | ラズパイ上では自動で認識してマウントしてくれる。 | ||
行 36: | 行 39: | ||
※FAT32だとラズパイ側で読めるが書き込みが出来なかった。 | ※FAT32だとラズパイ側で読めるが書き込みが出来なかった。 | ||
+ | ==== USBメモリ内のファイルを実行可能にする ==== | ||
+ | 実行時に「許可がありません」が表示される。\\ | ||
+ | USBメモリー上のファイルに「chmod +x 」としても実行可能パーミッションがつかないし、実行できない。 | ||
+ | |||
+ | === 原因 === | ||
+ | > | ||
+ | > | ||
+ | > | ||
+ | > | ||
+ | |||
+ | === 対応方法1 === | ||
+ | [[https:// | ||
+ | |||
+ | usbmountの設定を書き換えます。場所は/ | ||
+ | <code ini usbmount.conf> | ||
+ | MOUNTOPTIONS=" | ||
+ | FS_MOUNTOPTIONS=" | ||
+ | </ | ||
+ | |||
+ | === 対応方法2 === | ||
+ | USBメモリ内のファイルを実行可能にするには、一苦労する。\\ | ||
+ | [[https:// | ||
+ | |||
+ | === 対応方法3 === | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | <wrap em> | ||
+ | |||
+ | |||
+ | ==== 固定IP接続 ==== | ||
+ | ノートPCとラズパイは、LANケーブル(ストレートケーブルでよい)を直接つないでも繋がる。\\ | ||
+ | <wrap em> | ||
+ | |||
+ | 固定IPで192.168.0.101で接続する。変更後に「↑↓」マークをクリックすると数秒点滅後に点滅が止まり点灯した状態になる。\\ | ||
+ | [[https:// | ||
+ | |||
+ | ノートPC側は固定IPで192.168.0.100とする。ファイアーウォールは一時的に無効とするか、pingの応答を返すように設定する。\\ | ||
+ | [[https:// | ||
+ | |||
+ | < | ||
+ | pi@raspberrypi: | ||
+ | eth0: flags=4163< | ||
+ | inet 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.255 | ||
+ | inet6 fe80:: | ||
+ | ether dc: | ||
+ | RX packets 48 bytes 3904 (3.8 KiB) | ||
+ | RX errors 0 dropped 0 overruns 0 frame 0 | ||
+ | TX packets 32 bytes 3766 (3.6 KiB) | ||
+ | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | ||
+ | |||
+ | lo: flags=73< | ||
+ | inet 127.0.0.1 netmask 255.0.0.0 | ||
+ | inet6 ::1 prefixlen 128 scopeid 0x10< | ||
+ | loop txqueuelen 1000 (ローカルループバック) | ||
+ | RX packets 0 bytes 0 (0.0 B) | ||
+ | RX errors 0 dropped 0 overruns 0 frame 0 | ||
+ | TX packets 0 bytes 0 (0.0 B) | ||
+ | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | ||
+ | |||
+ | pi@raspberrypi: | ||
+ | PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data. | ||
+ | 64 bytes from 192.168.0.100: | ||
+ | 64 bytes from 192.168.0.100: | ||
+ | </ | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
===== ラズベリーパイ環境(仮想) ===== | ===== ラズベリーパイ環境(仮想) ===== | ||
Windows 10上でQEMUを使用することで、Raspberry Pi OSを動かすことが出来る。\\ | Windows 10上でQEMUを使用することで、Raspberry Pi OSを動かすことが出来る。\\ | ||
行 216: | 行 288: | ||
$ sudo raspi-config | $ sudo raspi-config | ||
</ | </ | ||
+ | |||
+ | ここで一旦、再起動します。 | ||
=== スワップ領域増加 === | === スワップ領域増加 === | ||
行 234: | 行 308: | ||
sudo dphys-swapfile swapon ; | sudo dphys-swapfile swapon ; | ||
</ | </ | ||
- | |||
- | ここで一旦、再起動します。 | ||
=== アップデート === | === アップデート === | ||
行 305: | 行 377: | ||
$ sudo raspi-config | $ sudo raspi-config | ||
</ | </ | ||
+ | |||
+ | ここで一旦、再起動します。 | ||
=== スワップ領域増加 === | === スワップ領域増加 === | ||
行 323: | 行 397: | ||
sudo dphys-swapfile swapon ; | sudo dphys-swapfile swapon ; | ||
</ | </ | ||
- | |||
- | ここで一旦、再起動します。 | ||
=== アップデート === | === アップデート === | ||
行 477: | 行 549: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ===== Python ===== | ||
+ | C# | ||
+ | |||
+ | ラズパイの実機は外部ネットワークに接続できないため、ラズパイ(raspi3)のエミュレーター環境で行う。 | ||
+ | |||
+ | ==== Python3に切り替え ==== | ||
+ | ラズパイのPythonのバージョンがデフォルトが2系になっているで、3系をデフォルトにする。 | ||
+ | <code bash> | ||
+ | cd /usr/bin | ||
+ | |||
+ | sudo unlink python | ||
+ | sudo ln -s python3 python | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ==== 仮想環境作成 ==== | ||
+ | Python3ならデフォルトで仮想環境作成の「venv」が備わっている。 | ||
+ | |||
+ | <code bash> | ||
+ | pyhton -m venv {環境名} | ||
+ | # 例 | ||
+ | pyhton -m venv cnvnet | ||
+ | </ | ||
+ | |||
+ | === 仮想環境の有効化 === | ||
+ | |||
+ | <code bash> | ||
+ | source {環境名}/ | ||
+ | # 例 | ||
+ | source cnvnet/ | ||
+ | </ | ||
+ | |||
+ | コマンドラインの先頭に(環境名)が追加された状態になります。 | ||
+ | |||
+ | <code bash> | ||
+ | ({環境名}) pi@raspberrypi: | ||
+ | # 例 | ||
+ | (cnvnet) pi@raspberrypi: | ||
+ | </ | ||
+ | |||
+ | ==== Pyinstaller ==== | ||
+ | === Pyinstallerのインストール === | ||
+ | 仮想環境にPyinstallerをインストールする | ||
+ | |||
+ | <code bash> | ||
+ | (cnvnet) pi@raspberrypi: | ||
+ | |||
+ | (cnvnet) pi@raspberrypi: | ||
+ | 4.10 | ||
+ | </ | ||
+ | |||
+ | === テスト === | ||
+ | <code bash> | ||
+ | (cnvnet) pi@raspberrypi: | ||
+ | (cnvnet) pi@raspberrypi: | ||
+ | </ | ||
+ | |||
+ | <code python test.py> | ||
+ | (cnvnet) pi@raspberrypi: | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | (cnvnet) pi@raspberrypi: | ||
+ | </ | ||
+ | [[https:// | ||
+ | |||
+ | テストフォルダ配下にdistフォルダが作成され実行ファイルの「test」ファイルができる。\\ | ||
+ | 実行すると" | ||
+ | <code bash> | ||
+ | (cnvnet) pi@raspberrypi: | ||
+ | Hello cnvnet | ||
+ | </ | ||
+ | |||
+ | ==== Windows側にファイル転送 ==== | ||
+ | Windows側に「WinSCP」をインストールして、「WinSCP」を使用すればGUI上でファイル転送ができる。\\ | ||
+ | https:// | ||
+ | |||
+ | ==== 速度検証 ==== | ||
+ | dotNET版の半分程度の速度改善が見られた。 | ||
+ | |||
+ | ^種類^1回目^2回目^3回目^4回目^5回目^ | ||
+ | ^dotNET版|4440ms|3130ms|3120ms|3110ms|3130ms| | ||
+ | ^Python版|3690ms|1670ms|1630ms|1620ms|1620ms| |
it技術/ラズベリーパイ.1625390179.txt.gz · 最終更新: 2021/07/04 18:16 by yajuadmin