Jetson remote desktop: NoMachine, VNC, and headless setup
Key Insights
- NoMachine is the best Jetson remote desktop option — install the ARM64 DEB from nomachine.com and the NX server starts automatically; no configuration needed
- Headless without a monitor: an HDMI dummy plug (~$5) is the fastest fix; for software-only, use
xserver-xorg-video-dummywith a virtual screen config - JetPack 6 ships with Wayland by default — you must set
WaylandEnable=falsein/etc/gdm3/custom.confbefore NoMachine will connect - VNC is noticeably slower on WiFi — use
-depth 16to cut bandwidth roughly in half; for anything beyond occasional access, NoMachine is worth the extra setup - SSH X11 forwarding is not a full remote desktop — use it for launching single apps like
jtop, not for a full session
Which remote desktop option actually works on Jetson?
There are three real options: NoMachine (NX protocol), VNC, and SSH X11 forwarding. Each has a different sweet spot.
| Method | Protocol | Performance | Headless support | Best for |
|---|---|---|---|---|
| NoMachine | NX | Excellent | Yes (with dummy display) | Daily dev work |
| TigerVNC | RFB | Moderate | Yes (Xvfb or dummy plug) | Occasional access |
| SSH X11 | X11 over SSH | Poor for GUI-heavy | No | Running single apps |
NoMachine wins for regular development. VNC is fine if you only connect occasionally and have a decent network. SSH X11 forwarding is useful for launching a specific GUI tool — not for a full desktop session.
How to install NoMachine on Jetson Orin and Nano
NoMachine provides an ARM64 DEB that installs cleanly on all current Jetson modules. Go to nomachine.com/download, select Linux, ARM (64-bit), DEB format, and grab the package.
# Transfer to Jetson (or download directly on the device)
scp nomachine_*.deb user@jetson-ip:/home/user/
# Install
sudo dpkg -i nomachine_*.deb
The NX server starts automatically after install. Verify it’s running:
sudo /usr/NX/bin/nxserver --status
On your laptop, install the NoMachine client for macOS or Windows from the same download page. Open it, click New, enter your Jetson’s IP, and connect with your Linux username and password. The free tier covers everything you need for development.
JetPack 6 Wayland issue: JetPack 6 ships with GDM3 running Wayland by default. NoMachine expects an X session. Check what you’re running:
echo $XDG_SESSION_TYPE
If it says wayland, edit GDM3’s config. (If you’ve run into other JetPack 6 surprises during bring-up, the JetPack 6 USB enumeration failure post covers another common one we see in the field.)
sudo nano /etc/gdm3/custom.conf
Under [daemon], add or uncomment:
[daemon]
WaylandEnable=false
Then restart GDM3:
sudo systemctl restart gdm3
Now echo $XDG_SESSION_TYPE should return x11. Reconnect with NoMachine and you’ll have a full desktop.
Setting up a Jetson headless without a monitor
This is where most people get stuck. NVIDIA’s GPU driver needs a valid display signal to initialize. Without a monitor, X won’t start, and NoMachine has nothing to connect to.
Option 1: HDMI dummy plug (recommended)
A ~$5 HDMI dummy plug from Amazon tricks the GPU into thinking a monitor is connected. It provides a fake EDID, the driver initializes normally, and X starts without any configuration changes.
Plug it in before booting. That’s it. This is what we use on all our development rigs.
Option 2: Software virtual display
If you can’t use a dummy plug, install the Xorg dummy driver:
sudo apt install xserver-xorg-video-dummy
Create a virtual screen config:
sudo nano /etc/X11/xorg.conf.d/20-dummy.conf
Section "Device"
Identifier "Dummy Device"
Driver "dummy"
VideoRam 256000
EndSection
Section "Screen"
Identifier "Dummy Screen"
Device "Dummy Device"
Monitor "Dummy Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080"
EndSubSection
EndSection
Section "Monitor"
Identifier "Dummy Monitor"
HorizSync 28.0-80.0
VertRefresh 48.0-75.0
Modeline "1920x1080" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
EndSection
JetPack 6 note: If there’s already an /etc/X11/xorg.conf at the root level, it conflicts with the .d/ directory config. Rename it first:
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
Reboot, and the dummy display will come up instead.
Setting up VNC on Jetson
VNC works, but it’s slower than NoMachine because it copies raw framebuffer data over the network. On WiFi, the lag becomes noticeable quickly.
Install TigerVNC:
sudo apt install tigervnc-standalone-server tigervnc-common
Set a VNC password:
vncpasswd
Start the VNC server. The :1 means display 1 (port 5901):
vncserver :1 -geometry 1920x1080 -depth 16
Using -depth 16 instead of 24 cuts bandwidth roughly in half — a meaningful difference on slower connections.
To stop the server:
vncserver -kill :1
For persistent VNC across reboots, create a systemd service. Connect from any VNC client (RealVNC Viewer, TigerVNC Viewer) to jetson-ip:5901.
When VNC makes sense: You have gigabit ethernet and connect rarely. For anything beyond occasional access, the NoMachine setup is worth the extra 10 minutes.
SSH X11 forwarding
This isn’t a full remote desktop. It lets you run individual GUI apps on the Jetson and have their windows appear on your laptop — useful for jtop with a GUI, or a quick gedit session.
On the Jetson, enable X11 forwarding in SSH:
sudo nano /etc/ssh/sshd_config
Find or add:
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
Restart SSH:
sudo systemctl restart ssh
Connect from your laptop:
# Linux
ssh -X user@jetson-ip
# macOS — requires XQuartz (xquartz.org) installed
ssh -Y user@jetson-ip # -Y for trusted forwarding, avoids permission errors
Then launch any GUI app:
jtop # or gedit, or anything else
The app window opens on your laptop. Performance is slow for anything graphical — stick to lightweight tools.
JetPack version notes
The setup differs slightly depending on which JetPack you’re running. Check yours with:
cat /etc/nv_tegra_release
- JetPack 5.x (Orin, Xavier): Xorg by default. NoMachine installs and connects without the Wayland step.
- JetPack 6.x (Orin): GDM3 + Wayland by default. Add
WaylandEnable=falseto/etc/gdm3/custom.confbefore connecting with NoMachine. - JetPack 4.x (Nano, Xavier NX): Xorg. Same as JP5. Check
/etc/gdm3/custom.confto confirm Wayland isn’t enabled.
NVIDIA’s JetPack SDK documentation has the full release notes for each version if you need to verify what’s included in your specific build. If you’re also debugging a carrier board that won’t boot, our Jetson carrier board boot troubleshooting guide covers the six root causes we see most often.
Frequently Asked Questions
What is the best remote desktop software for NVIDIA Jetson?
NoMachine. Install the ARM64 DEB from nomachine.com, run sudo dpkg -i, and the NX server starts automatically. The NX protocol handles bandwidth constraints much better than VNC’s raw framebuffer approach. The free tier is enough for development use.
How do I run Jetson headless without a monitor?
Buy a $5 HDMI dummy plug on Amazon. It gives the GPU a valid EDID to initialize against and X starts normally. For a software-only solution, install xserver-xorg-video-dummy and add a virtual screen config to /etc/X11/xorg.conf.d/. On JetPack 6, delete any conflicting root-level xorg.conf after adding the new config.
Does NoMachine work on Jetson Orin?
Yes. Download the ARM64 DEB from nomachine.com and install it with sudo dpkg -i. On JetPack 6, check echo $XDG_SESSION_TYPE first. If you’re on Wayland, set WaylandEnable=false in /etc/gdm3/custom.conf and restart GDM3 before connecting.
Why is my VNC connection to Jetson slow or laggy?
VNC copies raw framebuffer data across the network. It works fine on gigabit but degrades on WiFi. Use -depth 16 instead of 24 to reduce bandwidth, or lower the resolution. If responsiveness still matters, switch to NoMachine, which handles limited bandwidth much better.
How do I set up SSH X11 forwarding on Jetson?
Set X11Forwarding yes in /etc/ssh/sshd_config, restart SSH with sudo systemctl restart ssh, then connect with ssh -X username@jetson-ip. macOS users need XQuartz installed and should use ssh -Y for trusted X11 forwarding.
ProventusNova helps hardware teams get Jetson-based products to market faster. If you’re dealing with a stubborn setup issue or need ongoing embedded Linux support, talk to our team.