Flashing without sdkmanager or Ubuntu

I am searching for alternatives for flashing Jetson devices. So far I have created my own image and set things up for my use case using a procedure similar to https://elinux.org/Jetson/AGX_Xavier_Alternative_II_For_Cloning. There are a couple issues as there doesn’t seem to be a great way to handle post installation related things like configuring an NVME drive and setting up other software. I can write something to detect first boot easily enough.

The larger problem to solve is flashing the device without Ubuntu or without a host PC. Ideally, I would like to take an image from a Jetson Xavier, and flash it onto another via USB or some other process.

As far as I can tell, this is not possible as the flash process does many things. I found someone else asking the same question some time ago here https://forums.developer.nvidia.com/t/flash-internal-emmc-without-host-pc/46494. This also suggests that it isn’t possible, but that post is rather old so I figured I would ask again.

See (this is about installing optional packages without SDK Manager):

Thanks for the information. I came up with a process to stage a “golden” device and use that to generate an image that will execute several scripts upon first boot to do things like partitioning the attached drive, configure the device, and install other software.

Thinking through ideas here, if we assume that we can always flash the device once would there be any alternatives? Could I modify the boot process to boot from the attached SSD and image that instead of flashing the EMMC every time? This seems like a process that would work from a flash drive. The partitions on the EMMC would not be flashed, but that might be fine for most updates.

Someone else could probably provide more information on that, but generally speaking, you won’t be able to flash directly to an alternate boot device. More or less what you get is some content on the eMMC set to point to a different boot media, e.g., to a USB hard disk. However, the content on that external media is usually something you would have to set up and is not normally passed through to that external device when attached to the Jetson during a boot.

On the other hand, it is common to take an existing image from some other source, edit this, and use it on alternate media after a dd copy. More options related to this have been added over time, especially with the most recent L4T R32.3.1. If you are using an older release on Xavier (see “head -n 1 /etc/nv_tegra_release” to examine version), then I would advise that you’ll have more success with the most recent release.

I do not know when the next L4T release will occur, but when this occurs, the newer release would also probably give more options related to external boot media (CBoot is used, and CBoot has been getting various U-Boot features added in over time…perhaps the next release would be useful to you, but I have no knowledge of when this would occur).

what if to try restoring dd image to eMMC from booted Xavier using the raw image e.g. at sdcard,usb-hdd or via ssh?
Technically it might work