First time Jetson TX2 User - A few questions

Hi all,

Basically I have a client who is using a Jetson TX2 device for their product, and unfortunately I could not personally build / deploy to the device as I am not in the same location.

What would be the best option for me to be able to build and deploy to the Jetson device remotely?

I am very new to this - I just started last month with the device - and would love to get some pointers into the right direction.

Looking forward for some answers / help, thanks.

Just some comments to aid, not necessarily an answer.

Each Jetson has a possible release version. The L4T release version can be found via:

head -n 1 /etc/nv_tegra_release

There are many partitions in the eMMC, but only one is the root file system (rootfs). You cannot mix and match a rootfs from a different L4T version versus the other partitions. Those other partitions are for booting, the rootfs is the end user file system. You need to know which release he is using, and then base your updates on that.

There are different methods for updating a kernel and device tree depending on which release is used. No recommendations for that can be made without knowing the release. On the other hand, if you are just updating programs in the root file system, then updating only this isn’t too hard. You will need to be able to state whether the device tree or other boot environment is being updated or customized.

The rootfs itself can be cloned. A raw clone can be loopback mounted, examined, or modified. The raw clone is the size of the rootfs, and so it is probably around 15GB. Not easy to email.

Normal cloning and flash requires physical access since it uses the micro-B USB cable for flash (ethernet is used only for additional packages after a flash or at any future date). Whether or not you can get by with dd instead of flash depends on many things. We’ll need to know the nature of what is updated, the current L4T release, and any previous modifications or physical access the customer might have. Include whether the carrier board is the developer kit or some third party carrier.


Thanks for the answer, but there are a lot of terms and concepts that are new to me in this environment.

Would you mind helping my be up to speed with the feasibility of my plan?

  1. Create an Ubuntu virtual machine
  2. Setup and install necessary APIs/libraries to match the Jetson TX2 environment.
  3. Develop and code in the Ubuntu virtual machine.
  4. Copy the compiled files into the actual Jetson TX2 device.

Is the above possible? If so, is there a guide in performing the 2nd step?

There is no support for using an Ubuntu virtual machine on a host PC to interact with the Jetson itself. Flash and certain details typically fail when using a VM host. There are people who get it to work with some effort.

A VM to emulate a Jetson (such as via QEMU) is something I’ve never seen work. I can’t help on that, but someone who has tried to do this may be able to help.

Typically one would cross compile on a host PC and run on a Jetson. Nsight eclipse is part of the tool set JetPack can install on a host PC, plus cross compile tools. Much more support is available to do this.

Ordinary file copy is trivial if you have ethernet set up. The “scp” (ssh copy) command more or less gives the host an ability to copy to a Jetson as if it is a local file. There may be special cases, e.g., if updating a kernel or device tree on recent L4T releases, which is not so trivial…it just depends on what you are doing. You can ask about a specific use-case and it’ll be easier to give a useful answer. An example is to copy a file from host to Jetson:

# from host, I'm pretending the IP address of the Jetson is
scp /where/ever/it/is/SomeFile.txt nvidia@

You’d be prompted for the nvidia password (or if copying to some other account that password). If you set up SSL keys you won’t even be prompted for a password. For development I unlock the root account, set up keys, and then relock the root account…as a result my regular user can scp even to root account without any effort.

The “Document” download with the version of L4T you run has information on cross compile steps and other tools. There will be no documents on any sort of VM since it is not officially supported. You can check your L4T version via “head -n 1 /etc/nv_tegra_release”.

Almost forgot: Adding the NVIDIA packages is via JetPack. Just uncheck flash, and don’t connect the USB cable…just connect wired ethernet.

For normal Ubuntu package additions it is no different than a desktop PC. If you have questions those can be answered, but anything applying to Ubuntu applies to the Jetson.