81
82

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【JetCardを使えば一瞬】NVIDIA Jetson Nanoセットアップ [2019年7月版]

Last updated at Posted at 2019-07-02

TL;DR

  • NVIDIA Jetson Nanoは、128コアのMaxwell GPUを搭載しながら、70 x 45 mmとRaspberry Piの様な超小型コンピュータ
  • 公式のJetCardイメージを使うと、セットアップが60分以下で終わる
    • SDカードイメージのダウンロードに15分(ネットワーク次第)
    • SDカードへの書き込みに30分
    • 電源を入れ、USB有線での接続からWiFi接続に切替えるまで15分以下
  • ディスプレイやキーボードをNanoに繋がなくてもセットアップできる
  • JupyterLabも、SSHも、セットアップすればVNCで画面も見られる

はじめに

2019年3月の発表以降、先人の皆様がJetson Nanoの有用な情報をまとめて下さっています。

2019年6月末に、NVIDIAからJetson Nano関連の有用なプロジェクトが複数公開されました。特にJetCardにより、セットアップの簡略化が図られています。

ふまえて、今日(2019年7月時点)での、最速セットアップ方法(?)をまとめます。

本稿はMac中心で進めますが、Windows、Linuxパソコンからも実行できます。公式のチュートリアルコース Getting Started with AI on Jetson Nano 中のSetting up your Jetson Nanoに、各OSに対応した詳細のガイドがあります(英語)。

BOM

まず、以下を揃えます。Jetson Nanoは品薄状態が概ね解消したようです。Jetson Nano開発者キット単体では動作しないので、注意が必要です。オンラインならAmazon等で、オフラインなら秋葉原などの店舗(秋月電子、千石通商、あきばおーなど)でも揃います。

項目 目安価格 メモ
Jetson Nano Developer Kit 12,300円
電源アダプタ(5V, 4A, 2.1mm内径DCプラグ) 1,000円
USBケーブル(Micro-B to Type-A) 90円
2 pinジャンパ(電源プラグ給電用) 100円 J48をショートしDCプラグ型電源を使うため
Raspberry Pi カメラモジュール V2 3,900円 USB Webカメラも可
microSDカード(最低32GB, UHS-I) 1,000円
WiFiドングル 750円 RPiと異なりWiFiが付属しない

image.png

上記以外に、

  • インターネットに接続でき、USB端子を持つMac/ Windows/ Linuxいずれかのパソコン
  • WiFiルータ

が必要です。またJetson Nanoは熱を持つため、空冷ファンを後付けする方も多いようです。

セットアップ 60分チャレンジ

NVIDIA公式から公開されたJetCardは、必要なソフトウェアがプリインストールされたSDカードイメージです。zip圧縮され7GB程度で配布されます。この公開により、とても手軽にセットアップできるようになりました。

JetCardイメージのダウンロード [15分]

NVIDIA JetCard GitHubリポジトリにある、Googleドライブへのリンク から圧縮されたイメージファイル jetcard_v0p0p0.zip をWindows、Linux、またはMacのデスクトップマシンにダウンロードします。ファイルが正しくダウンロードされているか、md5sumも確認できます。

マイクロSDカードの書き込み [30分]

  1. デスクトップマシンに32GB以上の容量があるSDカードを挿入する
  2. FAT32でSDカードの初期化をする

注意: 初期化されていないと、次に Flash!を押しても、 Startingのまま書き込みに進みません。

MacでのSDカード初期化方法

ディスクユーティリティ.app を開き、対象のSDカードを左メニューから選択(自身のハードディスクを選ばないように注意!)する。上メニューの消去を押下する。<ドライブ名称>を消去しますか?というダイアログでフォーマット MS-DOS(FAT)、方式 GUIDパーティションマップを選択、消去を実行します。

image.png

  1. Etcherをインストールし、起動します。

  2. 以下の画面が出たら、書き込むイメージに、先ほどダウンロードした jetcard_v0p0p0.zip を選びます。次に、書き込み先に対象のSDカードを選びます。その上で Flash!を押します。

Tips: SDカードイメージはzip圧縮されたままで問題ありません。

image.png

  1. 上の通り、Flashingに12分、Validatingに10分程度を要する。完了したらデスクトップマシンからSDカードを取り出す

image.png

注意: Macの場合、 セットしたディスクはこのコンピュータで読み取れないディスクでしたという警告が表示されるが、フォーマット形式によるものなので、気にせず 取り出すを押下して問題ありません。

電源を入れてUSB経由で接続する [5分]

準備したSDカードを挿入、必要な配線をし、Jetson Nanoの電源を入れます。ヘッドレス(Jetson Nano用のモニタなどがない状態)でも、USB経由で接続し、セットアップができます。

具体的には、USB-microUSBケーブルでPC(USB側)とJetson Nano(マイクロUSB側)を直結すると、PCのWebブラウザからJetson Nano上で立ち上がったJupyter Labに接続できます。

  1. 設定したSDカードをJetson Nanoに挿入する

  2. J48を、2pinジャンパを取り付けショートさせる(microUSBではなく、プラグからの給電に切り替える)

  3. 電源アダプタを差し込み、電源を入れる

  4. Windows、Linux、またはMacマシンをマイクロUSB経由でJetson Nanoに接続する

  5. Windows、Linux、またはMacマシンでブラウザを開き、 http://192.168.55.1:8888 をアドレスバーに入力する
    image.png

  6. デフォルトパスワードjetsonを使ってサインインする

Jetson NanoをWiFiに接続する [5分]

まず、Jetson NanoにUSB WiFiドングルなどを挿しておく。

  1. Jupyter Labのメニューから、File - > New - > Terminalをクリックしてターミナルを開く
    image.png

  2. 次のコマンドを入力して利用可能なWiFiネットワークを一覧表示し、接続したいssid_nameを見つける

$ sudo nmcli device wifi list

**注意: ** [sudo] password for jetson:と聞かれたら、デフォルトは jetsonと答えれば良い。

  1. 選択したWiFiネットワークに接続する
$ sudo nmcli device wifi connect <ssid_name> password <password>

Device 'wlan0' successfully activated with xxxというメッセージが返れば接続成功です。

Tips: この後無線接続に使うPCが所属するネットワークと、同一のネットワークに所属させます

  1. 次のコマンドで返されたWiFiインタフェースwlan0のWiFi IPアドレス( inet )を<jetson_ip_address>として書き留めます。
$ ifconfig

結果例:

<略>

wlan0: flags=4163 mtu 1500
inet 192.168.2.111 netmask 255.255.255.0 broadcast 192.168.2.255

<略>

WiFi経由でJetson Nanoに接続する [5分〜]

  1. マイクロUSBケーブルをJetson Nanoから取り外す
  2. 前のJupyter Labブラウザタブを閉じる

設定が正しく済んでいれば、WiFi経由でJetson Nanoにアクセスできます。ひかえておいた を使って繋いでみます。

Jupyter Labに接続する

新しいブラウザタブを開き、 http://<jetson_ip_address>:8888 へ移動、パスワードjetson でサインインする。

SSH接続する

PC側のターミナルから、user: jetson / password: jetson でSSH接続できます。JupyterLab上で制約がある場合は、こちらを使います。

$ ssh jetson@<jetson_ip_address>

VNC接続する

以下を参考に設定しました。

Jetson Nanoにリモートデスクトップ(VNC)環境を用意する - Qiita

$ sudo apt update
$ sudo apt install tigervnc-standalone-server tigervnc-scraping-server
$ vncpasswd
$ x0vncserver -display :0 -passwordfile ~/.vnc/passwd

vncpasswd でVNC接続時のパスワードを設定します。最後のコマンドで、デフォルトではポート 5900 でVNC接続の待ち受け状態になります。

適当なVNCクライアントを準備し、接続します。Google Chromeをブラウザに使っている場合、VNC® Viewer for Google Chrome™が便利です。

PC側でVNC Viewerを起動、Address欄に <jetson_ip_address>:5900 と入力して Connect を押すと、Jetson Nano側のUbuntuデスクトップを表示できます。

image.png

ここまで、部品が揃っていれば60分以内でセットアップを終えることができました。

その他

Jetson NanoのIPアドレスを確認したい

PC側のターミナルから、arp コマンドで、同一ネットワークで使われているIPアドレスがリスト表示できます。

# Mac OSXの場合
$ arp -a

空いているポートを確認したい

PC側のターミナルから、 nmap コマンドを使います。Mac OSXの場合、デフォルトでは入っていないため brew install nmap などでインストールします。

JetCardデフォルトに、VNCの接続を加えると以下のような状態です。

$ nmap 192.168.2.111
Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-04 02:06 JST
Nmap scan report for 192.168.2.111
Host is up (0.030s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
111/tcp  open  rpcbind
5900/tcp open  vnc
8888/tcp open  sun-answerbook

Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

Raspberry Pi カメラモジュールV2の動作確認

USBカメラと異なり、単純に cv2.VideoCapture(0) では動作しません。一工夫必要です。

import matplotlib.pyplot as plt
import numpy as np
import cv2

GST_STR = 'nvarguscamerasrc \
    ! video/x-raw(memory:NVMM), width=3280, height=2464, format=(string)NV12, framerate=(fraction)30/1 \
    ! nvvidconv ! video/x-raw, width=(int)1920, height=(int)1080, format=(string)BGRx \
    ! videoconvert \
    ! appsink'
cap = cv2.VideoCapture(GST_STR)

以下の実行毎に、キャプチャされた画像がNotebook上に表示でき、動作が確認できます。

ret, img = cap.read()
plt.imshow(np.array(img))

以上

81
82
0

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
81
82

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?