Installing multiple libraries on a host machine in order to flash those libraries onto the Jetson TX2

Is there a way that I can “pre-install” libraries such as OpenCV into a cross-compiled kernel, such that installation of software can be done once, on the host machine, before flashing multiple units?


Create a reference system, clone it, then flash the target system.

I was able to produce a “backup” Image using the commands listed in the link of post #2. Using that “backup” Image, I attempted to flash my Jetson using the following command

sudo ./flash jetson-tx2 mmcblk0p1

Upon boot of the Jetson, I was greeted by the normal NVIDIA logo, followed by a corrupted looking screen. The Jetson then looped between the nvidia logo and corrupted screen until I took the power off.

The device tree which I have on my Linux_for_Tegra host is written for a custom carrier board, but I have had no problem flashing a kernel and device tree - which I cross-compile on my Linux_for_Tegra host - onto the Jetson TX2 before.

Could this error be caused by the Image the host machine gets from the Jetson being somehow “incompatible” with my custom device tree, or was this an error on my part when getting the image from the Jetson?


If you take a clone and place it with the name “system.img” at “Linux_for_Tegra/bootloader/”, then you must also tell flash to “reuse” the image which is there…else it overwrites it with a new image. Use “-r”:

sudo ./ -r jetson-tx2 mmcblk0p1

Also make sure the image and the release for the L4T flash are the same.

I do highly recommend the clone method, but FYI, the “rootfs/” content is nearly identical to the installed system. Only the boot content changes from being an exact copy of the “rootfs/” content (originally created from the sample rootfs, followed by the “” addition of NVIDIA-specific drivers). It is a real pain edit a filesystem separately if a package manager is part of the procedure, and a clone gets completely around that issue, but other files are simple to add. For example I do my network setup for ssh keys in the “rootfs/” before I ever flash, and as a result, keys and all networking “just works” upon flash.

The device tree must be correctly flashed, and that is a different procedure. Older releases only had a file copy involved for device tree, but now device tree is part of a signed binary partition. Check the documents for your particular release regarding device tree flash steps.