Jetson : VNCサーバー設定

TigerVNCを使う

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

接続用パスワードの設定

> vncpasswd
:

# Would you like to enter a view-only password (y/n)? n

まずは手動で起動して接続できるか確認。モニタ接続してないのであれば、-display :0番を指定する。もしつないでいる場合は、-display :1を指定

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

コンソールで起動できたら、クライアント(VNC Viewer)からJetsonのIPアドレスを指定して接続してみる。

vnc001

ログインできればとりあえずOK

vnc002

デーモン起動

起動はできたものの、毎回コンソールでサーバー起動は面倒

Systemd用の自動起動スクリプト

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

[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=nvidia
Group=nvidia
WorkingDirectory=/home/nvidia
ExecStart=/bin/sh -c 'sleep 10 && /usr/bin/x0vncserver -display :0  -rfbport 5900 -passwordfile /home/nvidia/.vnc/passwd &'

[Install]
WantedBy=multi-user.target

サービスの起動。runningになればOK

> sudo systemctl start x0vncserver.service
> sudo systemctl status x0vncserver.service
● x0vncserver.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/x0vncserver.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-06-12 14:38:23 JST; 7s ago
  Process: 7890 ExecStart=/bin/sh -c sleep 10 && /usr/bin/x0vncserver -display :0  -rfbport 5900 -passwordfile
 Main PID: 7900 (sh)
    Tasks: 2 (limit: 4181)
   CGroup: /system.slice/x0vncserver.service
           ├─7900 /bin/sh -c sleep 10 && /usr/bin/x0vncserver -display :0  -rfbport 5900 -passwordfile /home/nv
           └─7907 sleep 10

サービスとして有効にしておく

> sudo systemctl enable x0vncserver.service
Created symlink /etc/systemd/system/multi-user.target.wants/x0vncserver.service → /etc/systemd/system/x0vncserver.service.

画面解像度の設定

デフォルトの解像度が小さいので、デフォルト設定で1280x720あたりを設定する。

MonitorScreenセクションを追加

> sudo vi /etc/X11/xorg.conf

Section "Module"
    Disable     "dri"
    SubSection  "extmod"
        Option  "omit xfree86-dga"
    EndSubSection
EndSection

Section "Device"
    Identifier  "Tegra0"
    Driver      "nvidia"
# Allow X server to be started even if no display devices are connected.
    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

リブートして、ログインできて、画面が設定解像度になっていることを確認

> sudo reboot

vnc003