Zexin Li

Please keep honest, open, patient, happy and visionary.

Flash NVIDIA Jetson TX2

Synopsis

NVIDIA Jetson Development Toolkit is based on arm64 architecure. Correpsondingly, many system libraries/deep learning libraries cannot be found&intalled easily (compared to x86 platform). To solve such dependencies problem once and for all, NVIDIA offers official flashing tool (Jetpack). This article focuses on the technical details of Jetpack 4.6 flashing.

JetsonHacks offers official flashing turorial videos corresponding to different versions (Jetpack 4.2 installation Jetpack 3.0 installation) which may have some differences but similar to Jetpack 4.6. For older version (e.g., Jetpack 3.0), please ref to Jetson TX2 Flashing Tutorial

Prequisite

  1. Host machine: An PC/laptop with Intel/AMDx86 architeture and Ubuntu 18.04 installed, can be connected to network.
  2. Physical disk: >40GB available.
  3. Installing Jetpack package: apply for NVIDIA developer account, then download Jetpack (newest version 4.6 is recommend) aat NVIDIA based on board hardware model.
  4. A Mirco-USB data cable, an HDMI cable, one screen, mouse and keyboard.

Installing Jetpack

  1. Disconnect the development board, disconnect the development board network cable, and connect the development board and host computer with the data cable. Double-click to run the Jetpack 4.6 installer (or command line install), then type in command: sdkmanager (make sure don’t use root here). After login NVIDIA developer account, tick host and target, select device hardware manually.
  2. Create 2 new folders to store libraries files and targets image files.
  3. Begin downloading and wait patiently to install OS ([Note]The development board is still powered off at this time)
  4. Sdkmanger will notify whether (auto flash)/(manual flash). Select (manual flash) and switch the board to Recovery Mode, for instance (Jetson TX2):
    (a) Ensure that the development board is initially in a power-off state and that the Micro USB cable is properly connected
    (b) Power on the development board, press power to boot, then quickly press and hold the recovery key without releasing, press the reset key, and release the recovery key after 2 seconds
    (c) At this point there should be 2 green lights on
  5. To verify that you are in the forced recovery state, type in the host command: lsusb. If Nvidia Corp is in device list then success, o.w. back to do step (4) again.
  6. Connect the HDMI cable + screen to the development board. Then click flash on sdkmanager.
  7. Wait patiently for the development board to initialize the ubuntu system (configure the account password). Sdkmanager will ask to choose the connection method + enter your account password. In this case, choose to use the USB connection with default ip address, and enter the account/password of the ubuntu system of the development board.
  8. Wait patiently for long time until all libraries installed. Click exit to quit sdkmanager.

Further Configuration

Connect the development board and check IP address with ifconfig | grep eth0 -a1. Then it can be accessed by ssh and configure as normal Ubuntu.

Potential Problems and Solutions

  1. Slow downloading:
    Replace the networking environment that can bypass firewall (GFW) and has sufficient bandwidth.
  2. Strange issues in installing process reported by sdkmanager(e.g., dependencies error)
    Replace the host machine with cleanUbuntu 18.04, most of these kinds of problems are due to system configuration conflicts, which are very difficult to locate and fix.
  3. Performance bugs (Some CPU cores on board are idle)
    rewrite /boot/extlinux/exltinux.conf isolcpus=1-2 to isolcpus= (ref to Performance bug solution to TX2.