Macからjetsonにssh接続できる環境は前の記事でできた。
trafalbad.hatenadiary.jp
けどいかんせん、Jetson Nano用のキーボード、マウス、ディスプレイをいちいち接続するのが面倒で邪魔だから、なんとかしたいということで、
という前提で、リモートデスクトップがいらないVNC接続をJetson NanoとMac間でやってみた備忘録。
あとロボットとか、外部のデータを送るマイクロデバイスとして使うときにこの操作は大事
目次
1. MacからJetson NanoにVNC接続
2. Jetson NanoでVNC Serverをデーモンとして自動起動させる
1. MacからJetson NanoにVNC接続
Jetson Nano側
初めは設定のためにキーボード、マウス、デイスプレイが必要。
重要:まずJetson側でGUIでログイン時にパスワードを要求しないように設定。
# Ubuntuのipアドレスを確認 $ ifconfig >>> ## enp0s5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ## inet 10.xxx.xx.8 netmask 255.255.255.0
$ sudo apt update $ sudo apt install tigervnc-standalone-server tigervnc-scraping-server # パスワード設定 $ vncpasswd >>> # Password: # Verify: # TigerVNCを起動 # x0vncserver -display :1 -passwordfile ~/.vnc/passwd $ x0vncserver -display :0 -passwordfile ~/.vnc/passwd
Mac側
[command]+[スペース]でSpotlight検索で「画面共有」で開く
10.xxx.xx.8
パスワード:[jetsonのパスワード]
VNC接続を確認。
2. Jetson NanoでもVNC Serverをデーモンとして自動起動させる
VNCサーバを毎回手動で起動するのは面倒なので、システム起動時に自動的にVNCサーバが起動するようにする。
# systemdデーモンのサービス設定ファイルの作成
$ sudo vi /etc/systemd/system/x0vncserver.service
/etc/systemd/system/x0vncserver.service
・ユーザー名==> hagi
・pwd ==> /home/hagi
[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=hagi Group=hagi WorkingDirectory=/home/hagi ExecStart=/bin/sh -c 'sleep 10 && /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/hagi/.vnc/passwd &' [Install] WantedBy=multi-user.target
# 設定 & 起動確認 $ systemctl daemon-reload $ sudo systemctl start x0vncserver.service $ sudo systemctl status x0vncserver.service >>> # 正しく動いてると以下のように表示される #● x0vncserver.service - Remote desktop service (VNC) # Loaded: loaded (/etc/systemd/system/x0vncserver.service; en # Active: active (running) since Mon 2023-02-06 19:39:33 JST; # Process: 4717 ExecStart=/bin/sh -c sleep 10 && /usr/bin/x0vn # Main PID: 4791 (x0vncserver) # Tasks: 1 (limit: 4181) # CGroup: /system.slice/x0vncserver.service # └─4791 /usr/bin/x0vncserver -display :0 -rfbport 59 # 2月 06 19:39:33 jetson systemd[1]: Starting Remote desktop se # 2月 06 19:39:33 jetson systemd[1]: Started Remote desktop ser #lines 1-11
# サービスを有効化して再起動 $ sudo systemctl enable x0vncserver.service >>>> # Created symlink /etc/systemd/system/multi-user.target.wants/x0vncserver.service → /etc/systemd/system/x0vncserver.service. $ sudo reboot yes # 再起動後、ちゃんとサービスが起動しているか確認 $ systemctl list-units | grep vnc >>> # loaded active running Remote desktop service (VNC) # 停止 $ systemctl stop x0vncserver.service
もうこの時点でVNC接続できたので、キーボード、マウス、HDMIケーブルは外してもOK。
ここまできたら、キーボード、マウス、HDMIケーブルは不要で、MacからVNC接続できる。
MacからVNC接続で、もう重いにキーボード、マウス、HDMIケーブル不要でJetson nanoに簡単接続できた。
重要
・パスワードなしの自動ログインに設置しておく
・displayが「0」でエラーになるなら使用済みの可能性もあるので「1」とかにしてみる
これでJetbotととかのロボットにJetsonを取り付けて動かせる。