🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🔧 AI Nachrichten ChatGPT automatically logged out [Fix](12.09.2026 um 17:09 Uhr)
⚠️ Malware / Trojaner / VirenWindows 11 just dropped the tool ransomware abused, Microsoft says don’t restore WMIC(10.09.2026 um 20:11 Uhr)
🪟 Windows TippsServertimeout in Outlook über 10 Minuten verlängern(12.09.2026 um 15:10 Uhr)
🔧 AI Nachrichten Stealing AI Reasoning Traces(08.09.2026 um 12:20 Uhr)
🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🔧 AI Nachrichten ChatGPT automatically logged out [Fix](12.09.2026 um 17:09 Uhr)
⚠️ Malware / Trojaner / VirenWindows 11 just dropped the tool ransomware abused, Microsoft says don’t restore WMIC(10.09.2026 um 20:11 Uhr)
🪟 Windows TippsServertimeout in Outlook über 10 Minuten verlängern(12.09.2026 um 15:10 Uhr)
🔧 AI Nachrichten Stealing AI Reasoning Traces(08.09.2026 um 12:20 Uhr)

🔧 Programmierung 🕛 vor 2 Monaten 12 Min Lesezeit
0

Headless Mode on NVIDIA Jetson AGX Orin 64GB with JetPack 7.2

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

Tags: jetson jetpack-7.2 headless nomachine ubuntu-24.04 embedded-ai edge-ai









Overview



This guide walks through enabling fully headless operation on the NVIDIA Jetson AGX Orin Developer Kit running JetPack 7.2. After completing these steps, the device boots without any display, keyboard, or mouse — accessible entirely via SSH for terminal use and NoMachine for full GUI access.




Why NoMachine only?

JetPack 7.2 ships GNOME 46 on Ubuntu 24.04. GNOME 46 requires DRI3/GPU acceleration to render its compositor (Mutter). NoMachine's virtual display does not expose DRI3, causing gnome-shell to start but render nothing — only a black screen or bare wallpaper. XFCE4 has no compositor dependency, works perfectly in virtual displays, and is the stable choice for remote GUI access on this platform.










Tested Environment
















































Component Value
Hardware NVIDIA Jetson AGX Orin Developer Kit 64GB
JetPack 7.2-b187
L4T r39.2 (Jetson Linux 39.2)
OS Ubuntu 24.04.4 LTS
Kernel 6.8.12-tegra
CUDA 13.2.1
Python 3.12.3
NoMachine 9.7.3
Remote host Windows 11 (same LAN via Ethernet)








Prerequisites




  • Jetson AGX Orin with JetPack 7.2 flashed and first-boot wizard completed

  • Static IP assigned or known (this guide uses 192.168.1.100 as example)

  • A monitor and keyboard connected for this setup session only — they will not be needed after

  • OpenSSH client installed on the remote host (Windows: built-in; Linux/macOS: native)

  • NoMachine client installed on the remote host:





    CODE
    cd ~/Downloads

    # Check the current version at the URL above and adjust the filename
    wget "https://web9001.nomachine.com/download/9.7/Arm/nomachine_9.7.3_1_arm64.deb"

    sudo dpkg -i nomachine_9.7.3_1_arm64.deb
    sudo apt --fix-broken install -y

    # The installation output will show warnings about CUPS (printer support)
    # These are expected and harmless — NoMachine installs correctly

    # Verify the server started
    sudo /usr/NX/bin/nxserver --status
    # Expected: Running server at port: 4000









    Configure NoMachine for XFCE4






    CODE
    # Find and edit node.cfg
    sudo nano /usr/NX/etc/node.cfg






    Search for DefaultDesktopCommand and VirtualDesktopCommand — add or uncomment:




    CODE
    DefaultDesktopCommand /usr/bin/startxfce4
    VirtualDesktopCommand /usr/bin/startxfce4
    DisplayGeometry 1920x1080
    AllowDesktopResize 1









    CODE
    # Restart NoMachine to apply changes
    sudo /usr/NX/bin/nxserver --restart
    sudo /usr/NX/bin/nxserver --status









    Enable NoMachine Autostart






    CODE
    sudo tee /etc/systemd/system/nomachine-headless.service << 'EOF'
    [Unit]
    Description=NoMachine Headless Server
    After=network.target NetworkManager.service

    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/usr/NX/bin/nxserver --restart
    ExecStop=/usr/NX/bin/nxserver --stop

    [Install]
    WantedBy=multi-user.target
    EOF

    sudo systemctl daemon-reload
    sudo systemctl enable nomachine-headless
    sudo systemctl start nomachine-headless












    Step 10 — Firewall




    Note: UFW is not installed by default in JetPack 7.2 on Ubuntu 24.04.





    CODE
    sudo apt install ufw -y









    Fix for UFW + Kernel 6.8 (nftables conflict)



    Ubuntu 24.04 with kernel 6.8 uses nftables as the backend, but UFW expects iptables-legacy. Without this fix, sudo ufw enable will produce errors like RULE_APPEND failed (No such file or directory).




    CODE
    # Switch to iptables-legacy
    sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
    sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

    # Verify
    sudo iptables --version
    # Expected: iptables v1.8.x (legacy)









    Apply Firewall Rules






    CODE
    sudo ufw default deny incoming
    sudo ufw default allow outgoing

    sudo ufw allow 22/tcp comment "SSH"
    sudo ufw allow 4000/tcp comment "NoMachine NX"

    # Add additional ports as needed for your stack:
    # sudo ufw allow 3389/tcp comment "XRDP"
    # sudo ufw allow 11434/tcp comment "Ollama"
    # sudo ufw allow 8000/tcp comment "vLLM"
    # sudo ufw allow 3000/tcp comment "Open WebUI"
    # sudo ufw allow 8888/tcp comment "Jupyter"

    sudo ufw enable
    # Type 'y' when prompted

    sudo ufw status numbered









    Alternative: nftables (if UFW issues persist)



    If UFW continues to fail even after the iptables-legacy fix, use nftables directly — it is the native firewall on Ubuntu 24.04:




    CODE
    sudo apt install nftables -y

    sudo tee /etc/nftables.conf << 'EOF'
    #!/usr/sbin/nft -f
    flush ruleset

    table inet filter {
    chain input {
    type filter hook input priority 0; policy drop;
    ct state established,related accept
    iif "lo" accept
    ip protocol icmp accept
    ip6 nexthdr icmpv6 accept
    tcp dport 22 accept comment "SSH"
    tcp dport 4000 accept comment "NoMachine"
    # Add more ports here as needed
    }
    chain forward { type filter hook forward priority 0; policy accept; }
    chain output { type filter hook output priority 0; policy accept; }
    }
    EOF

    sudo systemctl enable nftables
    sudo systemctl start nftables
    sudo nft list ruleset












    Step 11 — First Reboot Test






    CODE
    sudo reboot






    Disconnect the physical monitor and keyboard. After approximately 30 seconds, from the remote host:




    CODE
    # Test 1: Network is up
    ping 192.168.1.100

    # Test 2: SSH is reachable
    ssh jetson

    # Test 3: NoMachine port is open
    # Linux/macOS:
    nc -zv 192.168.1.100 4000

    # Windows PowerShell:
    Test-NetConnection -ComputerName 192.168.1.100 -Port 4000






    If all three pass, the Jetson is running fully headless.









    Step 12 — Connect via NoMachine




    1. Open NoMachine on the remote host

    2. Click Add → Protocol: NX → Host: 192.168.1.100 → Port: 4000

    3. Authentication: Password

    4. Click Connect → accept the host fingerprint

    5. Enter your Jetson username and password

    6. When prompted for the session type → select "Create a new virtual desktop"

    7. XFCE4 desktop loads with full mouse, keyboard, and 1920×1080 resolution









    Step 13 — CUDA PATH Fix



    In JetPack 7.2, the CUDA compiler (nvcc) is installed but not in the default PATH. Add it:




    CODE
    # Install CUDA development tools if not present
    sudo apt install nvidia-cuda-dev -y

    # Add CUDA to PATH permanently
    echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
    source ~/.bashrc

    # Verify
    nvcc --version
    # Expected: Cuda compilation tools, release 13.2, ...












    Verification Checklist



    Run this block after a clean reboot to confirm the headless setup is complete:




    CODE
    echo "=== Headless Mode Verification ==="

    echo -n "Network (static IP): "
    hostname -I | grep -q "192.168.1.100" && echo "OK" || echo "FAIL"

    echo -n "SSH server: "
    systemctl is-active ssh

    echo -n "Boot target (no GDM): "
    systemctl get-default

    echo -n "GDM status: "
    systemctl is-active gdm 2>/dev/null || echo "inactive (correct)"

    echo -n "NoMachine port 4000: "
    sudo ss -tlnp | grep -q ":4000" && echo "listening" || echo "NOT listening"

    echo -n "XFCE4 installed: "
    which startxfce4 && echo "OK" || echo "NOT FOUND"

    echo -n "~/.xsession → XFCE4: "
    grep -q "startxfce4" ~/.xsession && echo "OK" || echo "NOT configured"

    echo -n "Wayland disabled: "
    grep -q "WaylandEnable=false" /etc/gdm3/custom.conf && echo "OK" || echo "NOT disabled"

    echo -n "Xorg dummy driver: "
    test -f /etc/X11/xorg.conf.d/30-tegra-headless.conf && echo "OK" || echo "NOT configured"

    echo -n "CUDA PATH: "
    nvcc --version 2>/dev/null | grep -o "release [0-9.]*" || echo "NOT in PATH — run: source ~/.bashrc"

    echo "=== Done ==="






    Expected output (all lines should show OK or the correct active status):




    CODE
    === Headless Mode Verification ===
    Network (static IP): OK
    SSH server: active
    Boot target (no GDM): multi-user.target
    GDM status: inactive (correct)
    NoMachine port 4000: listening
    XFCE4 installed: /usr/bin/startxfce4 OK
    ~/.xsession → XFCE4: OK
    Wayland disabled: OK
    Xorg dummy driver: OK
    CUDA PATH: release 13.2,
    === Done ===












    Troubleshooting






    NoMachine connects but shows a black screen



    This typically means gnome-shell was launched instead of XFCE4.




    CODE
    # Check ~/.xsession
    cat ~/.xsession
    # Must contain: exec startxfce4

    # Check node.cfg
    grep -E "DefaultDesktop|VirtualDesktop" /usr/NX/etc/node.cfg
    # Must point to /usr/bin/startxfce4

    # Fix and restart
    cat > ~/.xsession << 'EOF'
    #!/bin/bash
    unset DBUS_SESSION_BUS_ADDRESS
    unset XDG_RUNTIME_DIR
    exec startxfce4
    EOF
    chmod +x ~/.xsession
    sudo /usr/NX/bin/nxserver --restart






    Then disconnect and reconnect from the NoMachine client, choosing "Create a new virtual desktop".









    SSH unreachable after reboot (but ping works)



    The SSH port is open but the connection times out. SSH may be down, or UFW may be blocking it.




    CODE
    # Via a physical connection or recovery
    sudo systemctl status ssh
    sudo systemctl start ssh
    sudo ufw status
    sudo ufw allow 22/tcp












    Network not up after headless reboot



    The Ethernet connection may require a user session to activate. Verify the connection.permissions fix:




    CODE
    nmcli connection show "Wired connection 1" | grep permissions
    # Must show: connection.permissions: (empty)

    # If not empty, reapply
    sudo nmcli connection modify "Wired connection 1" connection.permissions ""
    sudo nmcli connection up "Wired connection 1"












    UFW enable fails with RULE_APPEND errors (kernel 6.8)






    CODE
    sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
    sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
    sudo ufw disable
    sudo ufw reset
    sudo ufw enable












    nvcc not found after installing nvidia-cuda-dev






    CODE
    # The PATH change requires sourcing the profile
    source ~/.bashrc

    # Or specify the full path directly
    /usr/local/cuda/bin/nvcc --version

    # Verify the binary exists
    ls /usr/local/cuda/bin/nvcc












    Summary




































































    Step Action Result
    1–3 System update + packages + hostname Base system ready
    4 Static IP + connection.permissions=""
    Network up without login
    5 SSH + key auth Secure remote terminal
    6 Disable Wayland + dummy Xorg driver X11 display at 1920×1080
    7
    multi-user.target (no GDM)
    NoMachine owns the display
    8 XFCE4 + ~/.xsession
    Desktop environment ready
    9 NoMachine server + node.cfg
    Virtual GUI accessible
    10 UFW + iptables-legacy fix Firewall active
    11 Reboot test without monitor Fully headless
    12 NoMachine client → virtual desktop Full GUI via NX
    13 CUDA PATH
    nvcc accessible


    After completing all steps, the Jetson AGX Orin operates entirely without a physical display. SSH provides terminal access and NoMachine provides full XFCE4 desktop access — both available immediately after any reboot, without any physical interaction with the device.






    Platform: NVIDIA Jetson AGX Orin Developer Kit 64GB · JetPack 7.2 (L4T r39.2) · Ubuntu 24.04 LTS · NoMachine 9.7.3

    Vollständiger Original-Bericht
    Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
    ↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
The Gemini desktop app is now available for Windows
1 Quelle
ChatGPT automatically logged out [Fix]
1 Quelle
Windows 11 just dropped the tool ransomware abused, Microsoft says don’t restore WMIC
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Headless Mode on NVIDIA Jetson AGX Orin 64GB with JetPack 7.2

Thematisch verwandte Begriffe: Headless, Mode, NVIDIA, Jetson · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...