How to build ubuntu18.04 image and install it through USB flash disk instead of using SDKManager

developing kit: jetson xavier NX 16GB module
OS: ubuntu18.04

What I want to do:

  1. Download the ubuntu18.04 image or OS source code for jetson xavier NX 16GB module, build the OS source code to OS image
  2. Flash the image to USB flash disk
  3. Install OS for jetson from USB flash disk, just like install OS for PC.
  4. Do not use SDKManager and USB cable.

Where Could I get relative Docs or video tutorial.

Thanks very much

This is not a complete answer, but you will find this of interest…

Unlike PCs, Jetsons do not have a BIOS. Instead, they have the equivalent in software. On eMMC models, that content is in partitions of the eMMC. On SD card models, that content is in the module’s QSPI memory. The only method of installing that BIOS equivalent is via the recovery mode Jetson connected to the correct Linux PC software (the driver package, which is what JetPack/SDK Manager is the GUI front end to). Incidentally, actual BIOS hardware implies more expensive hardware, more power consumption, and physical weight and volume increases. I think most embedded systems do not have a BIOS.

Boot content is also on eMMC or QSPI. You cannot get around that since there is no BIOS. Until you get to UEFI software (which abstracts the hardware and presents a uniform interface for other boot software) you have no chance of not using flash methods to update the bootloader and BIOS equivalents. Xavier and Orin have the ability to use UEFI in the L4T R34.x+, but old style Nano (which is a TX1 SoC) does not have that ability (Nano only has security and critical bug updates, and is otherwise end of life…they are still manufactured and sold, but software will not evolve in terms of features).

Without the BIOS (which is really a kind of micro operating system) the flash more or less creates a “pointer” to the boot content. That pointer is set while naming the target during flash (the driver package; indirectly JetPack/SDK Manager).

The recovery mode Jetson itself is just a custom USB device. The driver package is the only driver there is which understands that custom USB device. There is no ability to access this via other methods, e.g., no ethernet availability to change that pointer. To boot to an external device you must at least once use the USB cable and flash in recovery mode (which changes that pointer). From then on you could in theory just update the USB device. Before that there is no chance to change this.

Incidentally, if you had a custom board with a JTAG debugger, maybe you could do this, but you’d still be wired, and the hardware would cost around $10k USD or more, and require a host PC, along with a lot of experience on topics most people never even touch.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.