📚
Jetson NanoのVNCサーバーをコマンドラインで設定する
はじめに
Jetson Nanoを装置に組み込むとheadless modeで運用することになるのだが、GUI操作が必要になったときにHDMIモニタとUSBキーボード・マウスを接続するのが面倒なので、VNCサーバーを設定してリモートから接続できるようにする。
公式イメージでセットアップしたときに、/opt/nvidia/l4t-usb-device-mode/filesystem.img
内のREADME-vnc.txt
に書かれている内容とほぼ同じ。
(README-vnc.txt
だと一部GUI操作があるが、この記事ではすべてコマンドラインで実施)
GUI loginしていない状態の場合は下記でfilesystem.img
の内容を参照できる。
$ sudo mount -o ro /opt/nvidia/l4t-usb-device-mode/filesystem.img /mnt
$ less /mnt/README-vnc.txt
Vinoのインストール
$ sudo apt update
$ sudo apt install vino
Vinoの自動起動の設定
$ mkdir -p ~/.config/autostart
$ cp /usr/share/applications/vino-server.desktop ~/.config/autostart
Vinoのコンフィグレーション
thepassword
の部分はお好みのパスワードで。
$ gsettings set org.gnome.Vino prompt-enabled false
$ gsettings set org.gnome.Vino require-encryption false
$ gsettings set org.gnome.Vino authentication-methods "['vnc']"
$ gsettings set org.gnome.Vino vnc-password $(echo -n 'thepassword'|base64)
自動loginの設定
/etc/gdm3/custom.conf
を書き換える。AutomaticLogin
の部分は使用しているユーザー名にする。
--- a/etc/gdm3/custom.conf 2021-01-22 17:26:49.583451113 +0900
+++ b/etc/gdm3/custom.conf 2021-01-22 17:19:47.888171728 +0900
@@ -7,8 +7,8 @@
WaylandEnable=false
# Enabling automatic login
-# AutomaticLoginEnable = true
-# AutomaticLogin = user1
+AutomaticLoginEnable = true
+AutomaticLogin = xxx
# Enabling timed login
# TimedLoginEnable = true
解像度の設定
HDMIモニタを接続していないと、解像度が640x480と小さいので、/etc/X11/xorg.conf
に解像度設定を追加する。
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Tegra0"
SubSection "Display"
Depth 24
Virtual 1280 800 # Modify the resolution by editing these values
EndSubSection
EndSection
reboot
rebootすると自動login済みでXサーバーが起動して画面共有できるようになっている。
$ sudo reboot
macOSからの接続
Finder → 移動 → サーバへ接続... (Command+K) で表示されるダイアログに、vnc://hostname.local
とかvnc://xxx.xxx.xxx.xxx
と入力して接続する。
Discussion