embeddedなブログ

組み込みシステムに関することや趣味に関することをダラダラと書いていきます(^^)

Visual Studio Codeを使ってグラフィカルなJetsonのリモートデバッグを実現する

2024-02-17 18:53:07 | Windows Embedded CompactまたはCE

AIやSLAMなどのGPUを必要とするエッジデバイスとして最適なJetson、リモートでデバッグする機会が多いと思います。ただ、コマンドラインベースでのデバッグだと効率も悪いので、Visual Studio Codeを使ってグラフィカルなデバッグする方法について調べてみましたので、その方法をご紹介します。

まず、Jetson側にSSHサーバーをインストールします。

sudo apt-get install openssh-server

ローカル側の環境作成です。Visual Studio CodeがインストールされたWindowsなどのPC側です。

まず、Visual Studio Codeに「Nsight Visual Studio Code Edition」をインストールします。同様にVisual Studio CodeのExtensionsタブ(Ctrl+Shift+X)で「Nsight」を検索して「Nsight Visual Studio Code Edition」を表示します。

[Install]をクリックしてインストールします。

次に、isual Studio CodeにRemote SSHをインストールします。Visual Studio CodeのExtensionsタブ(Ctrl+Shift+X)で「remote ssh」を検索してMicrosoftの「Remote - SSH」を表示します。

[Install]をクリックしてインストールします。インストールが完了するとVisual Studio左側のタブに下図一番下のようなSSH接続のアイコン(Remote Explorer)が追加されます。

次にJetsonにSSHで接続します。Visual Studio Codeウィンドウ左下の下記の「><」のようなアイコンをクリックしてください。

「Connect to Host...」を選択して、テキストボックスに接続先ホスト情報(Jetson Nanoのユーザー名@Jetson NanoのIPアドレス)を入力してEnterを押下してください。私のJetson Nanoの場合は、yoossh@192.168.0.228 です。

Jetson Nanoのパスワードを入力します。

しかし、ここで残念なことに下記のメッセージが表示されました。なんと、Jetson NanoのOSバージョンがVisual Studioから接続するサポート対象外ということです。

少し、調べてみました。Visual Studio Codeによるリモート接続の要件については、Linux Prerequisites for Visual Studio Code Remote Developmentのページに記載されていました。Ubuntu 18.04はサポート対象外です。Ubuntu 20.04以上でないとダメなようです。

JetPackとUbuntu含め各モジュールバージョンの依存関係を比較してみました。

  • JetPack 6.0 [Jetson AGX Orin Series, Jetson Orin NX Series, Jetson Orin Nano Series]
    • NVIDIA Jetson Linux 36.2
    • Ubuntu 22.04
    • cuDNN 8.9.4
    • CUDA 12.2.12
  • JetPack 5.1.2 [etson AGX Orin Series, Jetson Orin NX Series, Jetson Orin Nano Series, Jetson Xavier NX series, Jetson AGX Xavier Series]
    • Jetson Linux 35.4.1
    • Ubuntu 20.04
    • cuDNN 8.6.0
    • CUDA 11.4.19
  • JetPack 4.6.4 [Jetson Xavier NX Series, Jetson TX2 Series, Jetson AGX Xavier Series, Jetson Nano, Jetson TX1]
    • Linux 32.7.4
    • Ubuntu 18.04
    • cuDNN 8.2.1
    • CUDA 10.2

のようになります。残念ながら Jetson Nano は JetPack 4.6.4まで、つまり、Ubuntu 18.04までなので、Visual Studio Codeのリモート接続はサポート対象外でした。

NVIDIAのフォーラムにもJetson NanoをJetPack 5に対応する予定はないと書かれているので、やむを得ないですね。
Will Jetpack5.0 support Jetson Nano

サポート対象外ということでしたが、上記ダイアログで「Allow」をクリックすると、一応、下図のように接続は完了しています。

リモート接続のウィンドウも正しく表示されています。

Jetson Nanoで色々と試してみましたが、CMakeのConfigureはうまく出来ましたが、C++のコンパイルはどうもうまく出来ない状況です。もう少し色々と試してみて、何か新たな発見があれば共有させていただきたいと思います。

Jetson Orin Nanoなどであればサポート対象なのでうまくリモート接続でデバッグとかも出来ると思いますので、これらのボードをお持ちの方はコンパイルやデバッグを使うことが出来ると思いますので、試してみてください。

 


最新の画像もっと見る