L4T cloud init


I’ve looking to l4t Linux_for_Tegra folder and I wonder, if previously a first boot, can it modified to add cloud-init program and user-data yaml file.

Or is there anything similar to this for Jetsons which I don’t know.

hello masip85 ,

may I understand your actual use-case in details?

For example, if I need to install a few jetsons, I don’t like to install it from sdk in each one of these,and after that configure wifi,vpn,packages,users…

Is much more productive to use this method:

including something similar to cloud init at first start up,leaving machine configured.

hello masip85,

actually, you’re able to deploy the flash without SDKManager, please refer to Flashing to Multiple Jetson Devices.

you should copy system.img from the filesystem partition you want to flash from. clone an APP partition can include all your configurations, you then use that back-up image to flash other platform to apply your customization.
please refer to developer guide and check the To clone a Jetson device and flash session.

Maybe I don’t understand your reply correctly,but:

That method has a big counter-part. I need to update the backup anytime there is a library update or I want to do minor modifications, in order to has it prepared for future installations in machines backup has to updated too.

Version control in different machines is quite more difficult too.

Those steps requires an amount of time cloud-init doesn’t need.

Being scriptable is also much more friendly to share across an organization.

hello masip85,

could you please share your actual use-case in detail,
please also have some examples for reference, thanks

You can imagine as many use cases as you want.

What if different machines are distributed trough an entire city or different city? You’ve got to find different skillset people who knows how to flash it following the way you explain (which is shortened at the video I linked). Using the ubuntu + cloud-init way that person just has to flash,connect usb, and boot system.

Imagine years pass by, and you want to use or reproduce configuration of the gold image you’ve got today. That image has to be stored for the years. With the ubuntu way you don’t need it to reproduce your system. Just ubuntu version and user-data.

But just imagine, across a organization with different jetsons in different cities, you want to change vpn or wifi password. You would have to enable a not ideal secure remote connection to do it yourself because in a non-headless ubuntu mode are not for everyone across a company or project. Each machine cannot have a technician aside, but it can have a person who reflashes it with a new user-data cloud-init file just booting it.

I would have

I have never used cloud init, and don’t know a lot about it. I’ve worked with NFS and PXE booting, but that was long ago. Could you describe in detail which part of the content you want on the actual Jetson, and if this is an eMMC model or SD card model? Also, do you simply want cloud available, or do you want to actually mount something in cloud as a rootfs partition?

Maybe I don’t explain myself correctly. I need it out of the cloud. When you have the physical hardware available.

Sometimes @JerryChang , that hardware is available for our IOT clients, and we don’t want them have to deal complicated instructions for installing hardware with the OS tuned: vpn, wifi, docker enabled, portainer, ssh keys, cuda versions …

Besides, is a lot of work if you have a handful of clients, with a handful of edge machines. Yo have to explain or guide them many times to do all this. Time consuming work. But in a prosper future, with different edge machines,with different configurations… I see a lot of work which cloud init would solve.