I need to setup several TX2s running the same application(s) with different configurations.
My usual setup and flash process for each individual TX2s has been to:
- Download Jetpack 3.3 on host in a virtual machine to avoid corrupting my host's apt.
- Flash default rootfs to the Jetpack and boot it to confirm the flash.
- Apply a patch for the Auvidea J120 board by editing/replacing various files applying the changes with apply_binaries.sh on host.
- Flashing again with Jetpack - this time with all libraries like CUDA, OpenCV, etc.
- Rebuilding the kernel with ttyACM support according to this guide https://www.jetsonhacks.com/2017/07/31/build-kernel-ttyacm-module-nvidia-jetson-tx2/.
- Installing dependencies for my application on target.
- Installing and configuring the application on target.
I have managed to reduce the number of steps by using the same Jetpack environment to flash multiple devices using a clone of a fully setup device as described here https://elinux.org/Jetson/TX2_Cloning. This process does the job but requires a lot of manual interaction that is certainly not feasible for flashing several devices.
I am searching for a way to automate the process. Ideally, my goal is a script that I can run on the virtual host which handles everything but any pointers to how minor parts of it can be achieved is highly appreciated.
I am aware of the multi_tegra_flash.sh but my understanding of the flashing process is not sufficient to determine if that solves my problem.