What Went Wrong
A Brutally Honest Account of Setting Up the Jetson Orin Nano Super Headlessly
By Ammar
This is the companion document to the main setup guide. That guide gives you the clean, correct path. This document tells you every mistake made along the way — why we made them, and what we learned.
If you are debugging a stuck setup or just want to understand the underlying system better, this is the document to read.
Flashing a JetPack 7 ISO Instead of a JetPack 6.2 Zip
What happenedThe NVIDIA JetPack downloads page now prominently features JetPack 7, which is the latest release. We downloaded the first thing that appeared and flashed it to the SD card.
Why it was wrongJetPack 7 is only for the brand new Jetson AGX Thor hardware. It does not support the Orin Nano at all. The image is distributed as a bootable .iso meant to be flashed to a USB drive and used as an installer, not written directly to an SD card like a Raspberry Pi image. Etcher will happily flash an ISO to an SD card without complaining.
What happened when we booted itThe Jetson powered on, the green LED lit up, the fan ran, and nothing happened. No display output, no serial console, no USB ethernet. It appeared completely dead.
The correct approachJetPack 6.2 is the correct and current version for the Orin Nano Super as of early 2026. JetPack 7 support for Orin is planned for Q2 2026. Download directly from the JetPack 6.2 SDK page and look specifically for the SD card image zip, not an ISO.
Lesson: Always verify the file extension. A .zip file is an SD card image. An .iso file is a bootable installer for a different purpose.
Assuming the New Orin Nano Super Shipped With Compatible Firmware
What happenedEven after getting the correct JetPack 6.2 zip and flashing it properly, the Jetson booted to a black screen with a blinking cursor.
Here is the honest truth: I knew the firmware update step existed. But I had just bought a brand new Jetson Orin Nano Super — the newest revision of the board — and I figured surely NVIDIA would have shipped it with firmware that could boot their current OS release. It seemed reasonable that they would have updated the factory firmware. So I skipped the JetPack 5.1.3 step and went straight to JetPack 6.2.
I was going in completely blind on top of that — no monitor, no keyboard. If something was wrong, I had no way to see it. Just a powered-on device that either worked or did not.
I was wrong.The Orin Nano Super still ships from the factory with old QSPI firmware that cannot boot JetPack 6.x. NVIDIA documents this on the getting started page but it is easy to miss if you go straight to the downloads. The firmware update step is not optional, even on brand new units as of early 2026.
What we thought the problem wasWe spent time assuming it was a bad flash, wrong image, display issue, or USB-C port confusion. All of those were red herrings. The firmware was the only issue.
The correct approachBefore flashing JetPack 6.2 you must first flash JetPack 5.1.3, boot it, let the firmware updater run silently for 5 minutes, power cycle, watch the QSPI update complete, then power off and swap to the JetPack 6.2 SD card. This two-card process is annoying but unavoidable on a fresh unit.
Lesson: Read the getting started guide for your specific board before doing anything, even if you think the new revision would have fixed it. The firmware requirement is clearly stated. We just assumed our way past it.
Assuming USB-C Serial Would Work Immediately
What happenedWe tried to use the USB-C port for serial console access before the firmware was updated and before the correct image was running. Nothing appeared when we ran ls /dev/cu.usbmodem* on the Mac.
Why it happenedThe USB device mode stack that creates the serial port, ethernet interface, and mass storage device is part of the Linux OS that boots from the SD card. If the OS is not booting (because of incompatible firmware or wrong image), none of those USB interfaces exist. The Jetson just appears as a powered-on device with no USB presence at all.
What we thought the problem wasWe suspected the USB-C cable was charge-only, the wrong port was being used, or macOS drivers were missing. We spent significant time on these theories.
The actual issueThe firmware was incompatible, so the OS never fully booted, so the USB device mode never initialized.
Lesson: If ls /dev/cu.usbmodem* returns nothing and no new device appears after booting, the OS is not running. Debug the boot process first before debugging connectivity.
Trying to Modify the SD Card Filesystem From macOS
What happenedWe attempted to write preseed files and systemd service files directly to the ext4 Linux partition on the SD card from the Mac using debugfs.
Why we tried itWe wanted to pre-configure SSH and user accounts so the Jetson would be ready to SSH into on first boot, without needing any interaction.
What went wrongSeveral things. debugfs is a low-level tool that bypasses normal filesystem safety mechanisms. It does not update directory checksums or handle all filesystem metadata correctly, which left the filesystem in an error state. We also accidentally wrote a script over a location that shared a filesystem block with /usr/lib/aarch64-linux-gnu/libweston-13.so.0, corrupting both files. The symlinks we created had wrong file types recorded in directory entries.
The consequenceThe filesystem ended up with errors that prevented resize2fs from running online, even as root. We had to run e2fsck from the Mac to repair it before the resize could proceed:
sudo /opt/homebrew/opt/e2fsprogs/sbin/e2fsck -f /dev/disk6s1What actually workedThe serial console. It was always there, always available, and required zero filesystem modification. The entire debugfs approach was unnecessary.
Lesson: Do not use debugfs to modify a production Linux filesystem from macOS unless you know exactly what you are doing. The serial console gives you a real shell to configure things properly from inside the running system.
Not Checking the L4T-README Volume
What happenedOnce the Jetson was booting with the correct firmware and JetPack 6.2, ping worked at 192.168.55.1 but SSH on port 22 was being refused. We spent a long time trying to fix SSH by modifying the SD card from the Mac.
What we missedThe Jetson had mounted a USB mass storage device on our Mac called L4T-README. This drive contained a file called README-usb-dev-mode.txt which documented exactly how to connect to the Jetson over USB — including the serial console method, the SSH method, and the exact commands to use on both Mac and Linux.
The key line we missed for over an hour:
Linux for Tegra implements a single USB serial port, and presents a login prompt on the port.And for Mac:
Mac OS creates a device such as /dev/tty.usbmodem1232 for the serial port.The answer was sitting in a file mounted on our desktop the entire time.
Lesson: When a device mounts a README drive, read it immediately. Hardware manufacturers put the most important connectivity and debugging information in those files precisely because developers skip them.
Not Generating SSH Host Keys Before Starting SSH
What happenedAfter getting into the serial console and trying to start SSH with systemctl start ssh, it failed with an exit code error. The status output showed it had been failing and retrying.
Why it happenedThe Jetson's root filesystem was in a minimal state because oem-config never completed. SSH requires host keys in /etc/ssh/ to start. These keys are normally generated during oem-config but since we bypassed it they did not exist.
The fix
ssh-keygen -AThis generates all required host key types in one command. After running it, systemctl start ssh worked immediately.
Lesson: If SSH fails to start on a fresh minimal system, always try ssh-keygen -A first. Missing host keys are the most common reason SSH refuses to start on a freshly configured system.
Not Expanding the Partition Before Running apt upgrade
What happenedAfter getting SSH working and WiFi connected, we ran sudo apt upgrade -y and it immediately failed with:
E: You don't have enough free space in /var/cache/apt/archives/Why it happenedThe JetPack 6.2 SD card image creates a root partition of approximately 21GB regardless of the actual size of your SD card. On a 128GB card, 107GB of completely unallocated space sat unused because the partition table had not been expanded.
The fix
sudo apt install cloud-guest-utils -y
sudo growpart /dev/mmcblk0 1
sudo resize2fs /dev/mmcblk0p1Additional complicationBecause we had used debugfs to modify the filesystem (see Mistake 4), the filesystem had errors that blocked the online resize. The kernel logs showed:
EXT4-fs warning: There are errors in the filesystem, so online resizing is not allowedWe had to power off, remove the SD card, run e2fsck from the Mac to repair the filesystem, then put it back and retry.
Lesson: Always expand the partition immediately after first boot, before doing anything else. Make it the very first command you run after getting SSH access. Do not wait until apt tells you it is out of space.
Assuming JetPack 7 Was Available for the Orin Nano
What happenedWe questioned whether JetPack 6.2 was the correct version to use given that it was 2026 and JetPack 7 had been announced.
The realityJetPack 7 was announced and released for the Jetson AGX Thor platform in late 2025. Support for the Jetson Orin series in JetPack 7 is planned for Q2 2026. As of March 2026, JetPack 6.2 is the latest and only production version available for the Orin Nano Super. The main NVIDIA downloads page shows JetPack 7 prominently because Thor is the newest hardware, but the Orin Nano has its own separate SDK page.
Lesson: Always check the SDK page specific to your hardware rather than the generic JetPack page. NVIDIA maintains separate pages per product family and the generic page will show you whatever is newest for their flagship hardware, which may not apply to your board.
The Single Biggest Lesson
After everything, the approach that required the least effort and had the highest reliability was:
- Boot the correct image with firmware updated first
- Connect USB-C
- Run
ls /dev/tty.usbmodem* - Run
screen /dev/tty.usbmodemXXX 115200 - Configure everything from the shell
Every attempt to pre-configure the SD card from macOS using debugfs added complexity, introduced filesystem errors, and ultimately was unnecessary. The serial console was the right tool from the beginning. We just did not know it was there until we read the README that had been mounted on our desktop the entire time.
This document reflects a real debugging session setting up an NVIDIA Jetson Orin Nano Super Developer Kit in March 2026 on macOS Sequoia with a MacBook Pro M2.
Ready for the clean guide?
Now that you know what not to do, the main setup guide walks you through the correct process from start to finish — firmware update, headless boot, USB serial console, SSH, WiFi, partition expansion, and ROS 2 Humble.
Read the Full Setup Guide