How can Factory and customs flash our Customized system?

I have customized system based on L4T 32.7.3 (Customized content contain bootloader,kernel and rootfs) to adapt my customized carried board.
Now I want to generate a completed image for Factory and customs.
What should I do?

We don’t want them to see our source code,and need easy way to use usb cable to flash our system.

What‘s more, the version are JetPack 4.6.3 L4T-32.7.3

Hi Xzz,

What’s the factory and custom flash?
It sounds depending on what you want to implement for these two kinds of image.
For factory image, does it mean with the minimal content to boot up the board?
For custom image, does it mean with all SDK components or specific package installed?

Hi,KevinFFF,
thank you for reply.

Actually there are the same request.
We provide customized system to our customer/factory, and then they need flash the system in the SOM.
So we should pack our customized system to an image file and provide it to them.
But I dont know how to do,

It seems you can just use the clean L4T R32.7.3 (but with necessary modification for your custom carrier board) as factory image to make sure the board can boot up successfully.

Then, you can refer to the instruction (To clone a Jetson device and flash) to clone your customized system as customer image. Just restore that image to other boards.

Hi, KevinFFF,

We have a lot of customized changes in the kernel. How can we generate the “factory image” we wouldn’t provide our source code to factory.

In addition, we found backup-restore tools in the develop guide.
Maybe this tool can meet our needs,I want to try it, but cannot find it in the 4.6.3 SDK,
how can I use thie tool ?

You don’t need to provide the source to factory, you just need to provide custom BSP package(Linux_for_Tegra/). The dtb file and images are included.

Yes, the l4t_backup_restore.sh is unavailable for JP4 because it would call l4t_initrd_flash.sh which is used for JP5.

If you are using internal eMMC, I think the previous instruction of clone and restore is the similar one.

Hi, KevinFFF,

yes, we are using internal eMMC, can you give us some suggestion how to use “the previous instruction of clone and restore is the similar one” to finish our request?

I mean the following link I just shared.
Then, you can refer to the instruction (To clone a Jetson device and flash) to clone your customized system as customer image. Just restore that image to other boards.

Clone:

$ sudo ./flash.sh -r -k APP -G clone.img <board> mmcblk0p1

Restore:

$ sudo ./flash.sh -r <board> mmcblk0p1

Hi, KevinFFF,

These two command can only backup and restore system.img
How can I backup and restore cboot(bootloader) or kernel?

What’s more ,this method will provide our dtb file , and it can be analyzed

Do you have any modification in bootloader and kernel?

Or you could refer to the Linux_for_Tegra/README_Massflash.txt to generate mfi packages through nvmassflashgen.sh.

Hi, KevinFFF,

yes,we have bootloader and kernel modification, in order to adapt our customized carried board.

thank you for reply, I will try it later!

Hi, KevinFFF,

I try this tool and it seems works ok, thank you for help!

But I have a question:
I found this tool use Linux_for_terga/rootfs as system.img.

I have clone the customized roots in the board with the command

sudo ./flash.sh -r -k APP -G test.img jetson-xavier-nx-devkit-emmc mmcblk0p1

I want to flash test.img instead of default rootfs.

How can I finish it with the nvmassflashgen.sh?

I try to replace system.img in the mfi directory and then flash:

cp test.img mfi_jetson-xavier-nx-devkit-emmc/system.img
sudo ./nvmflash.sh --showlogs

and I found my customized modifications is exist, so it looks ok.

Will there be any other issues with this method?

normally, adding -r parameter in flash script means using current system.img.
For your current result, it looks fine to me.

Thank you for reply!
If there are any issues in the future, I will provide feedback again,

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