LoginSignup
443
455

More than 1 year has passed since last update.

Jetson Nano関係のTIPSまとめ

Last updated at Posted at 2019-04-29

jetson_nano.jpg

Jetson Nanoの初期セットアップ方法・必要周辺機器など

 NVIDIAのシングルボードコンピュータJetson Nano買いました。購入方法や、セットアップ方法は、ブログに書いたので以下記事参照下さい。

Jetson Nanoをセットアップしてディープラーニングで画像認識試してみた

 Jetson Nanoの購入先はいろいろあるので、以下参照ください。

Jetson Nano購入先まとめ

 必要な周辺機器などは、以下の記事にまとめていますので参照下さい。

Amazonでまとめて買える!Jetson Nanoのおすすめ周辺機器

 本記事では、Jetson Nanoに関するちょっとしたTIPSや有益な情報などをまとめていきます。随時更新しています。

 追記:JetPack4.4/4.5に対応した記事を書きました
Jetson NanoにJetPack 4.4/4.5を入れてTensorFlow・物体検出・姿勢推定・ROS2(Realsense)動かしてみた

Jetson Nano TIPS

過去のSDイメージファイル・バージョン確認方法

 SDカードの過去のイメージファイルを使いたい場合は、以下記事参照下さい。

Jetson Nanoで使えるSDカードのイメージファイルまとめとイメージ書き込み方法

 SDカードのバージョンが分からなくなったときは、以下のコマンドで調べられます。

$ cat /etc/nv_tegra_release 

 1行目に表示されるのが、SDカードのバージョン情報です。例えば以下の場合は、 r32.1 となります。最後の日付が、作成された日になるので、どの程度古いイメージかが判断できます。

# R32 (release), REVISION: 1.0, GCID: 14531094, BOARD: t210ref, EABI: aarch64, DATE: Wed Mar 13 07:46:13 UTC 2019

 ただ、実は/etc/nv_tegra_releaseがないバージョンもあります(r32.2.1とか)。その場合は、以下コマンドで確認可能です。

$ dpkg-query --showformat='${Version}' --show nvidia-l4t-core

 以下のように表示されます。

322.1-20190812212815

ディープラーニング関係

 ディープラーニング関係のセットアップ方法や応用例は、以下記事にまとめました。

Jetson Nanoでディープラーニング

GPU負荷のモニタリング方法

tegrastatsを使う方法

 標準でセットアップされているtegrastatsを使うと、簡単にCPU、GPU負荷、メモリ使用量等をCUIで確認できます。以下コマンド実行するだけです。

$ tegrastats

gpuGraphを使う方法

 以下ソフトを使用します。
gpuGraph

 使用方法は以下です。

$ git clone https://github.com/JetsonHacksNano/gpuGraph
$ cd gpuGraph
$ python3 gpuGraph.py

 以下のようなモニターが表示され、GPU消費量を確認できます。
gpu_monitor.jpg

jetson_statsを使う方法

 調査中。良さそう。

rbonghi/jetson_stats(GitHub)

Swapファイルの設定

 installSwapfileというリポジトリのスクリプトファイルを使えば、以下2行実行するだけで6GのSwapファイルが生成されます。

$ git clone https://github.com/JetsonHacksNano/installSwapfile
$ cd installSwapfile
$ ./installSwapfile.sh

 Swapファイルのサイズを変更したい場合は、installSwapFile.shSWAPSIZE=6を好きな数字に変更しましょう(6Gか4Gが推奨とスクリプトファイルには書いてあります)。

 確認は、以下のようにfreeコマンドで行います。

$ free -h

 以下のようにSwsapのtotalサイズが6.0GになっていればOKです。

              total        used        free      shared  buff/cache   available
Mem:           3.9G        864M        2.6G         30M        448M        2.8G
Swap:          6.0G          0B        6.0G

カメラ使用

ラズパイカメラモジュールの動作確認

 Raspberry Pi CameraモジュールV2が使用できます(V1は使用不可のようなので注意して下さい)。

 特別なセットアップは不要です。以下のQiitaの記事が詳しく、私も参考にさせていただきました。

Jetson Nano 開発者キットで Raspberry Pi カメラを使う

 ただ、カメラ表示はGPUを結構消費するらしく、ディープラーニングで画像認識をリアルタイムに行うときは、カメラ表示サイズは小さくした方がよいです。大きくすると、固まってしまいます。具体的には、widthとheightを300以下程度にしておくのが良いです。

 どうも、ディープラーニング等の重い処理とカメラを同時に走らせると、フリーズしてしまうことがあるようです。私の環境では、ディープラーニングの画像認識のときに発生しました。

 事前にカメラをしばらく動作させた方が安定するようです。テストスクリプトを作成しました。以下2行でダウンロードして実行できますので、よろしければ試してみて下さい。。

$ wget https://raw.githubusercontent.com/karaage0703/jetson-nano-tools/master/scripts/raspi_cam_test.py
$ python3 raspi_cam_test.py

追記: JetPack V4.4では、解像度設定 3280 x 2464ではカメラが動かないようです。解像度を 1920 x 1080 に落とすことで解決しました。スクリプトも修正しました。

参考:カメラ画像をJetson nanoで表示させたい

動画の保存方法

 スクリプト作成しました。以下2行で動画を保存できます。実行した場所にoutput.aviという動画ファイルが生成されます。

$ wget https://raw.githubusercontent.com/karaage0703/jetson-nano-tools/master/scripts/raspi_cam_save_video.py
$ python3 raspi_cam_save_video.py

USBカメラの使用方法

 普通のUSBカメラも使えます。Python+Open CVの場合は、カメラを以下のように指定しましょう。0はラズパイカメラに割り当てられているので、1になるようです。

cam = cv2.VideoCapture(1)

FAN制御の方法

 前提として、FANは5Vのものを購入するように気をつけましょう。詳細は以下参照下さい。

Jetson Nanoのファン購入に気をつけろ!

また、ネジの取り付けに関しては以下の記事が詳しいので参考にしてみて下さい。
Jetson Nanoにファン追加

 FANを付けたら、以下コマンドで制御可能です。

FANをON(MAX速度)するときのコマンド:

$ sudo sh -c 'echo 255 > /sys/devices/pwm-fan/target_pwm'

FANをOFFするときのコマンド:

$ sudo sh -c 'echo 0 > /sys/devices/pwm-fan/target_pwm'

 echoの後の数字を変えると、FANの速度を制御できます。大きくするほど速くなり255がMaxです。

 その他、以下コマンドでJetson Nanoのクロック速度を最大化したときもFANは最大速度に自動的に設定されます。

$ sudo jetson_clocks

参考:Jetson Nano Fan

VS Codeエディタでファイル編集

 VS CodeエディタをJetson Nanoにインストールしたい場合は、以下コマンドで可能です。

$ cd && wget -O insider.deb https://update.code.visualstudio.com/latest/linux-deb-arm64/insider
$ sudo apt install ./insider.deb
$ sudo mv /usr/bin/code-insiders /usr/bin/code

vscode_jetson_nano.png

 その他、VS Codeエディタに関する情報は、以下のZennの本を参照ください。リモート開発の方法なども記載あります。

VS Codeエディタ入門(Zenn)

ホスト名をhostname.localでJetsonにアクセス

 IPアドレスでアクセスするのが面倒なので、Raspberry Piのように.localでアクセスできるようにします。 以下コマンドでavahi-daemonをインストールするだけです。

$ sudo apt-get install avahi-daemon

 これで、Jetson Nanoのホスト名がjetsonnanoだとすると、Macのターミナルから以下コマンドでsshでアクセスできます。

$ ssh karaage@jetsonnano.local

 Windowsでも同様と思いますが、古いWindowsでアクセスできない場合はiTunesをインストールすると解決するはずです。

パフォーマンスの最大化

 以下コマンドでパフォーマンスモードを変更できます。-mの後の数字が0のときが最大(Maxモード)で1が最小(5Wモード)です。

$ sudo nvpmodel -m 0

 現在のモードを知りたいときは、以下コマンドです。

$ sudo nvpmodel -q

 また、以下コマンドを実行すると、クロック周波数などのパフォーマンスを最大化できます。FANがついていれば、FANも最大速度で動作します。

$ sudo jetson_clocks

 現在の設定は以下コマンドで確認できます。

$ sudo jetson_clocks --show

 jetson_clocksの本体は /usr/bin/jetson_clocks なので、何をしているか知りたい場合は、直接ファイルの中身を確認しましょう($ less /usr/bin/jetson_clocksで確認できます)。

Jetson Nanoにリモートデスクトップ接続

 以下記事参照ください。

Jetson NanoでMacから手軽にリモート接続する方法

日本語入力

$ sudo apt install -y ibus-mozc
$ sudo apt install -y language-pack-ja
$ sudo update-locale LANG=ja_JP.UTF8

右上の漢字変換アイコンをクリックして「Text Entry Setting...」を開いて以下のように日本語(Mozc)を追加します。

Desktop-screenshot.png

これで漢字変換アイコンで日本語(Mozc)を選べば日本語が使えるようになります。

ウィンドウのスクリーンショットの取り方

 Jetson NanoというかUbuntuあるあるですが、Alt + PrintScreenでのスクショが効かないので、以下のコマンド実行した後、スクリーンショットをとりたいウィンドウをアクティブにするとスクリーン画面をキャプチャーできます。

$ gnome-screenshot --window --delay=5

bashrcの設定

 以下くらいを設定しておくと便利です。

便利なbashrc設定のメモ Ubuntu(Raspberry Pi/Jetson Nano)

Jetson NanoにROSをインストールする方法

 以下記事参照下さい。JetPack 4.5で確認しています。

Jetson NanoにROSをインストールする方法

Jetson NanoでIntel Realsense D435を使う方法

 以下記事参照下さい。JetPack 4.5で確認しています。

Jetson NanoでIntel Realsense D435を使う方法(ROS対応)

Jetson NanoでRealsenseのPythonラッパーPyRealsenseを使用する方法

Jetson Nanoにpygameをインストールする方法

 以下記事参照下さい。JetPack 4.5で確認しています。

Jetson Nanoにpygameをインストールする方法(Python2/Python3)

Jetson Nanoでカーネルビルドする方法(MIDIを使う方法)

 以下記事参照下さい。JetPack 4.5で確認しています。

Jetson NanoでMIDIを使うためにカーネルビルド

Jetson NanoからMIDIでポケット・ミクを制御

Jetson NanoのSDカードを丸ごとハードコピー(イメージ化)する方法

Jetson NanoのSDカードを丸ごとハードコピー(イメージ化)する方法

Jetson Nanoとラズパイを組み合わせて使う方法

ラズパイをJetson Nanoのサブボードとして使う方法(電源供給とシリアル通信)

myCobotをJetson Nanoで制御

 実質無料(6万円)の6軸ロボットアームmyCobotをJetson Nanoで使う方法です。以下のZennの書籍を参照ください。

myCobotのすべて

トラブルシューティング

PythonでimportしようとするとIllegal instruction (core dumped)が発生

既知の問題のようです。Workaroundとして、以下コマンド実行すると治ります。

$ export OPENBLAS_CORETYPE=ARMV8

参考:

lockファイル関係のエラー

 apt-getCould not get lock /var/lib/dpkg/lockというエラーがでるときの対応です。

 以下参照
Fix ‘E: Could not get lock /var/lib/dpkg/lock’ Error in Ubuntu [Quick Tip]

 ちなみに、私はlockファイルと間違えて/var/lib/dpkgを丸ごと削除してしまいましたが、以下で復旧できました。

How to recover deleted “dpkg” directory?

 lockファイルのエラーは、自動アップデートを停止すれば解消できるようです。自動アップデートを停止するスクリプトも自作のツール群のリポジトリjetson-nano-toolsに用意しました(このスクリプトはPull Requestいただきました)。

 以下で使用できます。

$ git clone https://github.com/karaage0703/jetson-nano-tools
$ ./jetson-nano-tools/disable-apt-autoupgrade.sh

ログが肥大化して残り容量が枯渇

 /var/log/syslogの容量が肥大化(数GB)して、残り容量が枯渇しました。

 nvargus-daemonError InvalidStateというエラーが書き込まれ続けているようです。ラズパイカメラをOpenCVで表示させたときに発生しています。

 原因と対策はまだ未実施です。

関連するGitHubリポジトリ

NVIDIA公式

jetracer
市販のラジコンを改造して、Jetson Nanoを載せてAI教育用の教材Jetracerとして仕立て上げるプロジェクト

Jetbot
JetbotというNvidia Nanoを使ったロボットのソフトと設計情報です。ロボットということで、カメラやモーターなどを動かすためのノウハウが詰め込まれており色々参考になります。

dusty-nv/jetson-inference
NVIDIAのエンジニアが作成した、ディープラーニング推論ソフト

非公式プロジェクト

karaage0703/jetson-nano-tools
私が作成した、Jetson Nanoを手軽にセットアップするためのスクリプト、便利に使うためのツール群です。

yqlbu/jetson-packages-family
Jetsonでよく使うパッケージをインストールするためのインストラクション集。

madelinegannon/jetson-nano-accessories
Jetson Nanoの色々なマウントやアダプターの3Dデータ(stlファイル)を公開しているGitHubのリポジトリ。データ自体も良さそうだけど、何よりREADMEが見やすくて良いです。かなりプリントしたくなります。

antmicro/jetson-nano-baseboard
Jetson Nanoのオープンソースなベースボードの設計情報。自分でベースボード設計するときに参考になりそうです。

jetsonhacks/installLXDE
Jetson NanoにLXDEデスクトップをセットアップするスクリプト

rt-net/jetson_nano_csi_cam_ros

atinfinity/jetson_ros_docker

raymondlo84/nvidia-jetson-ai-monitor

jetsonhacks/jetsonUtilities

参考になるリンク

GW中Jetsonのことばかり語るカレンダー
GW中にJetson Nanoの情報を提供し続ける狂気のカレンダーです(笑) ブログ記事とYouTube動画を毎日アップし続けていてもの凄いコンテンツ量です。必見です!

Jetson Nano を使ってみる!!
Jetson Nano上でDARKNET(YOLO)をインストールしてテストする方法

JetsonHacks
Jetsonに関する多くの情報があります(英語)。もちろんJetson Nano情報も多数です。YouTube動画もたくさんあります。

NVIDIA Tegra Linux Driver Package Development Guide
NVIDIAの開発者向けのガイドです(英語)。Jetson関係の詳細仕様が公開されています。重要な情報がさらりと書いてあったりしますので、開発者は必読です。

Jetson NanoでGPGPU (CUDA) プログラミング ~ライフゲームの開発~
CUDAプログラミングに関する記事。めちゃ有用な予感です。

Jetson NanoでGPUとOpenCVが有効なYoloをビルドするには
Jetson NanoはYoloで物体検出している人が多い印象なので試してみたいです。

Jetson NanoのSPIを有効にする
SPIを使うための設定です。Raspberry Pi MouseにJetson Nanoを載せたりと面白そうなことをしています。

「Jetson Nano」に5GHz WiFi USBアダプタ「GW-450D2」を繋いでみたよ!(検証用まな板のSTLデータ公開有り)
5GHzのWiFi USBアダプタのセットアップ方法と、簡単な台座(まな板)の3Dデータの情報があります。

「Jetson Nano DevKit」のオリジナルケースを作って壁に掛けてみたよ!(STLデータ公開有り)
壁掛けもできるJetson Nano用のケースの3Dデータです。3Dプリンタ持っている人はプリント必至です!

Jetson Nanoインストールメモ
私がやってないことなども書かれているので、このページで不足情報あればこちらも参照してみて下さい。

3DプリンタなしでオリジナルJetbotを作った記録
日本版のJetbotを作っている記事。オリジナルのJetbotの部品は日本では入手しづらいものもおおいので、こういう情報は本当に助かりますね。

OpenCVの画像処理をGPU(CUDA)で高速化する

Jetson NanoでTF-TRTを試す(Image Classification)

Jetson Zoo

【画像・音処理用】Jetson Nanoのセットアップ方法

Jetson‑IOがすごく良かった話とエラー対処方法
Jetson NanoのIO系はまだ全然触ってないのでメモ

【MediaPipe】Jetson Nanoで環境構築し、CPU/GPUで動かしてみた(v0.7.5)

reComputer J1020 (Jetson Nano)にCUDA対応のOpenCVを入れてみた

Jetson Nanoに関するスライド資料

Getting Started with Jetson Nano
NVIDIAさん公式の資料です。Jetson Nanoを知らない人が概要を理解するのにピッタリです。英語資料です。

Jetson Nano x TensorFlowで始めるモバイルAI画像認識
私が、GoogleでGoogle NVIDIAさんに挟まれてJetson NanoとTensorFlowに関して発表したときの資料です。

Jetson Nanoはじめました
Jetson NanoでROSを使う方法を中心に、色々なTIPSがちりばめられています

Jetson Nanoの初心者向けの本を書きました

 この記事を最後までみて下さった方に、書籍の紹介をさせてください。実は私、「Jetson Nano超入門」というJetson Nano初心者向けの本を書きました!

 最短でJetson Nanoをある程度使えるようになりたいという人には絶好の本です。よろしければ是非。詳しくは以下リンク等参照下さい。

共著で書いた本「Jetson Nano超入門」が12/21に発売されます

「Jetson Nano超入門」サポートページ

書籍の宣伝「からあげ先生のとにかく楽しいAI自作教室」

 AIの初心者向け本「からあげ先生のとにかく楽しいAI自作教室」を執筆しました。

 文系でAI素人の私の妻も、実践できて理解を深められるような、初学者向けの内容になっています。Jetson Nanoが主体ではないですが、Raspberry Piを用いたエッジコンピューティングに関しても、まるまる1章解説しています。以下に紹介記事を書いていますので、興味ある方は是非ごらんください。

AI初心者向けの独学本「からあげ先生のとにかく楽しいAI自作教室」を執筆しました

変更履歴

  • 2021/05/15 日本語入力とPythonのIllegal instruction (core dumped)エラーに関して追記
  • 2021/02/10 JetPack 4.5に関して追記
  • 2021/01/24 VS Codeエディタのインストールに関して追記
  • 2020/12/20 書籍に関して追記
  • 2020/07/15 微修正
443
455
9

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
443
455