FIG. 01
KAYIT KÜNYESİ
Kategori
Gömülü Sistemler
TARİH
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ış:
SDK Manager'ı host'a kurun ve NVIDIA hesabınızla giriş yapın.
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.
USB-C üzerinden host'a bağlayın ve doğrulayın:
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 işaretleyin. Bu adımı atlarsanız sonradan sürücüye taşınmak fazladan iş çıkarır.
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:
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.
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.
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:
Uçuş yapılandırmasının masaüstüne ihtiyacı yok. GUI'yi kapatmak yaklaşık 800 MB RAM geri kazandırıyor:
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 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:
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.
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_clocksadı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ş olaraktorch.cuda.is_available()ile doğrulayın.Kurulumu betikleştirin. Kartı ikinci kez flash'layacaksınız; adımları bir
setup.shiçinde tutmak o günü saatlerden dakikalara indiriyor.
