Gömülü Sistemler··7 dk okuma
NVIDIA Jetson Orin NX Kurulum Rehberi: JetPack, SDK Manager ve İlk Ayarlar
Kutudan çıkan Orin NX'i uçuşa hazır bir tespit bilgisayarına çevirmenin tam yolu: flash, güç modları, bellek ve pip install torch'un neden çalışmadığı.
Kart geldi, HDMI’ı taktık, Ubuntu masaüstü açıldı. Terminale pip install torch ultralytics yazdık, kurulum sorunsuz bitti. Sonra torch.cuda.is_available() dedik ve False gördük. 157 TOPS’luk bir modülün üstünde CPU’da inference çalıştırıyorduk.
Bu, Jetson’a ilk kez dokunan hemen herkesin yaşadığı sahne. Sorun şu: Jetson bir “ARM tabanlı küçük Linux bilgisayar” değil. Kendi çekirdeği, kendi CUDA paketleme düzeni ve kendi PyTorch derlemeleri olan ayrı 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 aracımızın companion computer’ı olan Jetson Orin NX 16GB’ı kutudan çıkışından ilk YOLO inference’ına kadar götüren yolu anlatıyoruz. Amacımız NVIDIA dokümanını tekrarlamak değil; hangi kararın nerede verildiğini ve nerede vakit kaybedildiğini yazmak. Sürüm numaraları Temmuz 2026 itibarıyla geçerlidir; JetPack hattı hızlı ilerliyor, kuruluma başlamadan önce indirme sayfasını bir kez daha kontrol edin.
Orin NX ailenin neresinde?
Jetson tarafında modül (hesaplama kartı) ile taşıyıcı kart (carrier board) ayrıdır. Orin NX bir modüldür; Orin Nano geliştirme kitinin taşıyıcısına da takılabilir, üretici taşıyıcılarına da.
| Modül | GPU | CPU | Bellek | Bant genişliği | Güç zarfı |
|---|---|---|---|---|---|
| Orin Nano 8GB | 1024 çekirdek Ampere | 6× Cortex-A78AE | 8 GB LPDDR5 | 102 GB/s | 7–25 W |
| Orin NX 16GB | 1792 çekirdek Ampere | 8× Cortex-A78AE | 16 GB LPDDR5 | 102.4 GB/s | 10–40 W |
| AGX Orin 64GB | 2048 çekirdek Ampere | 12× Cortex-A78AE | 64 GB LPDDR5 | 204.8 GB/s | 15–60 W |
Orin NX 16GB’ı seçmemizin nedeni TOPS değil, bellek. Aynı kart üzerinde YOLO11m TensorRT motoru, RTSP çözücü, FastMosaic haritalama süreci ve ROS2 düğümleri aynı anda duruyor. 8 GB’lık bir modülde bu yığın swap’a düşüyor ve gecikme öngörülemez hale geliyor.
JetPack tam olarak ne paketliyor?
JetPack, Jetson’ın işletim sistemi + sürücü + hızlandırma kütüphaneleri paketidir. İçinde üç şey var: Jetson Linux (L4T, yani Linux for Tegra — çekirdek, bootloader ve BSP), CUDA yığını ve üstündeki AI kütüphaneleri.
En kritik nokta şu: CUDA, cuDNN ve TensorRT sürümlerini siz seçmiyorsunuz, JetPack seçiyor. Bir kütüphaneyi tek başına yükseltmek genelde 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 | var | var (7.2 ile geldi) |
JetPack 7.2, 1 Haziran 2026’da yayınlandı ve JetPack 7 hattına Orin ailesini ekledi. Yani 2026 itibarıyla Orin NX için iki canlı seçenek var:
- JetPack 6.x — ekosistem olgun. Üçüncü parti taşıyıcı kart BSP’leri, hazır wheel’ler ve forum çözümleri bu hat için yazılmış. Yarışmaya birkaç ay kala risk almak istemiyorsanız buradan devam edin.
- JetPack 7.2 — Ubuntu 24.04, CUDA 13, yeni çekirdek. Sıfırdan başlıyorsanız ve taşıyıcı kart üreticiniz desteklediğini açıkça söylüyorsa mantıklı.
Çalışan bir yığını yarışma öncesi büyük sürüm atlatmayın. Her JetPack majör geçişi, torch wheel’lerinden kamera sürücüsüne kadar her şeyi yeniden doğrulamayı gerektirir.
Depolama: NVMe mi, SD kart mı?
Orin NX modülünde eMMC yok. Bootloader ve donanım yapılandırması modül üzerindeki küçük QSPI flash’ta durur; kök dosya sistemi harici bir diske yazılır.
| Seçenek | Ne zaman | Not |
|---|---|---|
| NVMe SSD (M.2 Key M) | Uçuş donanımı, üretim | Tek makul seçim. Model ağırlıkları, log ve swap için hız ve dayanıklılık gerekir |
| microSD | Sadece Orin Nano devkit ile hızlı deneme | Yazma dayanıklılığı düşük; swap koymayın |
| USB depolama | Geçici kurtarma | Titreşimli platformda konnektör riski |
M.2 slotu PCIe’dir; SATA M.2 diskler çalışmaz. Uçuşta 1080p RTSP kaydı + görüntü karesi loglaması yapıyorsanız disk kapasitesini uçuş süresi × bit hızı üzerinden hesaplayın, “128 GB yeter herhalde” demeyin.
SDK Manager ile flash
SDK Manager, NVIDIA’nın host bilgisayarda çalışan flash aracıdır. Windows’ta çalışmaz.
Host gereksinimleri: Ubuntu x64 22.04 veya 20.04 ve boş disk. NVIDIA, tam bir dağıtım 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 geçişi (passthrough) sorun çıkarma eğilimindedir — mümkünse gerçek makine veya ikinci bir disk kullanın.
Akış:
- Host’a SDK Manager’ı kurun ve NVIDIA hesabıyla giriş yapın.
- Jetson’ı force recovery moduna alın. Geliştirme kitinde bu, FC_REC pinini GND’ye köprüleyip kartı resetlemek demektir (Orin Nano devkit taşıyıcısında buton başlığında 9–10 pinleri köprülüyken 7–8’e kısa dokunuş). Üretici taşıyıcılarda pin düzeni farklıdır, kendi kılavuzunuza bakın.
- Host’a USB-C ile bağlayın ve doğrulayın:
lsusb | grep -i nvidia
# Örn: Bus 001 Device 012: ID 0955:7323 NVIDIA Corp. APX
- SDK Manager’da hedef donanım olarak Orin NX modülünü, ardından JetPack sürümünü seçin.
- Depolama aygıtı olarak NVMe’yi işaretleyin. Bu adımı atlamak, sonradan diske geçmek için ek uğraş demektir.
- Flash bitince kart yeniden başlar ve Ubuntu ilk kurulum ekranını (OEM config) gösterir: dil, kullanıcı, saat dilimi. SDK Manager bu noktada oluşturduğunuz kullanıcı adı/parolayı ister ve kalan SDK bileşenlerini ağ üzerinden kurar.
Flash sırasında USB kablosunu değiştirmeyin ve host’u uyutmayın. Yarıda kesilen bir flash, kartı tekrar recovery moduna almanızı gerektirir.
İlk açılış: doğrulama listesi
Kart açıldığında önce neyin kurulduğunu teyit edin:
# JetPack / L4T sürümü
cat /etc/nv_tegra_release
sudo apt-cache show nvidia-jetpack | grep -m1 Version
# CUDA derleyicisi
nvcc --version # yoksa: export PATH=/usr/local/cuda/bin:$PATH
# Eksik SDK bileşenlerini tamamla
sudo apt update && sudo apt install nvidia-jetpack
nvidia-smi çıktısı Jetson’da masaüstü GPU’lardaki gibi davranmaz; GPU durumu için aşağıdaki jtop’u kullanın.
Güç modları ve jetson_clocks
Jetson varsayılan olarak en yüksek performans modunda gelmez. nvpmodel aracı CPU/GPU frekanslarını ve aktif çekirdek sayısını bir güç bütçesine göre sınırlar; ayar güç döngüsünden sonra da kalıcıdır.
sudo nvpmodel -q # mevcut modu göster
sudo nvpmodel -m 0 # MAXN / MAXN SUPER (sınırsız)
sudo jetson_clocks # saatleri tavana sabitle (yeniden başlatmada sıfırlanır)
sudo jetson_clocks --show
Orin NX’te 10W, 15W, 20W, 40W referans modları ve sınırsız MAXN SUPER modu bulunur. JetPack 6.2 ile gelen Super mod, Orin NX 16GB’da INT8 dense performansını 50 TOPS’tan 78 TOPS’a çıkarıyor (8GB modelde 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çeklemeyi kapatıp saatleri tavanda tutar. jetson_clocks gecikme değişkenliğini (jitter) azaltır ama fanı ve sıcaklığı yükseltir. MAXN SUPER “sınırsız” demek olsa da modül TDP’yi aşarsa yine throttle olur — yani yetersiz soğutmayla en yüksek modu seçmek, orta modda kalmaktan daha yavaş sonuç verebilir.
Bunu masada değil, gövde içinde ölçün. Kapalı bir drone gövdesinde hava akışı yoktur; bizim uçuş profilimizde 640 piksel tam-kare inference’ta hedeflediğimiz 15–20 FPS’in belirleyicisi model değil, sıcaklık kararlılığıydı.
jtop ile izleme
jetson-stats, Jetson için yazılmış izleme paketidir (Temmuz 2026 itibarıyla 7.2.0). GPU kullanımı, güç modu, sıcaklıklar, fan ve motorlar (NVENC/NVDEC/DLA) tek ekranda görünür.
sudo pip3 install -U jetson-stats
jtop # kurulumdan sonra çalışmazsa oturumu kapatıp açın
Bellek: zram, swap ve headless
JetPack varsayılan olarak zram (sıkıştırılmış RAM içi swap) kurar. Büyük model dışa aktarımı (özellikle TensorRT motoru derlenirken) belleği zorlarsa NVMe üzerinde gerçek bir swap dosyası daha güvenlidir:
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 /etc/fstab
Uçuş yapılandırmasında masaüstüne ihtiyaç yok. Grafik arayüzü kapatmak yaklaşık 800 MB RAM geri kazandırır:
sudo systemctl set-default multi-user.target # kalıcı headless
sudo init 3 # sadece bu oturum için
Sık düşülen tuzaklar
1. pip install torch — en pahalı hata. PyPI’daki torch ve torchvision paketleri Jetson’ın ARM64 + CUDA yığınıyla uyumlu değildir. Kurulum başarılı görünür, import torch çalışır, ama torch.cuda.is_available() False döner. Ultralytics dokümanı bunu açıkça uyarıyor. Doğrusu, JetPack sürümünüze karşılık gelen ön-derlenmiş wheel’i kurmaktır:
# JetPack 6.x (Python 3.10) — sürüm/URL'leri Ultralytics dokümanından teyit edin
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torch-2.10.0-cp310-cp310-linux_aarch64.whl
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torchvision-0.25.0-cp310-cp310-linux_aarch64.whl
JetPack 7.2’de yol farklı: CUDA 13 için resmi indeks kullanılıyor (pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130). Yani “Jetson’da şu komut” diye ezberlenecek tek bir satır yok — JetPack sürümü komutu belirliyor.
2. Wheel derdine hiç girmemek. En dayanıklı yol Docker. Ultralytics JetPack başına hazır imaj yayınlıyor:
sudo docker run -it --ipc=host --runtime=nvidia ultralytics/ultralytics:latest-jetson-jetpack6
--runtime=nvidia olmadan konteyner GPU’yu görmez.
3. Doğrudan PyTorch ile uçmak. .pt ağırlığını TensorRT motoruna çevirmek Jetson’da anlamlı hızlanma sağlar. İlk derleme dakikalar sürer, o yüzden bunu sahada değil önceden yapın — ve motoru hangi kartta derlediyseniz o kartta kullanın, motorlar taşınabilir değildir.
yolo export model=best.pt format=engine quantize=16 imgsz=640
4. NumPy ve sistem Python’unu ezmek. Jetson’da bazı NVIDIA paketleri sistem Python’una bağlıdır. sudo pip install ile global ortamı kurcalamak yerine sanal ortam kullanın; sürüm çakışmalarının büyük kısmı burada doğuyor.
5. Kararı masada vermek. Güç modu, fan eğrisi ve FPS ölçümlerinin hepsi gövde kapalıyken, gerçek sıcaklıkta tekrarlanmalı.
Pratik özet
- JetPack sürümünü önce seçin, sonra her şeyi ona göre kurun. CUDA/cuDNN/TensorRT sürümleri size ait değil, JetPack’e ait. Yarışmaya yakın majör sürüm atlamayın.
- NVMe’yi flash anında seçin. Orin NX’te eMMC yok; sonradan diske geçmek ek iş demek.
nvpmodel -m 0+jetson_clocks’u standart uçuş öncesi adımınız yapın, ama modu gövde içi sıcaklıkla doğrulayın — throttle, düşük moddan daha kötü sonuç verebilir.pip install torchyapmayın. JetPack’e uygun wheel ya da resmi Docker imajı; ilk iştorch.cuda.is_available()ile doğrulayın.- Kurulumu betikleştirin. Kartı ikinci kez flash’lamak zorunda kalacaksınız; adımları bir
setup.shiçinde tutmak o günü saatlerden dakikalara indiriyor.
- jetson
- jetpack
- orin-nx
- tensorrt
- gomulu-sistemler