This procedure is used to flash the AirStack software suite (Jetson Image) on the AIR-T. This image contains both the underlying operating system for the Jetson module as well as drivers and board support for the hardware interfaces present on the AIR-T. Flashing an AirStack image will restore your AIR-T's software to factory settings and delete all user data.
If you do not want to erase the contents of your AIR-T and just want to update an existing installation of AirStack, instead see the process for an AirStack Upgrade.
To flash the AIR-T you will need:
- An x86 host machine running Linux - We test our procedures using Ubuntu 18.04 LTS, although Ubuntu 16.04 and later will work, as will many other Linux distributions.
- An AIR-T
- Keyboard, mouse, and monitor plugged into the AIR-T
- USB micro cable
- Airstack software downloaded from the Developer Portal at www.deepwavedigital.com
Important Compatibility Note¶
Using the AirStack flashing utilities on the requires that
/usr/bin/python on the host machine (the system performing the flashing procedure) points to Python 2.7. Please see the below listing of required packages for supported Ubuntu versions.
|Ubuntu Version||Additional Required Packages||Install Command|
|18.04||python2.7, python-minimal||sudo apt-get install python2.7 python-minimal|
|20.04||python2, python-is-python||sudo apt-get install python2 python-is-python2|
Other Linux distributions have similar packaging configurations; For these, consult your system administrator to make sure the flashing computer is configured correctly.
Additionally, many developers use Anaconda for python development. Having a
conda environment active may also prevent the flash utilities from executing correctly. If you run into this issue, a simple
conda deactivate in your terminal before executing the installation procedure will disable
conda and allow the flash utilities to run.
If python2.7 is not available on your host computer, you'll see errors similar to the following when executing Step #7 of the AirStack Installation Procedure:
[ 0.043 ] /usr/bin/env: 'python': No such file or directory
AirStack Installation Procedure¶
NOTE: FLASHING THE AIR-T WILL ERASE EVERYTHING ON THE OPERATING SYSTEM. MAKE SURE THAT YOU HAVE A GOOD BACKUP OF ANYTHING YOU NEED PRIOR TO PERFORMING THIS PROCEDURE
The AirStack image is flashed using the NVIDIA tools with a custom OS image and AIR-T drivers. Follow these steps to flash the AIR-T software:
1. Install the Prerequisites (see above) on the host computer.
2. Make sure that you have a proper backup of any personal code or files from the AIR-T.
3. As shown in Figure 1, connect the micro USB port (J20) from the AIR-T to the Linux host. If the AIR-T is in its enclosure, connect the micro USB cable to the port labeled USB on the back.
4. Boot the AIR-T into recovery mode. See the section below for instructions.
5. On the Linux host, open a terminal by entering
ctrl + shift + T on the keyboard.
6. Go to the directory in which AirStack was downloaded. For example, if the software was downloaded to your Downloads folder, enter the following commands in a command shell:
cd ~/Downloads tar -xzvf deepwave_airstack_software_vX.X.X.tgz cd deepwave_airstack_software
airt_flash/scripts/flash-systemimg.py -b ./Linux_for_Tegra \ --dtb ./airstack_v0.2-tx2.dtb
The procedure can take up to 15 minutes depending on the speed of your host. The AIR-T will automatically boot once the procedure is complete.
8. When the AIR-T boots, you will be prompted to create a user on the AIR-T. Follow the on-screen instructions and the AIR-T will reboot once this step has completed.
9. Flash the firmware. If not already done, the AIR-T must have the corresponding version of the AirStack firmware installed on the FPGA. Note that flashing the AirStack OS does not install the new FPGA firmware, however we do include the new firmware image under
lib/firmware in AirStack on the freshly imaged AIR-T. The installation instructions may be found in the Firmware Flash Procedure section of the Deepwave documentation.
Figure 1: Image of the AIR-T and the relevant interfaces highlighted.
Placing the AIR-T Into Recovery Mode¶
To place the AIR-T into recovery mode, follow this procedure. Note that you must be in a fresh recovery mode to flash the AIR-T (before each time the flash command is executed, the system must be power cycled into recovery mode).
Using Software Utility (AirStack v0.3+ only)¶
AirStack 0.3 and later contain a small software executable,
reboot_to_recovery, that functions like the normal
reboot command from a terminal but directs the AIR-T to enter recovery mode on next system boot.
Enter the following command in a terminal window on the AIR-T:
the AIR-T will may be logged in to via ssh from the Linux host.
Administrative permissions are required to execute the
reboot_to_recovery command, so a normal user will need to run
sudo reboot_to_recovery. The board will immediately reboot and come up in recovery mode.
Next, verify that the device is in recovery mode and communicating with your computer. On the host, open a terminal and type
lsusb, which should show a device with a description of "NVidia Corp." Here is an example:
$ lsusb Bus 003 Device 013: ID 0955:7c18 NVidia Corp.
Using Hardware Buttons (all versions)¶
An AIR-T can always be placed into recovery mode by using a set of buttons on the board itself. This allows you to recover the unit even if the operating system has been completely wiped.
1. If the AIR-T is in its enclosure, remove the the cover to get access to the top of the board. Look for the three large red buttons on the board labeled (from left to right)
2. Press the PWR button to start the system.
3. Press and hold the REC button.
4. While continuing to hold the REC button, press and release the RST button.
5. Release the REC button after 2 seconds.
6. On the host, verify that the device is in recovery mode and communicating with your computer. Open a terminal and type
lsusb, which should show a device with a description of "NVidia Corp." Here is an example for the AIR7101:
$ lsusb Bus 003 Device 013: ID 0955:7c18 NVidia Corp.