Jetson Nanoの初期セットアップ方法・必要周辺機器など
NVIDIAのシングルボードコンピュータ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
ディープラーニング関係
ディープラーニング関係のセットアップ方法や応用例は、以下記事にまとめました。
GPU負荷のモニタリング方法
tegrastatsを使う方法
標準でセットアップされているtegrastatsを使うと、簡単にCPU、GPU負荷、メモリ使用量等をCUIで確認できます。以下コマンド実行するだけです。
$ tegrastats
gpuGraphを使う方法
以下ソフトを使用します。
gpuGraph
使用方法は以下です。
$ git clone https://github.com/JetsonHacksNano/gpuGraph
$ cd gpuGraph
$ python3 gpuGraph.py
以下のようなモニターが表示され、GPU消費量を確認できます。
jetson_statsを使う方法
調査中。良さそう。
Swapファイルの設定
installSwapfileというリポジトリのスクリプトファイルを使えば、以下2行実行するだけで6GのSwapファイルが生成されます。
$ git clone https://github.com/JetsonHacksNano/installSwapfile
$ cd installSwapfile
$ ./installSwapfile.sh
Swapファイルのサイズを変更したい場合は、installSwapFile.sh
のSWAPSIZE=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 に落とすことで解決しました。スクリプトも修正しました。
動画の保存方法
スクリプト作成しました。以下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にファン追加
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
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
その他、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)を追加します。
これで漢字変換アイコンで日本語(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で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のSDカードを丸ごとハードコピー(イメージ化)する方法
Jetson NanoのSDカードを丸ごとハードコピー(イメージ化)する方法
Jetson Nanoとラズパイを組み合わせて使う方法
ラズパイをJetson Nanoのサブボードとして使う方法(電源供給とシリアル通信)
myCobotをJetson Nanoで制御
実質無料(6万円)の6軸ロボットアームmyCobotをJetson Nanoで使う方法です。以下のZennの書籍を参照ください。
トラブルシューティング
PythonでimportしようとするとIllegal instruction (core dumped)
が発生
既知の問題のようです。Workaroundとして、以下コマンド実行すると治ります。
$ export OPENBLAS_CORETYPE=ARMV8
参考:
lockファイル関係のエラー
apt-get
でCould 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-daemon
のError 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
raymondlo84/nvidia-jetson-ai-monitor
参考になるリンク
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の部品は日本では入手しづらいものもおおいので、こういう情報は本当に助かりますね。
Jetson NanoでTF-TRTを試す(Image Classification)
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に発売されます
書籍の宣伝「からあげ先生のとにかく楽しい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 微修正