상단

Nvidia Jetson Orin Nano


 

To-Do List


작업담당자기한완료일
OS 설치 5.1.2 in MicroSD김계현2024.01.192024.01.25
한글 입력 설정김계현2024.01.25
Network 설정김계현2024.01.222024.01.25
방화벽 설정김계현2024.01.192024.01.25
SSH 연동 설정김계현2024.01.25
XRDP 연동 설정김계현2024.01.25
  • 공유기 설정

    • XRDP 사용시 방화벽에서 열어야하는 port

  • NVMe 구성 후 부팅 설정

    • OS 설치 in NVMe

  • 8GB Memory 중 6680MB만 인식되는 오류 처리

  • VNC 연동 설정

  • 개발 환경 구성

    • Git Server, Python, Node.js, Jetson 등

  • NVIDIA SDK Manager 구성

  • JetPack 6.0 DP 설치 오류 처리

    • 'L4TLauncher: Attempting Direct Boot' 이후 멈춤

  • Case 구입과 구성

  • Web 환경 구성

  • Job 제출과 실행 환경 구성

 

Check List


  • XRDP 사용시 공유기의 방화벽에서 열어야하는 port는 ?

  • NVIDIA Jetson Orin Nano에 모니터, 키보드, 마우스를 연결하지 않아도 XRDP가 동작하게 하는 방법은 ?

  • NVIDIA Jetson Orin Nano를 원격으로 Booting 하는 방법은 ?

 

사양


 

Hardware 사양

Nvidia Jetson Orin Nano Super Developer Kit

 
  • CPU : 6-core Arm Cortex-A78AE v8.2, 64 bits

  • GPU : 1012-core NVIDIA Ampere architecture GPU with 32 Tensor Cores

  • Memory : 8 GB 128 bit LPDDR5

  • Disk

    • 부팅 순서 : microSD, usb, NVMe, emmc, net

    • microSD card slot

      • 64 GB UHS-1 microSD 이상 권장

      • Samsung PRO Plus microSD : 512 GB

    • M.2 Slot (Key-M, Type 2280)

      • NVMe : 2 TB

    • M.2 Slot (Key-M, Type 2230)

  • M.2 Slot (Key-E, Type 2230)

  • Network

    • 802.11 WLAN : CC474055647D

      • AW-CB375NF

      • S/N: M16Z040379

    • Bluetooth :CC474055647C

    • Gigabit Ethernet

  • Monitor

    • DP(Display Port)

  • 외부 연결

    • USB Type-C

      • USB Mass Storage Device

      • USB Serial

      • USB Ethernet (RNDIS) : 192.168.55.1

  • USB 3.2 Gen2 Type-A * 4

    • 40-pin Expansion Header

    • MIPI CSI Camera Connector * 2

  • Power Indicator LED

  • DC Power Jack (5.5mm * 2.5mm) : 9~10V * 5A

    • 약 시간당 26W 사용

  • 참고 문헌

  • Hardware Specs

 

40-pin Expansion Header

  • 전원 : 3.3V * 2, 5.0V * 2, GND (Ground, 접지) * 8

  • SPI (Serial Peripheral Interface) * 2

    • SPI0_SCK, SPI0_MOSI, SPI0_MISO, SPI0_CS0, SPI0_CS1

    • SPI1_SCK, SPI1_MOSI, SPI1_MISO, SPI1_CS0, SPI1_CS1

  • I2C (Inter-Integrated Circuit) * 2

    • I2C0_SCL, I2C_SDA

    • I2C1_SDA, I2C1_SCL

  • UART (Universal Asynchronous Receiver/Transmitter) * 1

    • UART1_TXD, UART1_RXD

    • UART1_RTS, UART1_CTS

  • I2S (Inter-IC Sound Bus)

    • I2S0_SCLK, I2S0_FS, I2S0_DIN, I2S0_DOUT

  • GPIO * 6

    • GPIO01, GPIO07, GPIO09, GPIO11, GPIO12, GPIO13

40-pin Expansion Header

  • SPI (Serial Peripheral Interface) : 3~4개 선 필요

    • Master, Slave 구조로 동기식 직렬 버스 방식으로 통신

      • 독립적인 송수신

      • 동기화 가능

      • 단거리 통신 (2m 이내)

    • SCK (Serial Clock) : SCK와 연결

      • SCLK (직렬 클럭)

    • MOSI (Master Out Slave In) : SIMO, SDI와 연결

      • SDI (Serial Data Input, 직렬 데이터 입력)

    • MISO (Master In Slave Out) : SOMI, SDO와 연결

      • SDO (Serial Data Output, 직렬 데이터 출력)

    • SS (Slave Select, 옵션) : CS와 연결

      • CS (Chip Select, 칩 선택 신호)

  • I2C (Inter-Integrated Circuit) : 2개의 선 필요

    • 다중 Master 버스 방식

      • Master, Slave 구조

      • 각 장치는 고유한 주소를 가짐

      • 중거리 통신 (2m 이상도 가능)

    • SCL (Serial Clock Line)

    • SDA (Serial Data Line)

  • UART (Universal Asynchronous Receiver/Transmitter)

    • 범용 비동기 직렬 포트

    • 장거리 통신 가능 (10m)

    • 최대 100K 속도

    • USB로 대체중

    • TXD (Transmitted Data, 송신 데이터)

    • RXD (Received Data, 수신 데이터)

    • RTS (Request To Send, 송신 요청)

    • CTS (Clear To Send, 송신 허가)

  • I2S (Inter-IC Sound Bus)

    • 디지털 오디오 장치간에 오디오 데이터 전송

      • 보통 16~48kHz x 16bit x 2CH의 고속 데이터신호

    • SCLK (Serial Clock)

    • FS

    • DIN (Serial Data Input)

    • DOUT (Serial Data Output)

  • GPIO (General-Purpose Input/Output)

 

Software 사양

 

설치 in Windows


 

사전 준비 사항

 

JetPack 5.1.3 설치

  • JetPack 5.1.3 이미지가 저장된 microSD card를 준비 한다.

  • Nano를 부팅하면서 Ubuntu 기본 설정을 한다.

    • Booting mode

      • ESC : to enter Setup.

      • F11 : to enter Boot Manager Menu.

      • Enter : to continue boot.

    • System Configuration

      • I accept the terms of these license : 체크

      • 언어 설정 : "한국어" 선택

      • 키보드 설정 : "Korean"과 "Korean-Korean (101/104 key compatible)" 선택

      • 네트워크 설정 : 무선 네트워크 선택 후 로그인

      • 시간대 설정 : "Seoul" 선택

      • 컴퓨터 접속 설정

        • 이름 : obcon

        • 컴퓨터 이름 : obcon-desktop

        • 사용자 이를 선택 : obcon

        • 암호 선택 : 생략

        • 암호 확인 : 생략

        • 로그인할 때 암호 입력 : 체크

      • APP Partition Size : nnnnn (microSD card의 용량만크 자동 설정됨)

      • Install Chromium Browser : 선택 않음

  • Nano를 리부팅 한다.

    • 부팅시 Update Progress가 진행 된다.

    • 부팅후 5분정도 기다리면 다음 메시지가 표시 된다.

      • nvidia-l4t-bootloader Post Install Notification

#--- 다음 명령어로 버전을 확인 한다.
sudo  nvbootctrl  dump-slots-info
# Current version: 35.5.0

#--- QSPI updater 설치
sudo  apt  update
sudo  apt-get  install  nvidia-l4t-jetson-orin-nano-qspi-updater

sudo  reboot
# Firmware 버전 : 5.0-36585864
# Firmware 버전 : 36.3.0
  • Nano가 리부팅 되는 동안 다음을 확인 한다.

    • 부팅시 Update Progress가 진행 된다.

    • 업그레이드 후 부팅이 되지 않고 멈춘다.

      • JetPack 6.2로만 이후 진행이 가능 하다.

 

JetPack 6.2 설치

  • JetPack 6.2 이미지가 저장된 microSD card를 준비 한다.

  • Nano를 부팅하면서 Ubuntu 기본 설정을 한다.

    • Booting mode

      • ESC : to enter Setup.

      • F11 : to enter Boot Manager Menu.

      • Enter : to continue boot.

    • System Configuration

      • I accept the terms of these license : 체크

      • 언어 설정 : "한국어" 선택

      • 키보드 설정 : "Korean"과 "Korean-Korean (101/104 key compatible)" 선택

      • 네트워크 설정 : 무선 네트워크 선택 후 로그인

      • 시간대 설정 : "Seoul" 선택

      • 컴퓨터 접속 설정

        • 이름 : obcon

        • 컴퓨터 이름 : obcon-desktop

        • 사용자 이를 선택 : obcon

        • 암호 선택 : 생략

        • 암호 확인 : 생략

        • 로그인할 때 암호 입력 : 체크

      • APP Partition Size : nnnnn (microSD card의 용량만크 자동 설정됨)

      • Install Chromium Browser : 선택

  • Nano를 리부팅 한다.

    • 부팅시 Update Progress가 진행 된다.

    • 부팅후 5분정도 기다리면 다음 메시지가 표시 된다.

      • nvidia-l4t-bootloader Post Install Notification

#--- 다음 명령어로 버전을 확인 한다.
sudo  nvbootctrl  dump-slots-info
# Current version: 36.4.3

#--- 업그레이드
sudo  apt  update

sudo  reboot
# 부팅시 Update Progress가 진행 된다.
 

Ubuntu 22.04 기본 설정

  • 6 cores * ARMv8 Processor rev 1 (v8l)

  • 8 GB memory

  • Storage

    • 469 GB disk (mmcblk0)

    • 1.8 TB disk (nvme0n1)

  • Ubuntu 22.04.5 LTS

#--- 유선 또는 무선으로 접속
#---     GUI 환경에서 Network 설정
#---     "설정 > Wi-Fi" 메뉴에서 무선 네트워크 지정
#---     지정한 무선 네트네트 설정에서 고정 IP 설정
#---         IPv4 선택
#---         IPv4 방식 : 수동 
#---         주소
#---             192.168.0.782
#---             255.255.255.0
#---             192.168.0.1
#---         네트워크를 재접속하여 수정 사항 반영 
ip  a                         #--- IP Address 확인
ssh  obcon@192.168.0.782

# shutdown  -h  now
# reboot

#--- OS 등 업데이트
apt  update
apt-get  update
apt-get  upgrade  -y

#--- 사양 확인
cat  /proc/cpuinfo            #--- CPU

free  -m                      #--- Memory

df  -h                        #--- Disk
lsblk  -l                     #--- Storage
fdisk  -l                     #--- Storage

cat  /etc/*-release | uniq
lsb_release  -a

#--- Network 설정
# apt  list  openssh*
# apt  install  openssh-server

nmcli  g                      #--- 라인 상태 확인
nmcli  n                      #--- 상태 확인
# nmcli  n  on                #--- 상태를 enable로 변경
nmcli  d                      #--- 장치 확인

ifconfig                      #--- Ethernet 이름 확인
ip  address                   #--- IP 주소 확인
ip  route
ss  -nlt                      #--- Listen Port 확인
netstat  -an  |  grep  'LISTEN '

#--- 보안 설정
#---     길고 복잡한 형태의 비밀번호 설정
passwd
passwd  obcon

#---     obcon 사용자로 다음 작업 진행
    cd  ~
    mkdir  .ssh
    chmod  700  .ssh
    cd  ~/.ssh
    vi  authorized_keys
    chmod  600  authorized_keys

vi  /etc/ssh/sshd_config
    Port 3322
    ListenAddress 0.0.0.0
    
    PermitRootLogin no
    PubkeyAuthentication yes
    PasswordAuthentication no
    PermitEmptyPasswords no
    
    ClientAliveInterval 600   #--- 600초 (10분)
    ClientAliveCountMax 3     #--- 3번
    
    MaxAuthTries 6            #--- 6회 로그인 실패시 종료
    LoginGraceTime 2m    #--- 2분 이내 미로그인시 종료

systemctl  status  sshd
systemctl  restart  sshd
# systemctl  enable  sshd

#--- 방화벽 설정
apt  install  ufw
ufw  status

vi  /etc/ufw/ufw.conf
    ENABLED=yes               #--- 부팅시 자동 실행

iptables  -nL
ufw  enable
ufw  allow  3322/tcp          #--- Port 허용
# ufw  deny  22/tcp           #--- Port 차단
# ufw  delete  5              #--- 5번째 정책 삭제
ufw  status

#---     다음 명령어를 사용하여 Nano에 접속
ssh  obcon@192.168.0.782  -p 3322
 

Ollama 설치

#--- Olloma 설치
curl -fsSL https://ollama.com/install.sh | sh

vi  /etc/systemd/system/ollama.service
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0:11434"
    Environment="OLLAMA_KEEP_ALIVE=-1"
    Environment="OLLAMA_MAX_LOADED_MODELS=4"
systemctl  daemon-reload
systemctl  restart  ollama.service
systemctl  enable  ollama.service

# export  OLLAMA_HOST="0.0.0.0:11434"
# export  OLLAMA_KEEP_ALIVE=-1  #--- 24h, 60m, 60s
# export  OLLAMA_MAX_LOADED_MODELS=4
# ollama  serve

vi  ~/.ollama/config          #--- For MacOS
    OLLAMA_HOST=0.0.0.0:11434

vi  ~/.ollama/history         #--- 지금까지 실행한 질의 목록

systemctl  restart  ollama.service
netstat -an  |  grep  ' LISTEN '  |  grep  11434
ollama  ps

iptables  -nL
ufw  enable
ufw  allow  11434/tcp         #--- Port 허용
ufw  status

#--- API로 접속
# http://192.168.0.81:11434/
#     "Ollama is running" 이라고 표시됨

curl  http://192.168.0.81:11434/api/generate  -d  '{
  "model": "llama3.2:3b",
  "prompt":"Why is the sky blue?"
}'

curl  http://localhost:11434/api/chat  -d  '{
  "model": "llama3.2-vision",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

#--- To-Do: llama.cpp를 사용하여 구현할 것

 

설치 in Ubuntu 22.04


Reserved

 
systemctl  stop  udisks2.service
apt  install  libxml2-utils  simg2img  network-manager
apt  install  abootimg  sshpass  device-tree-compiler

설치 : 기타 환경 설정


필요한 경우에만 진행 한다.

 
#--- 한글 설정
apt  upgrade  ibus-hangul
shutdown  -h  now                       #--- 재기동 한다.

#--- 접속 키 생성
ssh-keygen  -t rsa  -f ~/.ssh/id_rsa

#--- XRDP (Remote Desktop Protocol) 설정
#---     Port : 3939/tcp
#---     대안 : VNC
apt  list  xrdp*
apt  install  xrdp
apt  install  xfce4

adduser  xrdp  ssl-cert

vi  /etc/xrdp/xrdp.ini
    [Globals]
    # port=3389
    port=9999

    [Xorg]
    # ip=127.0.0.1
    ip=0.0.0.0

vi  /etc/xrdp/startwm.sh
    test -x /etc/X11/Xsession && exec /etc/X11/Xsession
    exec /bin/sh /etc/X11/Xsession

    # test -x /usr/bin/startxfce4 && /usr/bin/startxfce4
    # exec /bin/sh /usr/bin/startxfce4

    unset DBUS_SESSION_BUS_ADDRESS
    unset XDG_RUNTIME_DIR
    
vi  /etc/xrdp/sesman.ini
    [Globals]
    ListenAddress=0.0.0.0
    ListenPort=3350
    
vi  ~bluestone/.xsessionrc
    # remove_apps=("thunderbird" "rhythmbox" "libreoffice-writer")
    remove_apps="$(thunderbird rhythmbox libreoffice-writer)"

ufw  allow  9999/tcp
ufw  allow  9999/udp
ufw  allow  3350/tcp
ufw  allow  3350/udp
ufw  allow from any to any port 9999 proto tcp
ufw  reload
ufw  status

systemctl  restart  xrdp
systemctl  enable  xrdp
# Window에서 원 격 데스크톱으로 연결 한다.
#     Session : Xorg
#     username : bluestone
#     password : 
# 주의: 모니터, Keyboard, mouse가 연결되어 있어야 XRDP 연결이 된다.

# "Error connecting to sesman: 127.0.0.1 port: 3350" 오류 발생시
apt  remove  xrdp
apt  install  tightvncserver
apt  install  xrdp

systemctl  restart  xrdp
systemctl  enable  xrdp

# 오류 로그 확인
cd  ~bluestone
tail -f  ~bluestone/.xsession-errors
 

NVMe에 설치

apt  install  nano
lsusb

ls  -alF  /dev/disk/by-partuuid/
#--- nvme0n1p1 (Partition 1)의 UUID(UUID_001)를 복사 한다.

#--- Partition 1을 mount 한다.
cd  /
mkdir  nvme
mount  /dev/nvme0n1p1  /nvme

vi  /media/${UserName}/${MountPoint}/boot/extlinux/extlinux.conf
    LABEL primary
          ......
          APPEND ${cbootargs} root=PARTUUID=UUID_001 rw rootwait rootfstype=ext...

#--- NVIDIA Jetpack 설치
apt  update
apt  upgrade
apt  install  nvidia-jetpack

참고 문헌


 
최종 수정일: 2025-04-05 20:01:21

이전글 :
다음글 :