Jetson Remote Control
NVIDIA/Jetson

Jetson Remote Control

본 환경은 Ubuntu Linux 환경에서 진행한다. HOST 시스템에서 Jetson을 원격 제어 하기 위한 방법 설명한다.

공통 사전 작업

Setup Xorg

Jetson 장치에서 GUI가 제대로 작동하려면 Jetson 장치가 부팅할 때 항상 모니터를 연결해야 한다. 연결하지 않으면 NVIDIA LOGO 화면에서 넘어가지 않음. 

https://forums.developer.nvidia.com/t/vnc-get-stuck-at-logo-screen-everytime-i-reboot-jetson-agx-xavier-with-jetpack-5-0-2/240204/14

 

VNC get stuck at logo screen everytime I reboot jetson agx xavier with jetpack 5.0.2

Good to hear that it got fixed. xserver-xorg-video-dummy is the best way to achieve this.

forums.developer.nvidia.com

이를 방지하기 위해서는 Jetson 장치에 아래와 같이 설정해준다.

sudo apt-get install xserver-xorg-video-dummy
sudo vim /etc/X11/xorg.conf 하단에 아래 설정 추가 - 이 작업은 SSH 로 작업하는 것을 추천
Section “Device“
Identifier “Dummy0“
Driver “dummy“
VideoRam 16384
EndSection

Section “Monitor“
Identifier “Monitor0“
HorizSync 5.0-1000.0
VertRefresh 5.0-200.0
Modeline “1280x800“ 24.15 1280 1312 1400 1432 800 819 822 841
EndSection

Section “Screen“
Identifier “Screen0“
Monitor “Monitor0“
Device “Dummy0“
DefaultDepth 24
SubSection “Display“
Depth 24
Virtual 1280 800
EndSubSection
EndSection

해상도 변경 시 cvt명령으로 원하는 해상도의 modeline을 계산 후 xorg.conf modeline 부분을 수정한다.

cvt 1920 1080

Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

1. UART AND SSH

https://rorsi.tistory.com/82

 

Jetson debugging

Jetson 장치에서 작업을 진행하다 디버깅 작업이 필요할 때 진행해야 하는 방법을 설명한다. SDK Manager로 장치를 플래시 할 때는 아래 공통작업은 필요하지 않다. 공통 작업 Linux_for_Tegra/tools 에서 l4

rorsi.tistory.com

 

2. VINO VNC

Jetson

1. 로그인 시 VNC Server가 활성화 되도록 설정

cd /usr/lib/systemd/user/graphical-session.target.wants
sudo ln -s ../vino-server.service ./.

2. VNC server 설정

gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false

3. VNC server에 접근하기 위한 password 설정

gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password $(echo -n '비밀번호'|base64)

4. 위 설정을 적용하기 위해서 재부팅

sudo reboot

VNC 서버는 Jetson에 로컬로 로그인한 후에만 사용할 수 있다. VNC를 자동으로 사용하려면 키트 시스템 설정 애플리케이션을 사용하여 자동 로그인을 활성화 해야 한다.

 

HOST

본인 환경에 맞는 VNC Viewer 설치

https://www.realvnc.com/en/connect/download/viewer/

 

Download VNC Viewer | VNC® Connect

Control VNC® enabled computers with VNC® Viewer.

www.realvnc.com

VNC Viewer 실행 후 IP 입력 창에 JETSON IP 입력

Lan IP를 입력 해도 가능하고 Micro-usb를 연결 후 생성되는 IP로도 입력 가능

continue 입력 후 위에서 설정한 vncpassword 입력 후 접속

 

접속 화면

3. Tiger VNC

Jetson

1. 먼저 TigerVNC 서버를 설치해야 합니다.

sudo apt-get install tigervnc-scraping-server

TigerVNC 서버는 활성 세션에 대한 액세스 권한을 부여하기 위해 더 작은 애플리케이션(x0vncserver)을 제공합니다.

 

2. 그런 다음 home 에 .vnc 폴더를 만듭니다.

mkdir -p ~/.vnc

3. vnc 세션에 대한 암호를 만듭니다.

user@hostname:~$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

 

컴퓨터에 TigerVNC 서버를 성공적으로 설치하고 vncpasswd 명령으로 암호를 만들었으므로 vnc 서버를 시작할 수 있습니다. 

x0vncserver -passwordfile ~/.vnc/passwd -display :0
Wed Oct 10 22:17:16 2018
Geometry: Desktop geometry is set to 1920x1080+0+0
Main: XTest extension present - version 2.2
Main: Listening on port 5900

-passwordfile ~/.vnc/passwd 옵션은 이전에 vncpasswd 명령 으로 만든 암호 파일을 읽습니다 . 두 번째 옵션 -display :0은 일반적으로 활성 세션인 display :0의 세션에 연결하려고 함을 의미합니다.

 

이제 기본 vnc 포트 5900에서 모든 vnc 뷰어 응용 프로그램을 사용하여 실제 데스크톱에 액세스할 수 있습니다.

Ctrl-c를 눌러 원할 때마다 이 프로세스를 중지할 수 있습니다.

 

백그라운드에서 실행하려면 다음을 입력하십시오.

 x0vncserver -passwordfile ~/.vnc/passwd -display :0 >/dev/null 2>&1 &

VNC 서버 실행 스크립트

홈 폴더로 startvnc 스크립트를 복사한다.

startvnc
0.00MB

 

 

cp ./startvnc ~

스크립트를 실행하려면 실행 권한을 변경하십시오.

chmod +x ~/startvnc

그런 다음 스크립트를 실행합니다. 

./startvnc

이 스크립트는 홈에 .vnc 디렉토리가 있고 vncpasswd를 생성한 경우에만 작동합니다(~/.vnc/passwd 파일 확인). 이전에 이미 .vnc 디렉터리와 암호를 만든것을 확인

실제 디스플레이에서 vnc 서버를 시작하려면 다음을 입력하십시오.

./startvnc start
Starting VNC Server on display :0 [ok]

VNC 서버 자동 실행

GUI 부팅 시 자동으로 vncserver를 실행하려면 홈 디렉토리에서 .xsessionrc 파일을 편집해야 합니다.

echo "/home/user/startvnc start >/dev/null 2>&1" >> ~/.xsessionrc

 user 를 사용자 이름으로 바꾸면 X 세션을 시작할 때 자동으로 실행됩니다. 스크립트는 활동을 ~/.vnc/logfile에 기록합니다. 문제가 발생하면 여기에서 로그 파일을 확인할 수 있습니다.

HOST

VINO VNC와 동일

 

TigerVNC가 Vino VNC 보다 상대적으로 빠른 것을 확인 둘 중에 하나를 써야 한다면 TigerVNC 를 추천

 

4. NoMachine

JETSON

NoMachine 설치
NoMachine 웹 사이트로 이동하여 ARMv8용 DEB 패키지를 다운로드합니다.
https://www.nomachine.com/download/linux&id=30&s=ARM
또는 wget 명령으로 다운로드:

wget https://www.nomachine.com/free/arm/v8/deb -O nomachine.deb

그런 다음 'dpkg' 명령으로 NoMachine을 설치합니다. 예를 들어 언급된 wget으로 다운로드한 경우:

sudo dpkg -i nomachine.deb

NoMachine 구성 설정
데스크탑에 대한 시작 명령을 NoMachine 노드 구성에 추가해야한다.
1단계 - Xfce4 데스크탑 환경 설치:

sudo apt install xfce4


원하는 데스크탑 환경 선택 ex) gdm3, lightdm
2단계 - Xfce 데스크탑용 NoMachine 구성

  1. 노드 구성 파일 편집: sudo vim /usr/NX/etc/node.cfg
  2. DefaultDesktopCommand 키를 찾아 행을 다음으로 변경합니다. DefaultDesktopCommand "/usr/bin/startxfce4”
  3. 변경 사항을 저장 후 재부팅 합니다.

HOST

NoMachine 설치
NoMachine 웹 사이트로 이동하여 LINUX용 DEB 패키지를 다운로드합니다.
https://www.nomachine.com/download/

 

연결

1. 새 연결을 만들려면 'Add'를 클릭합니다.

2. 'Host' 및 'Port' 필드에 앞서 기록해 둔 공인 IP 주소 및 포트 정보를 입력합니다.

'연결'을 클릭하거나 뒤로 화살표를 클릭하여 Machines 패널로 돌아갑니다. 

원격 컴퓨터에 로그인

원격 호스트의 계정에 대한 자격 증명을 사용하여 로그인하라는 메시지가 표시됩니다.

'로그인'을 클릭하고 NoMachine이 원격 데스크톱에 연결하는 동안 몇 초 더 기다립니다.

연결 확인

접속 화면

 

참고 :

https://developer.nvidia.com/embedded/learn/tutorials/vnc-setup

 

Setting Up VNC

VNC (Virtual Network Computing) enables you to control your Jetson developer kit from another computer on the same network, by viewing and interacting with the desktop of the developer kit from the other computer.

developer.nvidia.com

https://www.howtoforge.com/tutorial/how-to-start-a-vnc-server-for-the-actual-display-scraping-with-tigervnc/?__cf_chl_captcha_tk__=29beeaf658d9854f2a349cf63822ae86784055a7-1607298005-0-AbtLEbeEjAHrJINEEyWN7-ys4KGdq4-_ba60Tt_R2NqdLf45uTWGS6wYE2_maHsprQZYTD_CwHhV_8mFPxnI5qYAaRdtjVtFpLd3DO25ViJOjW7gUB_nrBuICV156K2eukTnDUe0vRvivDJU2CWmPFiaMCCy51ecniao3Zc8Ez11PdniasnwNnh8Lr5uAH476RM6kQCuw97gHZGW3ek--QrP6Ct8RRd2mRHX8P4us7p7fYcYw9QH70AAd6ZvEIFzTJdmOzaq6M6yyvMGDe_LZA25gfDYVowe6iL_DQOqUFhdXS7aEQemR7WCLmWZGwr9qWU6TZ06xyu1yMEhk7rjG8cSxxaHTeOO21G_cEbWPQe5TGwdciMnYmxZ6LXKJ3eR13ps8fXj9TCIR_EJrrisOcfPRh6i3F4nqrYumwDB2j8TklrAcXa1XoiznOQ6jR--Wj_LptibtgE4HwRlWkLHdAVmZdyDnJj6PZ3ma7lJ0qeL6jHqfZUFvWnbRlDDx4WEdQ6lwRLqa-I0OqqZjoVa5XmF6ImvRv9XBiBHglPEzNAV_YZ0UY8eAJ6OYD9fJUqz4avyYp5phy3RSvH2dKsoqhdkJo607tg02wS3JwD0uUL9TqjwGDXJKvuePC6regxqyQ 

 

How to start a vnc server for the actual display (scraping) with TigerVNC

VNC is a desktop sharing application. This howto offers you a solution, to connect via TigerVNC server to the actual active session on your Linux desk...

www.howtoforge.com

 

https://www.nomachine.com/getting-started-with-nomachine

 

'NVIDIA > Jetson' 카테고리의 다른 글

Deepstream 설치 및 실행  (0) 2023.04.25
Customized Logo  (0) 2023.04.22
Jetson debugging  (0) 2023.03.21
L4T(Linux for Tegra), JETSON  (0) 2023.02.01
JETSON backup 이미지 만들기  (0) 2023.01.28