Using the DGX-2 FW Update Utility

The NVIDIA DGX-2 System Firmware Update utility is provided in a tarball file and also as a .run file. Copy the files to the DGX-2 system, then update the firmware using one of the following three methods:

  • NVSM provides convenient commands to update the firmware using the firmware update container

  • Using Docker to run the firmware update container

  • Using the .run file which is a self-extracting package embedding the firmware update container tarball

Caution

  • Stop all unnecessary system activities before attempting to update firmware.

  • Stop all GPU activity, including accessing nvidia-smi, as this can prevent the VBIOS from updating.

  • Do not add additional loads on the system (such as user jobs, diagnostics, or monitoring services) while an update is in progress. A high workload can disrupt the firmware update process and result in an unusable component.

  • When initiating an update, the update software assists in determining the activity state of the DGX system and provides a warning if it detects that activity levels are above a predetermined threshold. If the warning is encountered, you are strongly advised to take action to reduce the workload before proceeding with the update.

Note

Fan speeds may increase while updating the BMC firmware. This is a normal part of the BMC firmware update process.

Using NVSM

The NVIDIA DGX-2 system software includes Docker software required to run the container.

  1. Copy the tarball to a location on the DGX system.

  2. From the directory where you copied the tarball file, enter the following command to load the container image.

    sudo docker load -i nvfw-dgx2_24.3.1_240304.tar.gz
    
  3. To verify that the container image is loaded, enter the following.

    sudo docker images
    
    REPOSITORY    TAG
    nvfw-dgx2      24.3.1
    
  4. Using NVSM interactive mode, enter the firmware update module.

    sudo nvsm
    nvsm-> cd systems/localhost/firmware/install
    
  5. Set the flags corresponding to the action you want to take.

    nvsm(/system/localhost/firmware/install)-> set Flags=<option>
    

    See the Command and Argument Summary section for the list of common flags.

  6. Set the container image to run.

    nvsm(/system/localhost/firmware/install)-> set DockerImageRef=nvfw-dgx2:24.3.1
    
  7. Run the command.

    nvsm(/system/localhost/firmware/install)-> start
    

Using docker run

The NVIDIA DGX-2 system software includes Docker software required to run the container.

  1. Copy the tarball to a location on the DGX system.

  2. From the directory where you copied the tarball file, enter the following command to load the container image.

    sudo docker load -i nvfw-dgx2_24.3.1_240304.tar.gz
    
  3. To verify that the container image is loaded, enter the following.

    sudo docker images
    
    REPOSITORY    TAG
    nvfw-dgx2      24.3.1
    
  4. Use the following syntax to run the container image.

    sudo docker run --rm --privileged -ti -v /:/hostfs nvfw-dgx2:24.3.1 <command> <[arg1] [arg2] ... [argn]
    

See the Command and Argument Summary section for the list of common commands and arguments.

Using the .run File

The update container is also available as a run file that does not require a Docker installation.

  1. After obtaining the .run file, make the file executable.

    chmod +x nvfw-dgx2_24.3.1_240304.run
    
  2. Use the following syntax to run the container image.

    sudo nvfw-dgx2_24.3.1_240304.run <command> <[arg1] [arg2] ... [argn]
    

See the Command and Argument Summary section for the list of common commands and arguments.

Command and Argument Summary

The following are common commands and arguments.

  • Show the manifest

    show_fw_manifest
    
    • NVSM Example: nvsm(/system/localhost/firmware/install)-> set Flags=show_fw_manifest

    • Docker Run Example:sudo docker run --rm --privileged -ti -v /:/hostfs nvfw-dgx2:24.3.1 show_fw_manifest

    • .run File Example: sudo ./nvfw-dgx2_24.3.1_240304 show_fw_manifest

  • Show version information

    show_version
    
    • NVSM Example: nvsm(/system/localhost/firmware/install)-> set Flags=show_version

    • Docker Run Example: sudo docker run --rm --privileged -ti -v /:/hostfs nvfw-dgx2:24.3.1 show_version

    • .run File Example: sudo ./nvfw-dgx2_24.3.1_240304.run show_version

  • Check the onboard firmware against the manifest and update all down-level firmware.

    update_fw all
    
    • NVSM Example: nvsm(/system/localhost/firmware/install)-> set Flags=update_fw\ all

      Note

      For NVSM, an escape is needed before blank spaces when setting the flags.

    • Docker Run Example:sudo docker run --rm --privileged -ti -v /:/hostfs nvfw-dgx2:24.3.1 update_fw all

    • .run File Example: sudo ./nvfw-dgx2_24.3.1_240304.run update_fw all

  • Check the specified onboard firmware against the manifest and update if down-level.

    update_fw [fw]
    

    Where [fw] corresponds to the specific firmware as listed in the manifest. Multiple components can be listed within the same command. The following are examples of updating the BMC and SBIOS.

    • NVSM Example: nvsm(/system/localhost/firmware/install)-> set Flags=update_fw\ BMC\ SBIOS

note:: For NVSM, an escape is needed before blank spaces when setting the flags.

  • Docker Run Example:sudo docker run --rm --privileged -ti -v /:/hostfs nvfw-dgx2:24.3.1 update_fw BMC SBIOS

  • .run File Example: sudo docker run --rm --privileged -ti -v /:/hostfs nvfw-dgx2:24.3.1 show_fw_manifest