.. _IN.QuickStart:

.. include:: /content/swdocs.rsts

.. spelling::

Quick Start
!!!!!!!!!!!

This topic will help you get started quickly using |NVIDIA(r)| |Jetson(tm)| Linux with an NVIDIA Jetson developer kit.

Types and Models of Jetson Devices
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Both Jetson modules and Jetson developer kits are available from NVIDIA. A Jetson developer kit
includes a non-production-specification Jetson module attached to a reference carrier board. You
can use it with |NVIDIA(r)| JetPack\ |tm| SDK to develop and test software for your use case. Jetson developer kits
are not intended for production use.

Jetson modules are suitable for deployment in a production environment throughout their operating
lifetime. Each Jetson module ships with no software preinstalled; you attach it to a carrier board
designed or procured for your end product and flash it with the software image you have developed.

This release of Jetson Linux supports the following Jetson devices:

- |NVIDIA(r)| |Jetson AGX Orin(tm)| modules and Jetson AGX Orin
  Developer Kit

- |NVIDIA(r)| |Jetson Xavier(tm) NX| series modules and Jetson Xavier NX
  Developer Kit

- |NVIDIA(r)| |Jetson AGX Xavier(tm)| series modules and Jetson AGX Xavier
  Developer Kit

For details about these Jetson devices, see the
`Jetson Software Documentation <https://docs.nvidia.com/jetson/>`__
page of the
`NVIDIA Edge Computing <https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/>`__
web site, and the
`Jetson FAQ <https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjFv4_w8Pj1AhVuJUQIHZ1RDIgQFnoECAkQAQ&url=https%3A%2F%2Fdeveloper.nvidia.com%2Fembedded%2Ffaq&usg=AOvVaw0lNJsLmDzi9vJvQk9Zdp2P>`__.

.. todo::
   I'm improvising the links. The page titles do not match those in the original document. Please correct as necessary.

Preparing a Jetson Developer Kit for Use
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

This section explains how to prepare a Jetson developer kit for use by flashing it with the appropriate software.

Later sections of this guide explain in more detail how to:

- :ref:`Set up <HR.JetsonDeveloperKitSetup>`
  a Jetson developer kit
- :ref:`Flash <SD.FlashingSupport>`
  software to a Jetson developer kit

.. _IN.QuickStart.Assumptions:

Assumptions
@@@@@@@@@@@

- You have a Jetson developer kit and a separate Linux host system.

- Your Jetson developer kit is powered off and is connected as follows.
  (Note that your Jetson developer kit may not come with the devices and cables listed below.)

  - Linux host is connected for flashing through the appropriate USB port
    of the developer kit.

    For NVIDIA Jetson AGX Xavier Developer Kit, use the USB-C port next to the power button.

    For other Jetson developer kits, use the micro USB port.

  - Any required USB peripherals such as keyboard and mouse are connected to the  Jetson developer. You may use a USB hub for this.

  - A wired Ethernet connection with internet access is connected
    for installing optional software on the developer kit when Jetson Linux has been installed and is running.

  - Either a display device or a serial console is connected.
    A serial console may be a terminal program running on the host computer or another connected computer.

Environment Variables
@@@@@@@@@@@@@@@@@@@@@

Your host system must be configured to set certain environment variables:

- ``${L4T_RELEASE_PACKAGE}`` contains the pathname of
  a file that contains the Jetson Linux  release package name.

  .. todo::
     "The pathname of the ...release package name" is confusing. Does this mean the pathname of a file that contains the release package name? Is it just a one-line file containing the name, or is it a config file that specifies this setting and others in keyword/value format?

  For Jetson Xavier NX and Jetson AGX Xavier series, set the value ``Jetson_Linux_L4TRELEASEVERSION.tbz2``.

  .. todo:: What about AGX Orin?

- ``${SAMPLE_FS_PACKAGE}`` contains the sample file system package's filename:
  ``Tegra_Linux_Sample-Root-Filesystem_L4TRELEASEVERSION.tbz2``.

- ``${BOARD}`` contains the name of a supported configuration
  of Jetson module and carrier board. The most often-used configurations are:

  - ``jetson-agx-orin-devkit`` for a Jetson AGX Orin module
    and the Jetson AGX Orin Developer Kit reference board
  - ``jetson-xavier-nx-devkit``  for a Jetson Xavier NX module
    and the Jetson Xavier NX Developer Kit reference board
  - ``jetson-agx-xavier-devkit`` for a Jetson AGX Xavier module
    and the Jetson AGX Xavier Developer Kit reference board

  .. todo::
     We list three configurations here and five under "Jetson Modules and Configurations." Which is correct?

.. _IN.QuickStart-ToFlashJetsonDeveloperKitOperatingSoftware:

To flash Jetson developer kit operating software
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

#. Download the latest Jetson Linux release package and sample file system
   for your Jetson developer kit from https://developer.nvidia.com/linux-tegra

#. Enter the following commands to untar the files and assemble the rootfs::

    $ tar xf ${L4T_RELEASE_PACKAGE}
    $ cd Linux_for_Tegra/rootfs/
    $ sudo tar xpf ../../${SAMPLE_FS_PACKAGE}
    $ cd ..
    $ sudo ./apply_binaries.sh

#. Ensure that your Jetson developer kit is configured and
   connected to your Linux host as described in
   `Assumptions <IN.QuickStart.Assumptions>`__.

   .. _IN.QuickStart.ToFlashJetsonDeveloperKitOperatingSoftware-ForceRecoveryMode:

#. Put your Jetson developer kit into **Force Recovery Mode**.

   - For Jetson Xavier NX Developer Kit:

     #. Ensure that your Jetson Xavier NX Developer Kit is powered off,
        and a 16GB or larger microSD card is inserted in the SD card slot.

     #. Enable Force Recovery Mode by placing a jumper across pins 9 and 10
        (FC REC and GND) of the button header (J14), located on the edge of the carrier board under the Jetson module.

     #. Connect the developer kit's power adapter to J16.
        The developer kit powers on automatically and enters Force Recovery mode.

     #. Remove the jumper from pins 9 and 10 of the button header.

   - For other Jetson developer kits that have hardware buttons:

     #. Ensure that the developer kit is powered off.
     #. Press and hold down the Force Recovery button.
     #. Press, then release the Power button.
     #. Release the Force Recovery button.

#. Confirm that the developer kit is in Force Recovery Mode
   by following the procedure
   `To determine whether the developer kit is in force recovery mode`_.

#. Enter this command on your Linux host to install (flash)
   the Jetson release onto the Jetson developer kit::

    $ sudo ./flash.sh ${BOARD} mmcblk0p1

   The value of the environment variable ``${BOARD}`` determines the configuration that ``flash.sh`` applies. A list of common configurations is given below in
   `Jetson Modules and Configurations`_.

#. The Jetson developer kit automatically reboots when
   the installation process is complete. At this point your Jetson developer kit is operational. Follow the prompts on the display to set up a user account and log in.


.. _IN.QuickStart-JetsonModulesAndConfigurations:

Jetson Modules and Configurations
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Jetson Linux provides ready-made support for the following configurations.

.. _IN.QuickStart.JetsonModulesAndConfigurations-Configurations:

.. raw:: html
   :file: QuickStart/Configurations.htm

There is a configuration file corresponding to each value of ``${BOARD}``. Its name is the value of ``${BOARD}`` with the filename extension ``.conf``. For example, the configuration file for ``jetson-nano-devkit`` is ``jetson-nano-devkit.conf``.

To Determine Whether the Developer Kit Is in Force Recovery Mode
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

1. Connect your Linux host computer to the appropriate USB port on
   your Jetson developer kit (see
   :ref:`Assumptions <IN.QuickStart.Assumptions>`).

2. Open a terminal window on your host computer and enter command
   ``lsusb``. The Jetson module is in Force Recovery Mode if you see the message::

    Bus <bbb> Device <ddd>: ID 0955: <nnnn> Nvidia Corp.

   Where:

   = ``<bbb>`` is any three-digit number

   = ``<ddd>`` is any three-digit number

   - ``<nnnn>`` is a four-digit number that represents the type of your
     Jetson module:

     - ``7023`` for Jetson AGX Orin  (P3701-0000)
     - ``7e19`` for Jetson Xavier NX (P3668-0000 development m)
     - ``7e19`` for Jetson Xavier NX (P3668-0001)
     - ``7019`` for Jetson AGX Xavier (P2888-0001 with 16GB)
     - ``7019`` for Jetson AGX Xavier (P2888-0004 with 32GB)
     - ``7019`` for Jetson AGX Xavier Industrial (P2888-0008)
