image image image image image

On This Page


This section describes how to install and test the NVIDIA OFED for Linux package on a single server with a NVIDIA ConnectX-5 adapter card installed.

Prerequisites

RequirementsDescription
Platforms

A server platform with a ConnectX-5 InfiniBand/VPI adapter card installed

  • MT4119 ConnectX®-5 (VPI, IB, EN) (firmware: fw-ConnectX5)
Required Disk Space for Installation1GB
Device IDFor the latest list of device IDs, please visit the NVIDIA website at http://www.nvidia.com/page/firmware_HCA_FW_identification.
Operating SystemLinux operating system.
For the list of supported operating system distributions and kernels, please refer to the NVIDIA OFED Release Notes file.
Installer PrivilegesThe installation requires administrator (root) privileges on the target machine.

Downloading NVIDIA OFED

  1. Verify that the system has a NVIDIA network adapter installed.
    The following example shows a system with an installed NVIDIA adapter card:

    # lspci -v | grep Mellanox
    86:00.0 Network controller [0207]: Mellanox Technologies MT27620 Family
            Subsystem: Mellanox Technologies Device 0014
    86:00.1 Network controller [0207]: Mellanox Technologies MT27620 Family
            Subsystem: Mellanox Technologies Device 0014
  2. Download the ISO image to your host.
    The image’s name has the format MLNX_OFED_LINUX-<ver>-<OS label><CPU arch>.iso
    You can download and install the latest OpenFabrics Enterprise Distribution (OFED) software package available via the NVIDIA web site at http://www.nvidia.com > Products > Software > InfiniBand/VPI Drivers > Linux SW/Drivers > Download..

    1. Scroll down to the Download wizard, and click the Download tab.
    2. Choose your relevant package depending on your host operating system.
    3. Click the desired ISO/tgz package.
    4. To obtain the download link, accept the End User License Agreement (EULA).
  3. Use the md5sum utility to confirm the file integrity of your ISO image. Run the following command and compare the result to the value provided on the download page.

    md5sum MLNX_OFED_LINUX-<ver>-<OS label>.iso

Installing NVIDIA OFED

Installation Script

The installation script, mlnxofedinstall, performs the following:

  • Discovers the currently installed kernel
  • Uninstalls any software stacks that are part of the standard operating system distribution or another vendor's commercial stack
  • Installs the MLNX_OFED_LINUX binary RPMs (if they are available for the current kernel)
  • Identifies the currently installed InfiniBand and Ethernet network adapters and automatically upgrades the firmware.
    Note: The firmware will not be updated if you run the install script with the ‘--without-fw-update’ option.
    Note: If you wish to perform a firmware upgrade using customized FW binaries, you can provide a path to the folder that contains the FW binary files, by running --fw-image-dir. Using this option, the FW version embedded in the MLNX_OFED package will be ignored. Example:

    ./mlnxofedinstall --fw-image-dir /tmp/my_fw_bin_files

Usage

./mnt/mlnxofedinstall [OPTIONS]

Pre-existing configuration files will be saved with the extension “.conf.rpmsave”.

The installation script removes all previously installed NVIDIA OFED packages and re-installs from scratch. You will be prompted to acknowledge the deletion of the old packages.

  • If you need to install NVIDIA OFED on an entire (homogeneous) cluster, a common strategy is to mount the ISO image on one of the cluster nodes and then copy it to a shared file system such as NFS. To install on all the cluster nodes, use cluster-aware tools (such as pdsh).
  • If your kernel version does not match with any of the offered pre-built RPMs, you can add your kernel version by using the “mlnx_add_kernel_support.sh” script located inside the MLNX_OFED package.

    On Redhat and SLES distributions with errata kernel installed there is no need to use the mlnx_add_kernel_support.sh script. The regular installation can be performed and weak updates mechanism will create symbolic links to the MLNX_OFED kernel modules.

    The “mlnx_add_kernel_support.sh” script can be executed directly from the mlnxofedinstall script. For further information, please see '--add-kernel-support' option below.

    On Ubuntu and Debian distributions drivers installation use Dynamic Kernel Module Support (DKMS) framework. Thus, the drivers' compilation will take place on the host during MLNX_OFED installation. Therefore, using "mlnx_add_kernel_support.sh" is irrelevant on Ubuntu and Debian distributions.

    Example
    The following command will create a MLNX_OFED_LINUX ISO image for RedHat 6.3 under the /tmp directory.

    # ./MLNX_OFED_LINUX-x.x-x-rhel6.3-x86_64/mlnx_add_kernel_support.sh -m /tmp/MLNX_OFED_LINUX-x.x-x-rhel6.3-x86_64/ --make-tgz
    Note: This program will create MLNX_OFED_LINUX TGZ for rhel6.3 under /tmp directory.
    All Mellanox, OEM, OFED, or Distribution IB packages will be removed.
    Do you want to continue?[y/N]:y
    See log file /tmp/mlnx_ofed_iso.21642.log
    
    Building OFED RPMs. Please wait...
    Removing OFED RPMs...
    Created /tmp/MLNX_OFED_LINUX-x.x-x-rhel6.3-x86_64-ext.tgz
  • The script adds the following lines to /etc/security/limits.conf for the userspace components such as MPI:
    • * soft memlock unlimited
    • * hard memlock unlimited
    • These settings set the amount of memory that can be pinned by a user space application to unlimited. If desired, tune the value unlimited to a specific amount of RAM.

For your machine to be part of the InfiniBand/VPI fabric, a Subnet Manager must be running on one of the fabric nodes. At this point, NVIDIA OFED for Linux has already installed the OpenSM Subnet Manager on your machine.
For the list of installation options, run:

./mlnxofedinstall --h

The DKMS (on Debian based OS) and the weak-modules (RedHat OS) mechanisms rebuild the initrd/initramfs for the respective kernel in order to add the MLNX_OFED drivers.
When installing MLNX_OFED without DKMS support on Debian based OS, or without KMP support on RedHat or any other distribution, the initramfs will not be changed. Therefore, the inbox drivers may be loaded on boot. In this case, openibd service script will automatically unload them and load the new drivers that come with MLNX_OFED.

Installation Procedure

  1. Login to the installation machine as root.   
  2. Mount the ISO image on your machine.

    # mount -o ro,loop MLNX_OFED_LINUX-<ver>-<OS label>-<CPU arch>.iso /mnt
  3. Run the installation script.

    /mnt/mlnxofedinstall
    Logs dir: /tmp/MLNX_OFED_LINUX-x.x-x.logs
    This program will install the MLNX_OFED_LINUX package on your machine.
    Note that all other Mellanox, OEM, OFED, RDMA or Distribution IB packages will be removed.
    Those packages are removed due to conflicts with MLNX_OFED_LINUX, do not reinstall them.
    Starting MLNX_OFED_LINUX-x.x.x installation ...
    ........
    ........
    Installation finished successfully.
    
    Attempting to perform Firmware update...
    Querying Mellanox devices firmware ...

    For unattended installation, use the --force installation option while running the MLNX_OFED installation script:

    /mnt/mlnxofedinstall --force

    MLNX_OFED for Ubuntu should be installed with the following flags in chroot environment:
    ./mlnxofedinstall --without-dkms --add-kernel-support --kernel <kernel version in chroot> --without-fw-update --force
    For example:
    ./mlnxofedinstall --without-dkms --add-kernel-support --kernel 3.13.0-85-generic --without-fw-update --force
    Note that the path to kernel sources (--kernel-sources) should be added if the sources are not in their default location.

    In case that your machine has the latest firmware, no firmware update will occur and the installation script will print at the end of installation a message similar to the following:

    Device #1:
    ----------
    Device Type: ConnectX-5
    Part Number: MCX545M-ECAN
    Description: ConnectX®-5 VPI network interface card for OCP with Multi-Host, , with host management, EDR IB (100Gb/s) and 100GbE, single-port QSFP28, PCIe3.0 x16, no bracket.
    PSID: MT_2190110032
    PCI Device Name: 0b:00.0
    Base MAC: 0000e41d2d5cf810
    Versions: Current Available
    FW 16.22.0228 16.22.0228
    Status: Up to date

    In case that your machine has an unsupported network adapter device, no firmware update will occur and one of the following error messages below will be printed. Please contact your hardware vendor for help on firmware updates.
    Error message 1:


    Device #1:
    ----------
    Device Type: ConnectX-5
    Part Number: MCX545M-ECAN
    Description: ConnectX®-5 VPI network interface card for OCP with Multi-Host, , with host management, EDR IB (100Gb/s) and 100GbE, single-port QSFP28, PCIe3.0 x16, no bracket.
    PSID:             MT_2190110032
    PCI Device Name: 0b:00.0
    Base MAC: 0000e41d2d5cf810
    Versions: Current Available
    FW 16.22.0228 N/A
    Status: No matching image found

    Error message 2:

    The firmware for this device is not distributed inside Mellanox driver: 0000:01:00.0 (PSID: IBM2150110033)
    To obtain firmware for this device, please contact your HW vendor.
  4. If the installation script has performed a firmware update on your network adapter, complete the step relevant to your adapter card type to load the firmware:
      • ConnectX-5 - perform a standard reboot
    Otherwise, restart the driver by running: /etc/init.d/openibd restart

After installation completion, information about the NVIDIA OFED installation, such as prefix, kernel version, and installation parameters can be retrieved by running the command /etc/infiniband/info.

Most of the NVIDIA OFED components can be configured or reconfigured after the installation, by modifying the relevant configuration files. See the relevant chapters in this manual for details.

The list of the modules that will be loaded automatically upon boot can be found in the /etc/infiniband/openib.conf file.

Installation Results

Software
  • Most of MLNX_OFED packages are installed under the “/usr” directory except for the following packages which are installed under the “/opt” directory:
    • fca and ibutils
  • The kernel modules are installed under
    • /lib/modules/`uname -r`/updates on SLES and Fedora Distributions
    • /lib/modules/`uname -r`/extra/mlnx-ofa_kernel on RHEL and other Red Hat like Distributions
Firmware
  • The firmware of existing network adapter devices will be updated if the following two conditions are fulfilled:
    • The installation script is run in default mode; that is, without the option ‘--without-fw-update’
    • The firmware version of the adapter device is older than the firmware version included with the NVIDIA OFED ISO image
      Note: If an adapter’s flash was originally programmed with an Expansion ROM image, the automatic firmware update will also burn an Expansion ROM image.
  • In case that your machine has an unsupported network adapter device, no firmware update will occur and the error message below will be printed.
   The firmware for this device is not distributed inside Mellanox driver: 0000:01:00.0 (PSID: IBM2150110033)
To obtain firmware for this device, please contact your HW vendor.

Installation Logs

While installing MLNX_OFED, the install log for each selected package will be saved in a separate log file. The path to the directory containing the log files will be displayed after running the installation script in the following format: "Logs dir: /tmp/MLNX_OFED_LINUX-<version>.<PD>.logs".

Example:

Logs dir: /tmp/MLNX_OFED_LINUX-4.4-1.0.0.0.63414.logs

openibd Script

As of MLNX_OFED v2.2-1.0.0 the openibd script supports pre/post start/stop scripts:
This can be controlled by setting the variables below in the /etc/infiniband/openibd.conf file.

OPENIBD_PRE_START
OPENIBD_POST_START
OPENIBD_PRE_STOP
OPENIBD_POST_STOP

Example:

OPENIBD_POST_START=/sbin/openibd_post_start.sh

An example of OPENIBD_POST_START script for activating all interfaces is provided in the MLNX_OFED package under the docs/scripts/openibd-post-start-configure-interfaces/ folder.

Driver Load Upon System Boot

Upon system boot, the NVIDIA drivers will be loaded automatically.

To prevent automatic load of the NVIDIA drivers upon system boot:

  1. Add the following lines to the "/etc/modprobe.d/mlnx.conf" file. 

    blacklist mlx4_core
    blacklist mlx4_en
    blacklist mlx5_core
    blacklist mlx5_ib
  2. Set “ONBOOT=no” in the "/etc/infiniband/openib.conf" file.
  3. If the modules exist in the initramfs file, they can automatically be loaded by the kernel.
    To prevent this behavior, update the initramfs using the operating systems’ standard tools.
    Note: The process of updating the initramfs will add the blacklists from step 1, and will prevent the kernel from loading the modules automatically.

mlnxofedinstall Return Codes

The table below lists the mlnxofedinstall script return codes and their meanings.

Return CodeMeaning
0The installation ended successfully
1The installation failed
2

No firmware was found for the adapter device

22Invalid parameter
28Not enough free space
171Not applicable to this system configuration. This can occur when the required hardware is not present on the system.
172Prerequisites are not met. For example, missing the required software installed or the hardware is not configured correctly.
173Failed to start the mst driver

Uninstalling MLNX_OFED

Use the script /usr/sbin/ofed_uninstall.sh to uninstall the NVIDIA OFED package. The script is part of the ofed-scripts RPM.

Installing MLNX_OFED Using YUM

This type of installation is applicable to RedHat/OL, Fedora, XenServer Operating Systems.

Setting up MLNX_OFED YUM Repository

  1. Log into the installation machine as root.
  2. Mount the ISO image on your machine and copy its content to a shared location in your network.

    # mount -o ro,loop MLNX_OFED_LINUX-<ver>-<OS label>-<CPU arch>.iso /mnt
  3. Download and install NVIDIA GPG-KEY:
    The key can be downloaded via the following link: http://www.nvidia.com/downloads/ofed/RPM-GPG-KEY-Mellanox

    # wget http://www.nvidia.com/downloads/ofed/RPM-GPG-KEY-Mellanox
    --2014-04-20 13:52:30-- http://www.nvidia.com/downloads/ofed/RPM-GPG-KEY-Mellanox
    Resolving www.nvidia.com... 72.3.194.0
    Connecting to www.nvidia.com|72.3.194.0|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1354 (1.3K) [text/plain]
    Saving to: ?RPM-GPG-KEY-Mellanox?
    
    100%[=================================================>] 1,354 --.-K/s in 0s
    
    2014-04-20 13:52:30 (247 MB/s) - ?RPM-GPG-KEY-Mellanox? saved [1354/1354]
  4. Install the key.

    # sudo rpm --import RPM-GPG-KEY-Mellanox
    warning: rpmts_HdrFromFdno: Header V3 DSA/SHA1 Signature, key ID 6224c050: NOKEY
    Retrieving key from file:///repos/MLNX_OFED/<MLNX_OFED file>/RPM-GPG-KEY-Mellanox
    Importing GPG key 0x6224C050:
    Userid: "Mellanox Technologies (Mellanox Technologies - Signing Key v2) <support@mellanox.com>"
    From : /repos/MLNX_OFED/<MLNX_OFED file>/RPM-GPG-KEY-Mellanox
    Is this ok [y/N]:
  5. Check that the key was successfully imported.

    # rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' | grep Mellanox
    gpg-pubkey-a9e4b643-520791ba gpg(Mellanox Technologies <support@mellanox.com>)
  6. Create a yum repository configuration file called "/etc/yum.repos.d/mlnx_ofed.repo" with the following content:

    [mlnx_ofed]
    name=MLNX_OFED Repository
    baseurl=file:///<path to extracted MLNX_OFED package>/RPMS
    enabled=1
    gpgkey=file:///<path to the downloaded key RPM-GPG-KEY-Mellanox>
    gpgcheck=1
  7. Check that the repository was successfully added.

    # yum repolist
    Loaded plugins: product-id, security, subscription-manager
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    repo id      repo name                                status
    mlnx_ofed    MLNX_OFED Repository                     108
    rpmforge     RHEL 6Server - RPMforge.net - dag        4,597
    
    repolist: 8,351

Installing MLNX_OFED Using the YUM Tool

After setting up the YUM repository for MLNX_OFED package, perform the following:

  1. View the available package groups by invoking:

    # yum search mlnx-ofed-
    mlnx-ofed-all.noarch : MLNX_OFED all installer package (with KMP support)
    mlnx-ofed-basic.noarch : MLNX_OFED basic installer package (with KMP support)
    mlnx-ofed-guest.noarch : MLNX_OFED guest installer package (with KMP support)
    mlnx-ofed-hpc.noarch : MLNX_OFED hpc installer package (with KMP support)
    mlnx-ofed-hypervisor.noarch : MLNX_OFED hypervisor installer package (with KMP support)
    mlnx-ofed-vma.noarch : MLNX_OFED vma installer package (with KMP support)
    mlnx-ofed-vma-eth.noarch : MLNX_OFED vma-eth installer package (with KMP support)
    mlnx-ofed-vma-vpi.noarch : MLNX_OFED vma-vpi installer package (with KMP support)

    Where:

    mlnx-ofed-all              Installs all available packages in MLNX_OFED.
    mlnx-ofed-basic            Installs basic packages required for running Mellanox cards.
    mlnx-ofed-guest            Installs packages required by guest OS.
    mlnx-ofed-hpc              Installs packages required for HPC.
    mlnx-ofed-hypervisor       Installs packages required by hypervisor OS.
    mlnx-ofed-vma              Installs packages required by VMA.
    mlnx-ofed-vma-eth          Installs packages required by VMA to work over Ethernet.
    mlnx-ofed-vma-vpi          Installs packages required by VMA to support VPI.

    Note: MLNX_OFED provides kernel module RPM packages with KMP support for RHEL and SLES. For other operating systems, kernel module RPM packages are provided only for the operating systems' default kernel. In this case, the group RPM packages have the supported kernel version in their package's name.

    Example:

    mlnx-ofed-all-3.17.4-301.fc21.x86_64.noarch : MLNX_OFED all installer package for kernel 3.17.4-301.fc21.x86_64 (without KMP support)
    mlnx-ofed-basic-3.17.4-301.fc21.x86_64.noarch : MLNX_OFED basic installer package for kernel 3.17.4-301.fc21.x86_64 (without KMP support)
    mlnx-ofed-guest-3.17.4-301.fc21.x86_64.noarch : MLNX_OFED guest installer package for kernel 3.17.4-301.fc21.x86_64 (without KMP support)
    mlnx-ofed-hpc-3.17.4-301.fc21.x86_64.noarch : MLNX_OFED hpc installer package for kernel 3.17.4-301.fc21.x86_64 (without KMP support)
    mlnx-ofed-hypervisor-3.17.4-301.fc21.x86_64.noarch : MLNX_OFED hypervisor installer package for kernel 3.17.4-301.fc21.x86_64 (without KMP support)
    mlnx-ofed-vma-3.17.4-301.fc21.x86_64.noarch : MLNX_OFED vma installer package for kernel 3.17.4-301.fc21.x86_64 (without KMP support)
    mlnx-ofed-vma-eth-3.17.4-301.fc21.x86_64.noarch : MLNX_OFED vma-eth installer package for kernel 3.17.4-301.fc21.x86_64 (without KMP support)
    mlnx-ofed-vma-vpi-3.17.4-301.fc21.x86_64.noarch : MLNX_OFED vma-vpi installer package for kernel 3.17.4-301.fc21.x86_64 (without KMP support)

    If you have an operating system different than RHEL or SLES, or you have installed a kernel that is not supported by default in MLNX_OFED, you can use the mlnx_add_kernel_support.sh script to build MLNX_OFED for your kernel.
    The script will automatically build the matching group RPM packages for your kernel so that you can still install MLNX_OFED via yum.
    Please note that the resulting MLNX_OFED repository will contain unsigned RPMs, therefore, you should set 'gpgcheck=0' in the repository configuration file.

  2. Install the desired group.

    # yum install mlnx-ofed-all
    Loaded plugins: langpacks, product-id, subscription-manager
    Resolving Dependencies
    --> Running transaction check
    ---> Package mlnx-ofed-all.noarch 0:3.1-0.1.2 will be installed
    --> Processing Dependency: kmod-isert = 1.0-OFED.3.1.0.1.2.1.g832a737.rhel7u1 for package:
    mlnx-ofed-all-3.1-0.1.2.noarch
    ..................
    ..................
      qperf.x86_64 0:0.4.9-9
      rds-devel.x86_64 0:2.0.7-1.12
      rds-tools.x86_64 0:2.0.7-1.12
      sdpnetstat.x86_64 0:1.60-26
      srptools.x86_64 0:1.0.2-12
    
    Complete!

Uninstalling MLNX_OFED Using the YUM Tool

Use the script /usr/sbin/ofed_uninstall.sh to uninstall the NVIDIA OFED package. The script is part of the ofed-scripts RPM.

Installing MLNX_OFED Using apt-get Tool

This type of installation is applicable to Debian and Ubuntu operating systems.

Setting up MLNX_OFED apt-get Repository

  1. Log into the installation machine as root.
  2. Extract the MLNX_OFED package on a shared location in your network.
    You can download it from http://www.nvidia.com > Products > Software> InfiniBand/VPI Drivers.
  3. Create an apt-get repository configuration file called "/etc/apt/sources.list.d/mlnx_ofed.list" with the following content:

    # deb file:/<path to extracted MLNX_OFED package>/DEBS ./
  4. Download and install NVIDIA GPG-KEY.

    # wget -qO - http://www.nvidia.com/downloads/ofed/RPM-GPG-KEY-Mellanox | sudo apt-key add -
  5. Check that the key was successfully imported.

    # apt-key list
    pub 1024D/A9E4B643 2013-08-11
    uid Mellanox Technologies <support@mellanox.com>
    sub 1024g/09FCC269 2013-08-11
  6. Update the apt-get cache.

    # sudo apt-get update

Installing MLNX_OFED Using the apt-get Tool

After setting up the apt-get repository for MLNX_OFED package, perform the following:

  1. View the available package groups by invoking:

    <pre># apt-cache search mlnx-ofed-
    mlnx-ofed-vma-eth - MLNX_OFED vma-eth installer package (with DKMS support)
    mlnx-ofed-hpc - MLNX_OFED hpc installer package (with DKMS support)
    mlnx-ofed-vma-vpi - MLNX_OFED vma-vpi installer package (with DKMS support)
    mlnx-ofed-basic - MLNX_OFED basic installer package (with DKMS support)
    mlnx-ofed-vma - MLNX_OFED vma installer package (with DKMS support)
    mlnx-ofed-all - MLNX_OFED all installer package (with DKMS support)

    Where:

    mlnx-ofed-all        MLNX_OFED all installer package.
    mlnx-ofed-basic      MLNX_OFED basic installer package.
    mlnx-ofed-vma        MLNX_OFED vma installer package.
    mlnx-ofed-hpc        MLNX_OFED HPC installer package.
    mlnx-ofed-vma-eth    MLNX_OFED vma-eth installer package.
    mlnx-ofed-vma-vpi    MLNX_OFED vma-vpi installer package.
  2. Install the desired group.

    # apt-get install '<group name>'

    Example:

    # apt-get install mlnx-ofed-all

    Installing MLNX_OFED using the “apt-get” tool does not automatically update the firmware. To update the firmware to the version included in MLNX_OFED package, run: # apt-get install mlnx-fw-updater
    Or, update the firmware to the latest version available on the NVIDIA as described in Updating Adapter Firmware.

Uninstalling MLNX_OFED Using the apt-get Tool

Use the script /usr/sbin/ofed_uninstall.sh to uninstall the NVIDIA OFED package. The script is part of the ofed-scripts package.

Updating Firmware After Installation

The firmware can be updated either manually or automatically (upon system boot), as described in the sections below.

Updating the Device Online

To update the device online on the machine from the NVIDIA site, use the following command line:

mlxfwmanager --online -u -d <device>

Example:

mlxfwmanager --online -u -d 0000:09:00.0
Querying Mellanox devices firmware ...
Device #1:
----------
Device Type:     ConnectX-5
Part Number:	 MCX545M-ECAN
Description:	 ConnectX®-5 VPI network interface card for OCP with Multi-Host, , with host management, EDR IB (100Gb/s) and 100GbE, single-port QSFP28, PCIe3.0 x16, no bracket
PSID:            MT_1020120019
PCI Device Name: 0000:09:00.0
Port1 GUID:      0002c9000100d051
Port2 MAC:       0002c9000002
Versions:        Current               Available
                 FW 2.32.5000          2.33.5000
Status:          Update required
---------
Found 1 device(s) requiring firmware update. Please use -u flag to perform the update.

Updating the Device Manually

To update the device manually, please refer to the OEM Firmware Download page at http://www.nvidia.com/page/firmware_table_dell?mtag=oem_firmware_download.

In case that you ran the mlnxofedinstall script with the ‘--without-fw-update’ option or you are using an OEM card and now you wish to (manually) update firmware on your adapter card(s), you need to perform the steps below. The following steps are also appropriate in case that you wish to burn newer firmware that you have downloaded from the NVIDIA web site (http://www.nvidia.com > Support > Firmware Download).

  1. Get the device’s PSID.

    mlxfwmanager_pci | grep PSID
    PSID: MT_1210110019
  2. Download the firmware BIN file from the NVIDIA website or the OEM website.

  3. Burn the firmware.

    mlxfwmanager_pci -i <fw_file.bin>
  4. Reboot your machine after the firmware burning is completed.

Updating the Device Firmware Automatically upon System Boot

As of MLNX_OFED v3.1-x.x.x, firmware can be automatically updated upon system boot. The firmware update package (mlnx-fw-updater) is installed in the “/opt/mellanox/mlnx-fw-updater” folder, and openibd service script can invoke the firmware update process if requested on boot.

If the firmware is updated, the following message is printed to the system’s standard logging file:

fw_updater: Firmware was updated. Please reboot your system for the changes to take effect.

Otherwise, the following message is printed:

fw_updater: Didn't detect new devices with old firmware.

Please note, this feature is disabled by default. To enable the automatic firmware update upon system boot, set the following parameter to “yes” “RUN_FW_UPDATER_ONBOOT=yes” in the openibd service configuration file “/etc/infiniband/openib.conf”.

You can opt to exclude a list of devices from the automatic firmware update procedure. To do so, edit the configurations file “/opt/mellanox/mlnx-fw-updater/mlnx-fw-updater.conf” and provide a comma separated list of PCI devices to exclude from the firmware update.
Example:

MLNX_EXCLUDE_DEVICES="00:05.0,00:07.0"

UEFI Secure Boot

All kernel modules included in MLNX_OFED for RHEL7 and SLES12 are signed with x.509 key to support loading the modules when Secure Boot is enabled.

Enrolling NVIDIA's x.509 Public Key on Your Systems

In order to support loading MLNX_OFED drivers when an OS supporting Secure Boot boots on a UEFI-based system with Secure Boot enabled, the NVIDIA x.509 public key should be added to the UEFI Secure Boot key database and loaded onto the system key ring by the kernel.
Follow these steps below to add the NVIDIA's x.509 public key to your system:

Prior to adding the NVIDIA x.509 public key to your system, please make sure that (1) The 'mokutil' package is installed on your system, and (2) The system is booted in UEFI mode.

  1. Download the x.509 public key.

    # wget http://www.nvidia.com/downloads/ofed/mlnx_signing_key_pub.der
  2. Add the public key to the MOK list using the mokutil utility.

    # mokutil --import mlnx_signing_key_pub.der
  3. Reboot the system.

The pending MOK key enrollment request will be noticed by shim.efi and it will launch MokManager.efi to allow you to complete the enrollment from the UEFI console. You will need to enter the password you previously associated with this request and confirm the enrollment. Once done, the public key is added to the MOK list, which is persistent. Once a key is in the MOK list, it will be automatically propagated to the system key ring and subsequent will be booted when the UEFI Secure Boot is enabled.

To see what keys have been added to the system key ring on the current boot, install the 'keyutils' package and run: #keyctl list %:.system_keyring#

Removing Signature from kernel Modules

The signature can be removed from a signed kernel module using the 'strip' utility which is provided by the 'binutils' package. The strip utility will change the given file without saving a backup. The operation can be undo only by resigning the kernel module. Hence, we recommend backing up a copy prior to removing the signature.

To remove the signature from the MLNX_OFED kernel modules:

  1. Remove the signature.

    # rpm -qa | grep -E "kernel-ib|mlnx-ofa_kernel|iser|srp|knem|mlnx-rds|mlnx-nfsrdma|mlnx-nvme|mlnx-rdma-rxe" | xargs rpm -ql | grep "\.ko$" | xargs strip -g

    After the signature has been removed, a massage as the below will no longer be presented upon module loading:

    "Request for unknown module key 'Mellanox Technologies signing key: 61feb074fc7292f958419386ffdd9d5ca999e403' err -11"

    However, please note that a similar message as the following will still be presented:

    "my_module: module verification failed: signature and/or required key missing - tainting kernel"

    This message is only presented once, upon first module boot that either has no signature or whose key is not in the kernel key ring. Therefore, this message may go unnoticed. Once the system is rebooted after unloading and reloading a kernel module, the message will appear. (Note that this message cannot be eliminated.) 

  2. Update the initramfs on RHEL systems with the stripped modules.

    mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) --force

Performance Tuning

Depending on the application of the user's system, it may be necessary to modify the default configuration of network adapters based on the ConnectX® adapters. In case that tuning is required, please refer to the Performance Tuning Guide for NVIDIA Network Adapters at https://community.nvidia.com/docs/DOC-2489.