Jetson nanoをRemote Desktopでアクセスする


目的

JetbotでROS環境で使っていくのにモニターをつなぎたくないので、Macからアクセスできるようにする。

環境

  • Host PC

    • Macbook air 2013
  • Target

    • Jetson nano
    • Jetpack 4.4
    • Ubuntu 18.04

手順

Jetson nano側の準備

IPアドレスの確認

Jetson nanoでterminalを開いて、ifconfigでJetson nanoのIPアドレスを確認。

TigerVNCのインストール

Jetson nanoでterminalを開いて、下記コマンドを実行。vncpasswdはパスワードを設定した後、view-only passwdをy/nで聞いてくるので、nを打ち込む。

sudo apt update
sudo apt install tigervnc-common tigervnc-standalone-server tigervnc-scraping-server
vncpasswd #接続用パスワード設定

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

最期のコマンドでうまく行かない場合、以下を打ち込んでみる。Displayが1とあったので、上のコマンドでDisplayを1にするとVNCが起動できた。

env | grep DISPLAY
DISPLAY=:1

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

###Macbook側の設定
まずVNC viewerを以下からDownloadしてインストール。
https://www.realvnc.com/en/connect/download/viewer/

VNC viewerを起動し、タブ上のnew connectionから設定画面を開き、VNC ServerにJetson nanoのIPアドレスを設定。

パスワードを聞いてくるので、上で設定したvncのパスワードを打ち込むと、無事接続完了。

###起動時に自動設定
起動時に自動的に設定されるようにしてみる。

sudo vi /etc/systemd/system/x0vncserver.service

viを起動して、下記内容を記載。

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target
After=network.target remote-fs.target nss-lookup.target
After=x11-common.service 

[Service]
Type=forking
User=xxxx
Group=xxxx
WorkingDirectory=/home/xxxx
ExecStart=/bin/sh -c 'sleep 10 && /usr/bin/x0vncserver -display :0  -rfbport 5900 -passwordfile /home/xxxx/.vnc/passwd &'

[Install]
WantedBy=multi-user.target

上記スクリプトで設定した内容の動作確認をしてみる。

sudo systemctl start x0vncserver.service

"vncserver failed to determine group credentials"というエラーが発生。。。GroupをUserと分けていたのかダメだったのか、変更するとうまくいった。

有効化して再起動。

sudo systemctl enable x0vncserver.service
sudo reboot yes

###解像度の設定
起動時にJetson nanoにモニターを繋げてないと、Remote DesktopでVGAで出力されてしまうので、下記ファイルを編集。

sudo vi /etc/X11/xorg.conf

viを起動して、下記内容を下に追記すると、VNCで解像度が変わってアクセスできた。

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

###キーボード
無事Remote Desktopで入れるようになったが、Macbookからのキーボード操作で、":"が入力できない。ブラウザ上でのURLのベタ打ちや、viで保存するときの":wq!"が入力できなくて不便。色々と調べたけど、有効打を見出せず。当面、viで保存するときは、大文字ZZで我慢するしかないか。。。

#参考
下記は非常に参考になりました。
https://qiita.com/iwatake2222/items/a3bd8d0527dec431ef0f