GÖREV KAYDI

GÖREV KAYDI

KAYIT AÇIK

ATILIM UAV · YER KONTROL İSTASYONU

GÖREV KAYDI / DETAY

Arşiv

CANLI · OKUMA MODU

Gömülü Sistemler

NVIDIA Jetson Orin NX Kurulumu: JetPack, SDK Manager ve İlk Açılış

NVIDIA Jetson Orin NX Kurulumu: JetPack, SDK Manager ve İlk Açılış

FIG. 01

KAYIT KÜNYESİ

Kategori

Gömülü Sistemler

TARİH

TÜM KAYITLAR

Kart geldi, HDMI'ı taktık, Ubuntu masaüstü açıldı. Terminale pip install torch ultralytics yazdık, kurulum tek seferde tamamlandı. Ardından torch.cuda.is_available() çağırdık ve False döndü. 157 TOPS'luk bir modülün üzerinde çıkarımı CPU'da koşuyorduk.

Jetson'a ilk kez dokunan hemen herkes bu sahneyi yaşıyor. Sorun şu: Jetson, "ARM tabanlı küçük bir Linux bilgisayarı" değil. Kendi çekirdeği, kendi CUDA paketleme düzeni ve kendi PyTorch derlemeleri olan, başlı başına bir platform. x86 masaüstünde işe yarayan alışkanlıkların yarısı burada sessizce yanlış sonuç veriyor: hata vermiyor, sadece yavaş çalışıyor.

Bu yazıda, SUAS 2026 hava aracımızın companion computer'ı (eşlik bilgisayarı) olan Jetson Orin NX 16GB'ı kutudan çıkışından ilk YOLO çıkarımına kadar adım adım anlatıyoruz. NVIDIA'nın dokümantasyonunu tekrar etmek gibi bir niyetimiz yok; her kararın gerçekte nerede verildiğini ve zamanın nerede kaybolduğunu kayda geçirmek istiyoruz. Sürüm numaraları Temmuz 2026 itibarıyla geçerli; JetPack tarafı hızlı ilerliyor, o yüzden başlamadan önce indirme sayfasını bir kez daha kontrol edin.

Orin NX ailenin neresinde duruyor?

Jetson tarafında modül (hesaplama kartı) ile taşıyıcı kart (carrier board) birbirinden ayrı iki şey. Orin NX bir modül; Orin Nano geliştirici kitinin taşıyıcı kartına da, üçüncü parti bir taşıyıcıya da aynı rahatlıkla oturuyor.

Modül

GPU

CPU

Bellek

Bant genişliği

Güç zarfı

Orin Nano 8GB

1024 çekirdekli Ampere

6× Cortex-A78AE

8 GB LPDDR5

102 GB/s

7–25 W

Orin NX 16GB

1792 çekirdekli Ampere

8× Cortex-A78AE

16 GB LPDDR5

102.4 GB/s

10–40 W

AGX Orin 64GB

2048 çekirdekli Ampere

12× Cortex-A78AE

64 GB LPDDR5

204.8 GB/s

15–60 W

Orin NX 16GB'ı TOPS için değil, bellek için seçtik. Aynı kartın üzerinde YOLO11m TensorRT engine'i, RTSP çözücüsü, FastMosaic haritalama süreci ve ROS2 düğümleri aynı anda koşuyor. 8 GB'lık bir modülde bu yığın swap'e düşüyor ve gecikme öngörülebilir olmaktan çıkıyor.

JetPack tam olarak neyi paketliyor?

JetPack; Jetson'ın işletim sistemi + sürücü + hızlandırma kütüphanesi paketi. İçinde üç şey var: Jetson Linux (L4T, yani Linux for Tegra; çekirdeği, bootloader'ı ve BSP'yi kapsar), CUDA yığını ve bunun üzerine oturan yapay zekâ kütüphaneleri.

En kritik nokta: CUDA, cuDNN ve TensorRT sürümlerini siz seçmezsiniz; JetPack seçer. Tek bir kütüphaneyi kendi başına yükseltmek çoğu zaman yığını bozar.



JetPack 6.2.2

JetPack 7.2

Jetson Linux

36.5

39.2

Ubuntu

22.04

24.04

Çekirdek

5.15

6.8

CUDA

12.x hattı

13.2.1

cuDNN

8.x/9.x hattı

9.20.0

TensorRT

10.x hattı

10.16.2

Orin desteği

evet

evet (7.2 ile geldi)

JetPack 7.2, 1 Haziran 2026'da yayınlandı ve Orin ailesini JetPack 7 hattına taşıdı. Yani 2026 itibarıyla Orin NX için iki geçerli seçenek var:

  • JetPack 6.x: olgun bir ekosistem. Üçüncü parti taşıyıcı kart BSP'leri, hazır derlenmiş wheel'ler ve forum çözümleri hep bu hat için yazıldı. Yarışmaya birkaç ay kalmışsa ve risk almak istemiyorsanız burada kalın.

  • JetPack 7.2: Ubuntu 24.04, CUDA 13, daha yeni bir çekirdek. Sıfırdan başlıyorsanız ve taşıyıcı kart üreticiniz açıkça desteklediğini söylüyorsa mantıklı.

Çalışan bir yığını yarışmadan hemen önce ana sürüm atlatmayın. Her JetPack ana sürüm geçişi, torch wheel'lerinizden kamera sürücünüze kadar her şeyi yeniden doğrulamak demek.

Depolama: NVMe mi, SD kart mı?

Orin NX modülünde eMMC yok. Bootloader ve donanım yapılandırması modülün üzerindeki küçük bir QSPI flash'ta duruyor; kök dosya sistemi harici bir sürücüye yazılıyor.

Seçenek

Ne zaman

Notlar

NVMe SSD (M.2 Key M)

Uçuş donanımı, üretim

Tek mantıklı seçenek. Model ağırlıkları, loglar ve swap; hem hıza hem dayanıklılığa ihtiyaç duyuyor

microSD

Yalnızca Orin Nano devkit üzerinde hızlı denemeler

Yazma dayanıklılığı düşük; üzerine swap koymayın

USB depolama

Geçici kurtarma

Titreşen bir platformda konnektör riski

M.2 yuvası PCIe; SATA M.2 diskler çalışmaz. Uçuşta 1080p RTSP kaydının yanında kare başına görüntü logu da tutuyorsanız, "128 GB herhâlde yeter" demek yerine sürücü boyutunu uçuş süresi × bit hızı üzerinden hesaplayın.

SDK Manager ile flash'lama

SDK Manager, NVIDIA'nın flash'lama aracı ve bir host bilgisayarda çalışıyor. Windows üzerinde çalışmıyor.

Host gereksinimleri: Ubuntu x64 22.04 ya da 20.04 ve boş disk alanı. NVIDIA tam bir kurulum için host tarafında yaklaşık 27 GB, hedef tarafında 16 GB boş alan istiyor; pratikte 60 GB ayırın. Sanal makinede USB passthrough sorun çıkarmayı seviyor, o yüzden mümkünse doğrudan donanım ya da ikinci bir disk kullanın.

Akış:

  1. SDK Manager'ı host'a kurun ve NVIDIA hesabınızla giriş yapın.

  2. Jetson'ı force recovery moduna alın. Geliştirici kitinde bu, FC_REC pinini GND'ye jumper'lamak ve kartı resetlemek demek (Orin Nano devkit taşıyıcısında: buton header'ındaki 9–10 pinleri jumper'lıyken 7–8'i kısa süre kısa devre yapın). Üçüncü parti taşıyıcılar farklı pin dizilimi kullanıyor, kendi kılavuzunuza bakın.

  3. USB-C üzerinden host'a bağlayın ve doğrulayın:

lsusb | grep -i nvidia
# e.g. Bus 001 Device 012: ID 0955:7323 NVIDIA Corp. APX
lsusb | grep -i nvidia
# e.g. Bus 001 Device 012: ID 0955:7323 NVIDIA Corp. APX
  1. SDK Manager'da hedef donanım olarak Orin NX modülünü, ardından JetPack sürümünü seçin.

  2. Depolama aygıtı olarak NVMe işaretleyin. Bu adımı atlarsanız sonradan sürücüye taşınmak fazladan iş çıkarır.

  3. Flash bittiğinde kart yeniden başlar ve Ubuntu'nun ilk açılış ekranını (OEM config) gösterir: dil, kullanıcı, saat dilimi. Bu noktada SDK Manager az önce oluşturduğunuz kullanıcı adını/parolayı ister ve kalan SDK bileşenlerini ağ üzerinden kurar.

Flash sırasında USB kablosunu değiştirmeyin, host'un uyku moduna girmesine izin vermeyin. Yarıda kesilen bir flash, kartı yeniden recovery moduna almak demek.

İlk açılış: doğrulama kontrol listesi

Kart açıldığında önce gerçekte neyin kurulduğunu teyit edin:

# JetPack / L4T version
cat /etc/nv_tegra_release
sudo apt-cache show nvidia-jetpack | grep -m1 Version

# CUDA compiler
nvcc --version    # if missing: export PATH=/usr/local/cuda/bin:$PATH

# Fill in the missing SDK components
sudo apt update && sudo

# JetPack / L4T version
cat /etc/nv_tegra_release
sudo apt-cache show nvidia-jetpack | grep -m1 Version

# CUDA compiler
nvcc --version    # if missing: export PATH=/usr/local/cuda/bin:$PATH

# Fill in the missing SDK components
sudo apt update && sudo

Jetson'da nvidia-smi çıktısı masaüstü GPU'lardaki gibi davranmaz; GPU durumu için aşağıda anlattığımız jtop aracını kullanın.

Güç modları ve jetson_clocks

Jetson en yüksek performans modunda gelmez. nvpmodel aracı, bir güç bütçesine karşılık CPU/GPU frekanslarını ve aktif çekirdek sayısını sınırlar; ayar güç kesintisinden sonra da korunur.

sudo nvpmodel -q            # show the current mode
sudo nvpmodel -m 0          # MAXN / MAXN SUPER (unrestricted)
sudo jetson_clocks          # pin the clocks to their ceiling (resets on reboot)
sudo jetson_clocks --show
sudo nvpmodel -q            # show the current mode
sudo nvpmodel -m 0          # MAXN / MAXN SUPER (unrestricted)
sudo jetson_clocks          # pin the clocks to their ceiling (resets on reboot)
sudo jetson_clocks --show

Orin NX'te 10W, 15W, 20W ve 40W referans modlarının yanında sınırsız MAXN SUPER modu var. JetPack 6.2 ile gelen Super modu, Orin NX 16GB üzerinde INT8 dense performansını 50 TOPS'tan 78 TOPS'a çıkarıyor (8GB versiyonda 35 → 58 TOPS).

İkisi arasındaki fark önemli: nvpmodel bütçeyi belirler; jetson_clocks ise o bütçe içinde dinamik frekans ölçeklemesini kapatır ve saatleri tavanda tutar. jetson_clocks gecikme değişkenliğini (jitter) azaltır ama fanı ve sıcaklığı yukarı çeker. MAXN SUPER "sınırsız" anlamına gelse de modül TDP'yi aştığında yine throttle eder; yani yetersiz soğutmayla en üst modu seçmek, orta bir modda kalmaktan daha yavaş sonuç verebilir.

Bunu tezgâhta değil, gövdenin içinde ölçün. Kapalı bir drone gövdesinde hava akışı yoktur; bizim uçuş profilimizde 640 piksel tam-kare çıkarımda 15–20 FPS hedefimizi tutturup tutturamayacağımızı belirleyen şey model değil, termal kararlılık oldu.

jtop ile izleme

jetson-stats, özellikle Jetson için yazılmış bir izleme paketi (Temmuz 2026 itibarıyla 7.2.0). GPU kullanımı, güç modu, sıcaklıklar, fan ve donanım birimleri (NVENC/NVDEC/DLA) tek ekranda görünüyor.

sudo pip3 install -U jetson-stats
jtop            # if it does not run right after install, log out and back in
sudo pip3 install -U jetson-stats
jtop            # if it does not run right after install, log out and back in

Bellek: zram, swap ve headless

JetPack varsayılan olarak zram'i (RAM içinde sıkıştırılmış swap) kurar. Büyük bir model export'u (özellikle TensorRT engine derlemek) belleği zorluyorsa, NVMe üzerinde gerçek bir swap dosyası daha güvenli seçenektir:

sudo systemctl disable nvzramconfig
sudo fallocate -l 16G /ssd/16GB.swap
sudo mkswap /ssd/16GB.swap
sudo swapon /ssd/16GB.swap
echo '/ssd/16GB.swap none swap sw 0 0' | sudo tee -a

sudo systemctl disable nvzramconfig
sudo fallocate -l 16G /ssd/16GB.swap
sudo mkswap /ssd/16GB.swap
sudo swapon /ssd/16GB.swap
echo '/ssd/16GB.swap none swap sw 0 0' | sudo tee -a

Uçuş yapılandırmasının masaüstüne ihtiyacı yok. GUI'yi kapatmak yaklaşık 800 MB RAM geri kazandırıyor:

sudo systemctl set-default multi-user.target   # persistent headless
sudo init 3                                     # this session only
sudo systemctl set-default multi-user.target   # persistent headless
sudo init 3                                     # this session only

Düşülen tuzaklar

Tuzak 1. pip install torch: en pahalı hata. PyPI'daki torch ve torchvision paketleri Jetson'ın ARM64 + CUDA yığınıyla uyumlu değil. Kurulum başarılı görünür, import torch çalışır, ama torch.cuda.is_available() şunu döndürür: False. Ultralytics dokümantasyonu bu konuda açıkça uyarıyor. Doğru hamle, JetPack sürümünüze karşılık gelen hazır derlenmiş wheel'i kurmak:

# JetPack 6.x (Python 3.10) — confirm the versions/URLs against the Ultralytics docs

# JetPack 6.x (Python 3.10) — confirm the versions/URLs against the Ultralytics docs

JetPack 7.2'de yol farklı: CUDA 13 için resmî indeksi kullanıyorsunuz (pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130). Yani ezberlenecek tek bir "Jetson'da komut budur" satırı yok; komutu JetPack sürümü belirliyor.

Tuzak 2. Wheel işine hiç girmemek. En dayanıklı yol Docker. Ultralytics her JetPack sürümü için hazır bir imaj yayınlıyor:

sudo docker run -it --ipc=host --runtime
sudo docker run -it --ipc=host --runtime

Eğer --runtime=nvidia belirtmezseniz konteyner GPU'yu görmez.

Tuzak 3. Doğrudan PyTorch ile uçmak. Bir .pt ağırlığını TensorRT engine'ine çevirmek Jetson'da gerçek bir hızlanma sağlıyor. İlk derleme dakikalar sürüyor; bu yüzden sahada değil, önceden yapın ve engine'i hangi kartta derlediyseniz o kartta çalıştırın, çünkü engine'ler taşınabilir değil.

yolo export model=best.pt format=engine quantize=16 imgsz=640
yolo export model=best.pt format=engine quantize=16 imgsz=640

Tuzak 4. NumPy'ı ve sistem Python'ını ezmek. Jetson'da bazı NVIDIA paketleri sistem Python'ına bağlı. Global ortamı sudo pip install ile karıştırmak yerine sanal ortam kullanın; sürüm çakışmalarının büyük kısmı tam burada doğuyor.

Tuzak 5. Kararı tezgâhta vermek. Güç modu, fan eğrisi ve FPS ölçümlerinin hepsi, gövde kapalıyken ve gerçek çalışma sıcaklığında tekrarlanmalı.

Pratik özet

  • Önce JetPack sürümünü seçin, sonra her şeyi onun etrafına kurun. CUDA/cuDNN/TensorRT sürümleri size değil, JetPack'e ait. Yarışmaya yakın ana sürüm atlamayın.

  • Flash sırasında NVMe'yi seçin. Orin NX'te eMMC yok; sonradan sürücüye taşınmak fazladan iş demek.

  • Uçuş öncesi nvpmodel -m 0 + jetson_clocks adımını standart hâle getirin, ama modu gövde içi sıcaklıklara göre doğrulayın, çünkü throttling size daha düşük bir moddan daha kötü sonuç verebilir.

  • Asla pip install torch çalıştırmayın. JetPack'inize uyan wheel'i ya da resmî Docker imajını kullanın; ilk iş olarak torch.cuda.is_available() ile doğrulayın.

  • Kurulumu betikleştirin. Kartı ikinci kez flash'layacaksınız; adımları bir setup.sh içinde tutmak o günü saatlerden dakikalara indiriyor.

©2026 ATILIM UAV TEAM

©2026 ATILIM UAV TEAM