Packaging customization system

Hello, we are currently working on several Jetson products, such as AGX Orin, Orin NX/Nano, which have their own baseboards and customized systems.
May I ask how to package the files required for burning after completing system customization? Does each version have a corresponding operation method? Such as R35.4.1 and R36.3.

Hi @kepts,

I’m not quite sure I understand your question. Could you please clarify the situation a bit more? What is your final goal with this task?

I look forward to your response!

Jose Morera
Embedded Software Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com

Hello! Perhaps my expression was not clear enough.
Because we are our own customized board, the system is adjusted based on the official package. When debugging is completed, the system needs to be packaged and sent to the customer or production line.
But in fact, there should be a lot of files in the entire system package that are not needed when burning the system. Is there a way to only package the files needed when burning the system?

Hi @kepts ,

Could you check if this is the method you’re looking for To clone a Jetson device and flash?

The flash script can create identical copies from active boards, which is really helpful for setting up one board and duplicating its exact file system to others. In the latest versions, the copy will include only the file system partition, referred to as the APP partition.

Using this command, you can extract the APP partition data and save it under the name <CLONE_NAME>:

sudo ./flash.sh -r -k APP -G <CLONE_NAME> <BOARD> mmcblk0p1

Let me know if this method works for you!

Thank you for your response.
This method has been tried before, but it can only copy the file system. The configuration of other corresponding custom boards still needs to be burned based on the modified files, which is equivalent to packaging the required files for burning and copying the generated img. Moreover, this method occupies a large amount of storage, and the larger the img, the slower the burning of the system, which reduces production efficiency.
Is there any other way to directly package and compile system files in the host?
thank.

Hi @kepts ,

You might want to consider using Yocto instead of Jetpack. This way, you can handle all your development on the host and create a customized image with everything you want to integrate into the Jetson board. Yocto supports NVIDIA Jetson boards through the meta-tegra layer. For more information, you can check out the following page: Yocto Support for NVIDIA Jetson Platforms.

Hope this helps!

Orin NX requires an external NVMe SSD anyways, and also for Orin AGX I suggest using an external NVME SSD over the internal eMMC due to much higher speed and more erase/write cycles.

If you use an external SSD you only have to flash the QSPI boot rom over the USB 2 connection. The SSD can be imaged externally, and this is a much faster process than via USB2. You can use tools like the standard dd dump or Clonezilla for that. There are even external USB C docks for M.2 SSDs - with the only caveat that USB-C is hot-pluggable while M.2 is not, so always unplug USB first before swapping the SSD.

And regarding creating a minimal image: Jetpack uses Ubuntu, which is a Debian Linux “fork”. Debian uses a method named “bootstrapping” for creating install images from the package repository. Read this:
https://wiki.debian.org/Debootstrap
Ubuntu should be still enough Debian like for this to work as well.

Thank you for your reply.
Our clients require the use of jetpack, so it may not be feasible to adopt it.

Thank you for your reply.
Do you mean copying directly based on the burned machine? Because the current method we use is to package and develop the host’s system for burning.

Yes, I mean taking out the SSD from the burned machine and duplikating it.
Then you only need to flash the QSPI, which is much faster sihce the QSPI is only 64Mbit.

See Orin NX mass deployment flashing

Hello, fchkjwlsq, may I bother you again.
I have tried the method of flashing QSPI on the module and then copying NVME, which is feasible. But may I ask, is there a packaging method for QSPI?

No, Sir.

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