【VNC】Jetsonにリモートデスクトップを設定する方法

2020.08.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

カフェチームの山本です。

カフェでは、コンピュータビジョン用の機械学習モデルを動かすために、Jetson Xavier NXというボードを利用しています。画像を処理した結果が正しいか確認するために、ディスプレイで画面をみたいところなのですが、これらのボードは、棚裏や天井に取り付けているため、ディスプレイを直接接続することが難しい場合が多いという問題があります。

今回は、Windows PCからリモートデスクトップでJetsonの画面を見るために、VNCのセットアップの方法をまとめます。今回利用するビューアは、VNC Viewer for Google ChromeというChromeアプリです(Chromeアプリなので、接続元がMacやLinux系でも動くかと思います)。

設定方法

接続先では、VNCのサーバをインストールし、設定を行い、サーバを起動します。

接続元では、VNCのクライアント(ビューア)をインストールし、サーバに接続します。

接続先(デバイス)の設定

VNC serverをインストール

sudo apt install tigervnc-common tigervnc-standalone-server tigervnc-scraping-server

接続用パスワードを設定

vncpasswd

ディスプレイを設定

Jetsonにディスプレイがつながっていない状態で接続しても、画面サイズはデフォルトのサイズになってしまい、画面が小さく表示されてしまいます。なので、画面サイズを予め設定しておくと良いです。

以下のように設定ファイルを変更します。「Section "Screen"」の箇所を追加すればよいはずです。

nano /etc/X11/xorg.conf
# Copyright (c) 2017, NVIDIA CORPORATION.  All Rights Reserved.
#
# This is the minimal configuration necessary to use the Tegra driver.
# Please refer to the xorg.conf man page for more configuration
# options provided by the X server, including display-related options
# provided by RandR 1.2 and higher.

# Disable extensions not useful on Tegra.
Section "Module"
    Disable     "dri"
    SubSection  "extmod"
    Option  "omit xfree86-dga"
    EndSubSection
EndSection

Section "Device"
    Identifier  "Tegra0"
    Driver      "nvidia"
    Option      "AllowEmptyInitialConfiguration" "true"
EndSection

Section "Monitor"
   Identifier "DSI-0"
   Option    "Ignore"
EndSection

Section "Screen"
   Identifier    "Default Screen"
   Monitor        "Configured Monitor"
   Device        "Default Device"
   SubSection "Display"
       Depth    24
       Virtual 1280 800
   EndSubSection
EndSection

起動

x0vncserver -display :0 -passwordfile ~/.vnc/passwd

接続元(PC)の設定

今回は、VNC Viewer for Google Chrome(Chromeアプリ)を利用しました(下の補足で述べるとおり、別のVNCビューアでも構いません)。

Google Chromeをインストール

通常通りインストールします。

VNCビューアをインストール

今回は、VNC Viewer for Google Chromeを利用しました。以下からインストールできます。

VNC® Viewer for Google Chrome™

VNCビューアを起動

サーバのIPアドレスを入力して接続します。パスワードを求められるので、サーバ側で設定したパスワードを入力します。

※ VNC Viewer for Google Chromeでは、「Quality」を「Low」に設定したほうが良かったです。デフォルトは「Automatic」に設定されているのですが、これだと使用中に「Network Connection lost」というエラーで接続が切れることがあり、再度接続するのが不便です。「Low」に設定すると接続が切れることはありませんでした。ただし、表示される色がすこし変わってしまう点にご注意ください(自分のプログラムでは、カメラで撮影した画像と画像処理した結果を見る分には支障ありませんでした)。

  • 補足

(別のVNCビューアでも問題ありません。例えば、以下のVNC Connectがあります。こちらの方が接続が安定し、altなどのキーも送信できて便利でした。)

VNC® Connect

VNC Connectの場合、特に画質などの設定せずに起動しても、使用中に落ちることはありませんでした。

まとめ

JetsonにWindowsからリモートデスクトップで接続するために、VNCのセットアップして、画面が見えることを確認しました。

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

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