この記事について
nVidiaのJetson Nano(初代)にVNCサーバをインストールしてWindowsからGUIにアクセスできる様にします。
いくつか記事はあるのですが、自分ではそれなりにハマったので、自分用のメモです。
Jetson Nano側の設定
VNC Servcerのインストールとパスワード設定
環境確認。
最初に環境確認。TeraTerm経由等ではなくて、Jetson NanoのGUI上のTerminalから確認する事。
$ env | grep DISPLAY
ここで、DISPLAY=:0と返るか、DISPLAY=:1と返るか覚えておく。
VNCサーバのインストール。
sudo apt update
sudo apt install tigervnc-common tigervnc-standalone-server tigervnc-scraping-server
VNCサーバのパスワード設定。
Would you like to enter a view-only password (y/n)? と聞かれるが、nでよい。
vncpasswd
テスト起動。
先の手順で表示されたDISPLAY番号に変更する事。Jetson NanoのGUI上のTerminalから確認する事。
x0vncserver -display :1 -passwordfile ~/.vnc/passwd
テスト接続。
Windows側からは、VNCのビューワソフトであれば何でも良いです。
USB接続してる場合、IPが192.168.55.1、Portが5900で、Passwordがvncpasswdで入力した文字列で接続できます。
出来なければ、ここまでで何かが間違ってます。
自動起動設定。
起動時によみこむ起動ファイルを作成します。
sudo vi /etc/systemd/system/x0vncserver.service
中身は以下。日本語で書いてある所を書き換えて下さい。またDISPLAY番号も先と同様に書き換えて下さい。
さらに、10秒の遅延を入れるのが流行っている様ですが、私の環境では10秒では追いつかず、30秒にしています。
[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=ユーザ名
Group=所属グループ
WorkingDirectory=/home/ホームディレクトリ
ExecStart=/bin/sh -c 'sleep 30 && /usr/bin/x0vncserver -display :1 -rfbport 5900 -passwordfile /home/ホームディレクトリ/.vnc/passwd &'
[Install]
WantedBy=multi-user.target
自動起動設定、つまりデーモンとして起動する様に設定します。
最初に、デーモンを再読み込みしないとスタートも有効化も出来ません。
$ systemctl daemon-reload
次に、テストとして手動でVNCをデーモンとして起動してみます。
sudo systemctl start x0vncserver.service
手動で起動した後、エラーが出ていないかのチェック。
$ sudo systemctl status x0vncserver.service
VNCが一覧にあるかどうか、のチェック
$ systemctl list-units | grep vnc
ここまで無事にできた所で、VNCサーバの自動起動を有効化
$ sudo systemctl enable x0vncserver.service
ここでOS再起動かけます。
再起動後、まずJetson NanoのGUIでログインして(そうでないとVNCは使えない)。
自動起動した後、エラーが出ていないかのチェックします。
$ sudo systemctl status x0vncserver.service
ここで問題なければ、WindowsからVNC ビューワで接続できるはず。