ユーザ用ツール

サイト用ツール


it技術:ラズベリーパイ

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
it技術:ラズベリーパイ [2022/03/03 09:22] – [USBメモリ内のファイルを実行可能にする] yajuadminit技術:ラズベリーパイ [2022/04/11 18:17] (現在) – [Pyinstaller] yajuadmin
行 23: 行 23:
   * armhf … ARMv7 (32bit) までのプロセッサに対応   * armhf … ARMv7 (32bit) までのプロセッサに対応
   * arm64 … ARMv8 (64bit) からのプロセッサに対応   * arm64 … ARMv8 (64bit) からのプロセッサに対応
 +
 +32-bit OS と 64-bit OSの両方あるが、今回の実機はARMv7 (32bit)を使用している。\\
 +[[https://coconala.com/blogs/1638666/131490|Raspberry Pi 32-bit OS と 64-bit OS の違いは?]]
 ==== USBメモリのアクセス ==== ==== USBメモリのアクセス ====
 ラズパイ上では自動で認識してマウントしてくれる。 ラズパイ上では自動で認識してマウントしてくれる。
行 38: 行 41:
 ==== USBメモリ内のファイルを実行可能にする ==== ==== USBメモリ内のファイルを実行可能にする ====
 実行時に「許可がありません」が表示される。\\ 実行時に「許可がありません」が表示される。\\
-USBメモリー上のファイルに実行可能パーミッションがつかない。 chmod +x てもつかない。実行できない。+USBメモリー上のファイルに「chmod +x 」としても実行可能パーミッションがつかないし実行できない。
  
 === 原因 === === 原因 ===
行 46: 行 49:
 >https://forums.raspberrypi.com/viewtopic.php?t=99124 >https://forums.raspberrypi.com/viewtopic.php?t=99124
  
-=== 対応方法1 ===+=== 対応方法1 === 
 +[[https://shimada-k.hateblo.jp/entry/20110623/1308816263|debianでUSBメモリを実行権付きでマウントするメモ]] 
 + 
 +usbmountの設定を書き換えます。場所は/etc/usbmount/usbmount.confです。 
 +<code ini usbmount.conf> 
 +MOUNTOPTIONS="sync,nodev,noatime,nodiratime" ←noexecを削除 
 +FS_MOUNTOPTIONS="-fstype=ntfs,uid=pi,gid=pi" ←「""」内を追加 
 +</code> 
 + 
 +=== 対応方法2 ===
 USBメモリ内のファイルを実行可能にするには、一苦労する。\\ USBメモリ内のファイルを実行可能にするには、一苦労する。\\
 [[https://qiita.com/h_nari/items/dc3f89c8c210d1081dc1|Raspberry PiでUSBメモリ内のファイルを実行可能にする方法]] [[https://qiita.com/h_nari/items/dc3f89c8c210d1081dc1|Raspberry PiでUSBメモリ内のファイルを実行可能にする方法]]
  
-=== 対応方法2 ===+=== 対応方法=== 
 +  * [[https://sekisuiseien.com/computer/11054/|【Linux】UbuntuでNTFS形式のファイルで所有者や権限が変更する方法]] 
 +  * [[http://denshihakoma.blogspot.com/2013/08/ubuntuntfsusb.html|ubuntu上でntfsフォーマットUSBメモリ上のファイルに実行権限を付加する方法]]
   * [[https://askubuntu.com/questions/11840/how-do-i-use-chmod-on-an-ntfs-or-fat32-partition|How do I use 'chmod' on an NTFS (or FAT32) partition?]]   * [[https://askubuntu.com/questions/11840/how-do-i-use-chmod-on-an-ntfs-or-fat32-partition|How do I use 'chmod' on an NTFS (or FAT32) partition?]]
-  * [[https://sekisuiseien.com/computer/11054/|【Linux】UbuntuでNTFS形式のファイルで所有者や権限が変更する方法]] 
  
-NTFSパーティションが外部USBドライブにある場合、たとえば、パーティションが接続時にオンザでマウントされることを意味する場合、次方法を使用して、実行権限を持utevマウントntfsパーティションを作成できます。\\+<wrap em>※該当USBメモリ上フぜんぶに実行権限くようになる</wrap>
  
-ターミナルウィンドウを開き、次の手順を実行します。 
-<code> 
-$ sudo nano /etc/udev/rules.d/90-usb-disks.rules 
-</code> 
- 
-次に、この行を空白/新しいファイルに貼り付けます(そうでない場合は、nanoを終了してコマンドを再発行しますが、ファイル名は91 -...のように大きな数字で開始します)。 
- 
-<code> 
-ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs-3g" 
-</code> 
-次に、保存して閉じます。ドライブのプラグを抜き、ターミナルで行います。 
- 
-<code> 
-$ sudo service udev restart 
-</code> 
-次に、ドライブを接続し直します。 
  
 ==== 固定IP接続 ==== ==== 固定IP接続 ====
行 552: 行 549:
 } }
 </code> </code>
 +
 +===== Python =====
 +C#版のインターフェイスではメモリ2GByteのラズパイでは5秒かかるなど動作が遅いこともあり、Pythonで作成しPyInstallerで実行ファイルを作成する方法を試す。
 +
 +ラズパイの実機は外部ネットワークに接続できないため、ラズパイ(raspi3)のエミュレーター環境で行う。
 +
 +==== Python3に切り替え ====
 +ラズパイのPythonのバージョンがデフォルトが2系になっているで、3系をデフォルトにする。
 +<code bash>
 +cd /usr/bin
 +
 +sudo unlink python
 +sudo ln -s python3 python
 +</code>
 +
 +[[https://python-academia.com/raspberry-pi-python-version/|ラズパイ(Raspberry Pi)のpythonバージョン確認、python3への変更方法。]]
 +
 +==== 仮想環境作成 ====
 +Python3ならデフォルトで仮想環境作成の「venv」が備わっている。
 +
 +<code bash>
 +pyhton -m venv {環境名}
 +# 例
 +pyhton -m venv cnvnet
 +</code>
 +
 +=== 仮想環境の有効化 ===
 +
 +<code bash>
 +source {環境名}/bin/activate
 +# 例
 +source cnvnet/bin/activate
 +</code>
 +
 +コマンドラインの先頭に(環境名)が追加された状態になります。
 +
 +<code bash>
 +({環境名}) pi@raspberrypi:~/ $
 +# 例
 +(cnvnet) pi@raspberrypi:~/ $
 +</code>
 +
 +==== Pyinstaller ====
 +=== Pyinstallerのインストール ===
 +仮想環境にPyinstallerをインストールする
 +
 +<code bash>
 +(cnvnet) pi@raspberrypi:~/ $ pip install pyinstaller
 +
 +(cnvnet) pi@raspberrypi:~/ $ pyinstaller -v
 +4.10
 +</code>
 +
 +=== テスト ===
 +<code bash>
 +(cnvnet) pi@raspberrypi:~/ $ mkdir test
 +(cnvnet) pi@raspberrypi:~/ $ cd test
 +</code>
 +
 +<code python test.py>
 +(cnvnet) pi@raspberrypi:~test/ $ nano test.py
 +print("Hello cnvnet")
 +</code>
 +
 +<code bash>
 +(cnvnet) pi@raspberrypi:~test/ $ pyinstaller test.py
 +</code>
 +[[https://ideal-user-interface.hatenablog.com/entry/20110304/1299232964|Pythonスクリプトを実行形式のファイルにまとめる(2)]]
 +
 +テストフォルダ配下にdistフォルダが作成され実行ファイルの「test」ファイルができる。\\
 +実行すると"Hello cnvnet"が表示される。
 +<code bash>
 +(cnvnet) pi@raspberrypi:~/ $ ./dist/test/test
 +Hello cnvnet
 +</code>
 +
 +==== Windows側にファイル転送 ====
 +Windows側に「WinSCP」をインストールして、「WinSCP」を使用すればGUI上でファイル転送ができる。\\
 +https://forest.watch.impress.co.jp/library/software/winscp/
 +
 +==== 速度検証 ====
 +dotNET版の半分程度の速度改善が見られた。
 +
 +^種類^1回目^2回目^3回目^4回目^5回目^
 +^dotNET版|4440ms|3130ms|3120ms|3110ms|3130ms|
 +^Python版|3690ms|1670ms|1630ms|1620ms|1620ms|
it技術/ラズベリーパイ.1646266960.txt.gz · 最終更新: 2022/03/03 09:22 by yajuadmin