Using the DGX-1 FW Update Utility

The NVIDIA DGX-1 System Firmware Update utility is provided in a tar ball file and also as a .run file. Copy the files to the DGX-1 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 tar ball 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-dgx1_21.06.8_210616.tar.gz 
  3. To verify that the container image is loaded, enter the following.
    $ sudo docker images 
    
    REPOSITORY    TAG 
    nvfw-dg1      21.06.8
  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 below for the list of common flags.

  6. 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 tar ball 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-dgx1_21.06.8_210616.tar.gz 
  3. To verify that the container image is loaded, enter the following.
    $ sudo docker images 
    
    REPOSITORY    TAG 
    nvfw-dg1      21.06.8
  4. Use the following syntax to run the container image.
    $ sudo docker run --rm --privileged -ti -v /:/hostfs nvfw-dgx1:21.06.8 <command> <[arg1] [arg2] ... [argn]
See the Command and Argument Summary section below 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 executible.
    $ chmod +x nvfw-dgx1_21.06.8_210616.run
  2. Use the following syntax to run the container image.
    $ sudo nvfw-dgx1_21.06.8_210616.run <command> <[arg1] [arg2] ... [argn]
See the Command and Argument Summary section below for the list of common commands and arguments.

Command and Argument Summary

The following are common commands and arguments.
  • Show the manufest
    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-dgx1:21.06.8 show_fw_manifest
    • .run File Example: $ ./nvfw-dgx1_21.06.8_210616.run 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-dgx1:21.06.8 show_version
    • .run File Example: $ ./nvfw-dgx1_21.06.8_210616.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

      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-dgx1:21.06.8 update_fw all
    • .run File Example: $ ./nvfw-dgx1_21.06.8_210616.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

      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-dgx1:21.06.8 update_fw BMC SBIOS
    • .run File Example: $ ./nvfw-dgx1_21.06.8_210616.run update_fw BMC SBIOS