The Extra Configuration File#

This section details how to use an extra configuration file to customize your installation packages, processes, and hardware with NVIDIA SDK Manager. This can be used to support the installation of a third-party carrier board, customized packages, and so on.

Introduction

The extra configuration file enables you to add and/or modify some behavior of SDK releases with NVIDIA SDK Manager in a way that will overwrite the original release manifest.

There are two pillars that can be handled with this manifest file:

  • Software - modify install steps and binaries.

  • Hardware - overwrite with the new hardware information.

Background#

SDK Manager uses data (hardware and software information) that is dynamically obtained for each SDK release, such as JetPack 5.x.

The data is stored in JSON manifest files that are loaded as needed during the install session. When supplying an extra config file, it will overwrite the original values (stored in the JSON manifest files) per selected object, or add new objects to the install session.

To modify objects to create your own extra config file, you will need to allocate the objects that need modifications from the original release manifest. The easiest way to do it is by inquiring about the original release manifest file(s) along with the provided example file.

Usage of the Extra Configuration File#

The end-user/developer will configure their development environment with the extra configuration file provided by you. They will then use NVIDIA SDK Manager with the following command:

sdkmanager --extraconfig [local path to the extra config file]

This can be used along with other command line arguments as needed. See the Command Line Install section for a full list of supported arguments.

Create the Extra Configuration File#

Obtain Reference Data

To begin, get the software and hardware JSON manifest files that includes the hardware and software components for the SDK release you want to customize:

  1. Download the Software JSON manifest file using one of the below methods:

    • Using the SDK Manager GUI: run the NVIDIA SDK Manager GUI, select the SDK you would like to customize, then go to STEP 2 to review the list of components. When finished, exit SDK Manager.

    • Using the SDK Manager command-line interface: run the NVIDIA SDK Manager CLI with the specific parameters needed. For example:

      # sdkmanager --cli
      

      Review the list of components in the main window. When finished, exit SDK Manager.

  2. Obtain the software reference file (sdkml3_<release>.json) from the directory below:

    ~/.nvsdkm/dist/
    
  3. Obtain the hardware reference file from the directory below:

    ~/.nvsdkm/hwdat/families/<product>/devices
    

Note

A single device is referenced in a devices “series” file. The “seriesId” might be referred to in the software components section instead of the “deviceId”.

For example: JETSON_AGX_ORIN_TARGETS.json “series” file refers to JETSON_AGX_ORIN_32GB. The device’s “seriesId” ID is referenced in the supportedHardware -> seriesIds array in the software reference file (sdkml3_<release>.json).

It is recommended that you choose the nearest module of the device hardware you are customizing.

Setup the Extra Configuration File#

Get the Example Configuration File#

Download the example configuration file (extraconfig file) from:

Note

Note that some sample files may be outdated with schema updates.

Create Your Own Configuration File#

Use the example file to create your own configuration file by following, changing, or adding objects as described below.

information Section#

This section is used to set up the required SDK release version that you want to customize.

  • From the software reference file, copy the below keys (and values) to your extra configuration file.

    information.release.releaseVersion
    
    information.release.releaseEdition
    
    information.release.releaseRevision
    

Note

Empty values can be used and are not limited to a specific SDK release.

sw Section#

This section is used to overwrite specific component installation with your customized software and installation steps.

  • From the software reference file, copy a complete sw component object to your extra configuration file.

    The components are located in the components object in the software reference file and should be copied into the sw object at the extra configuration file. For example:

    • components.NV_L4T_FILE_SYSTEM_AND_OS_COMP (used for BSP)

    • components.NV_L4T_FLASH_JETSON_LINUX_COMP (used for the flash command)

  • Modify the copied objects to meet your needs.

Note that scripts and commands that are executed must follow the below rules:

  • To automatically be ended and exited back to the terminal.

  • Errors need to be output into stderr.

  • Blocking errors must exit with a none 0 exit value.

  • Not contain any user input (run completely in an unattended mode).

hw Section#

This section is used to overwrite specific hardware device parameters with your customized hardware device.

  • From the hardware reference file, copy a complete hw component object to your extra configuration file.

    The hardware device is located in the hw object in the hardware reference file and should be copied into the hw object at the extra configuration file.

    For example:

    • hw.JETSON_AGX_ORIN_32GB (used for Jetson AGX Orin 32GB device)

  • Modify the copied objects to meet your needs.

Carefully review the note section in the hardware reference file instructions above, and verify that the “series” device is referred to in the software component object you are modifying.

For example: sw.NV_L4T_FILE_SYSTEM_AND_OS_COMP.platforms.supportedHardware.seriesIds includes "JETSON_AGX_ORIN_TARGETS".

Schema Objects#

The information, hw, and sw objects support multiple key-value paired objects in them. These values are managed by SDK Manager Schema versions. Each SDK release schema is defined in the information.schemaVersion object in the software reference file (sdkml3_<release>.json). It is recommended that you use the latest SDK Manager version.

Detailed Schemas#

You can review the detailed schemas here.