Jetson AGX Xavier Developer KitをVirtualbox + NVIDIA SDK Managerでセットアップする

目次

縁あって Jetson AGX Xavier Developer Kit(以後AGX) を触る機会に恵まれたのですが、初期設定に色々ハマってしまったので備忘録として書き残しておきます。

AGXの初期化にはNVIDIA SDK Managerが必要

NVIDIAが提供するJetsonシリーズでは、製品によってNVIDIAが提供するSDKのインストールやOSの初期化方法が異なります。 AGX では専用のアプリケーション(NVIDIA SDK Manager)を使用し、 ホストマシン経由で JetPackの書き込みやSDKの追加インストールを行う必要があります。ホストマシンはx64のUbuntu 18.04 または 16.04 が必須とされています。

Ubuntuに載せ換えても良いマシンが手元になかったため、Virtualboxをホストマシンと見立てたセットアップにチャレンジしてみました。

環境情報

  • ホストマシン
    • Macbook Pro Catalina 10.15.2
    • Virtualbox 6.1
    • NVIDIA SDK Manager 1.1.0
  • 本体
    • Jetson AGX Xavier Developer Kit
  • セットアップに使う周辺機器
    • LANケーブル
    • Macbook ProとLANケーブルを接続するためのアダプタ
    • USBキーボード
    • USBマウス
    • HDMI接続可能なモニタ

Virtualbox設定手順

まずは、ホストマシンのMacbook ProにVirtualboxを設定していきます。

Virtualboxのインストール

VirtualboxとExtension Packをインストールします。

1brew cask install virtualbox
2brew cask install virtualbox-extension-pack

virtualbox-extension-pack は Virtualbox に USB 3.0を認識させるために後で使用します。

Ubuntu 18.04 LTSのイメージをダウンロード

Ubuntu Desktop 日本語 Remix のダウンロードページから Ubuntu desktop 18.04 のISOファイルをダウンロードします。

Virtualboxの設定

  1. 先ほどインストールしたVirtualboxを起動します。
  2. [仮想マシン] > [新規] で新規作成ウィザードを開きます。
  3. 任意の仮想マシン名を入力し、[タイプ] を Linux、[バージョン] をUbuntu(64bit)とします。

new-vm

  1. メモリは8GB程度与えておきます。

new-vm-memory

  1. ハードディスクは [仮想ハードディスクを作成する] を選択します。
  2. ハードディスクのファイルタイプは [VDI(Virtualbox Disk Image)] を選択します。
  3. 物理ハードディスクにあるストレージでは [可変サイズ] を選択します。
  4. ディスクの容量は 120GB 以上を確保してください。これは ホストマシンからAGXをフラッシュする際、最大120GBを必要とするとされているからです。

new-vm-storage

ここまで終えると、新規作成が完了し、VMの一覧に作成された仮想マシンが表示されます。

  1. 一覧から先ほど作成した仮想マシンを選択し、 [設定] を選択します。
  2. [ストレージ] メニューから空のIDEコントローラーを選択した状態で、光学ドライブメニュー右側のディスクアイコンをクリックし、表示されたメニューから [仮想光学ディスクの選択/作成] を選びます。

add-settings

  1. [追加] から先ほどダウンロードした ubuntu desktop 18.04 のISOファイル を選択し、追加されたisoを選択します。

add-settings-disk

  1. 同様に、[システム] メニューから [プロセッサー] タブを選択し、プロセッサー数を 4 程与えます。必須ではありませんが、多めに割り当てた方が動作もスムーズなのでオススメします。

add-settings-processor

Ubuntuの設定

  1. 作成したUbuntu 18.04の仮想マシンを起動します。
  2. 初回インストールの画面が表示されるので、言語は [日本語] を選択した状態で [Ubuntuをインストール] を選択します。
  3. キーボードレイアウトは使用しているものに合わせて設定します。
  4. アプリケーションは [最小インストール] で十分です。

setup_ubuntu_minimum

  1. [ディスクを削除してUbuntuをインストール] を選択し、クリーンインストールします。
  2. その後、住んでいる国やコンピュータのログインアカウントの作成といった基本の設定を行い、設定完了後OSの再起動を行います。
  3. デフォルトでは画面が小さいため、画面サイズを変更します。右上の [アクティビティ] から [設定] を開きます。

mod_os_settings

  1. [デバイス] > [ディスプレイ] を選択し、[解像度] で 1440 * 900 (16:10) より大きな解像度を指定します。

これは、 以後の手順で使うNvidia SDK Managerが最小解像度を1440 * 900と定めているためです

  1. 同様に [設定] > [電源管理] > [省電力] から [ブランクスクリーン] を [しない] に変更、[自動サスペンド] を [オフ] にします。

これは、 SDK Manager実行中にUbuntuがスリープして書き込みが失敗するのを防ぐためです

mod-os-settings-buttery

AGXとVirtualboxのUSB接続設定

VirtualboxからAGXに書き込みを行うために、VirtualboxにUSBを認識させる必要があります。

  1. Macbook ProとAGXをUSB Type-Cで接続します。その際、USBはAGXの電源ライトに近い端子に差し込んでください 。別の端子では正しく認識されません。

agx_power

  1. AGXをリカバリモードで起動します。リカバリモードで起動するには、
  • 3つ並んでいるボタンの真ん中を長押しする
  • 真ん中のボタンを押したまま左のボタンを押す
  • 両方のボタンを離す

agx_button

  1. AGXをHDMIでモニタに接続します。電源ライトは光っているが、モニタに何も表示されなければリカバリモードで起動できています。
  2. Virtualboxの仮想マシン一覧から実行中の仮想マシンの設定を開きます。
  3. [ポート] > [USB] からプラスアイコンを押して、[Nvidia Corp.*] を追加します。USBコントローラーはUSB 3.0を選択します。

usb

  1. Ubuntuを再起動し、 [端末] にて lsusb コマンドを実行する。出力されるUSBに Nvidia Corp. が表示されていればOK。

長くなりましたが、ここまででVirtualboxの初期設定が完了しました。

NVIDIA SDK ManagerでJetpack 4.4DPをインストールする

ここではホストマシンがAGXにプロビジョニングを行うNvidia SDK Managerの設定を説明します。

AGXをインターネットに接続する

AGXをインターネットに接続できるようにします。後の工程でホストマシンからAGXにSSHできる必要があるため、同じネットワーク内であれば良いです。 私はMacbook Proの [共有] からインターネットを共有してAGXをインターネットに接続可能にしました。

NVIDIA SDK Managerをダウンロード

VirtualboxのUbuntuで以下の手順を実施します。

  1. Webブラウザで NVIDIA SDK Managerのページ へアクセスし、NVIDIA SDK Managerをダウンロードします。ダウンロードするためにはNvidia Developerのアカウントが必要です。手持ちのメールアドレスでアカウントを新規作成してください。
  2. [アクティビティ] から [端末(ターミナルのこと)] を開き、ダウンロードした sdkmanager_x.x.x_amd64.deb ファイルを使って以下のコマンドを実行し、SDK Managerをインストールします。
1sudo apt install ./sdkmanager_x.x.x_amd64.deb
  1. SDK Managerの実行スクリプトはpythonを必要とします。 [端末] から which python コマンドを実行してpythonが解決できなければ、以下コマンドにてpython 2.7 をインストールします。
1sudo apt install python

Nvidia SDK ManagerでのSDKをインストール

  1. AGXとホストマシンをUSB接続し、AGXはリカバリモードで起動しておく
  2. Ubuntuの [端末] から sdkmanager コマンドを実行し、Nvidia SDK Managerを起動する。
  3. Nvidia developerアカウントでログインします。

sdk-manager-top

  1. 以下の設定を選択します
  • Product Category: Jetson
  • Hardware Configuration: Host Machine
  • Target Hardware: Jetson AGX Xavier
  • Target Operating System: Jetpack 4.4 DP
  • Additional SDK: なし

sdk-manager-step1

  1. ライセンスアグリーメントを許可し、Continueを選択

sdk-manager-step2

  1. リソースのダウンロードとイメージのフラッシュを行うので、のんびり待ちます。
  2. 途中、デバイスのフラッシュ前にアカウント情報を聞かれるダイアログが表示されたら以下の対応を行います。
  • [Automatic Setup] から [Manual Setup]に変更
  • AGXのログインユーザとログインパスワード(デフォルトではnvidia/nvidia)を入力
  • Flashを実行

Manual Setupのオプションが存在しないダイアログ表示された場合 には、ホストマシンからアクセス可能なAGXのIPアドレスを入力します。

  1. 書き込み完了。AGXを通常モードで起動します。

参考にさせていただいたサイト