Optional Components#
32 bit (i686) packages for Linux x86_64#
These packages provide 32-bit (i686) driver libraries needed for things such as Steam (popular game app store/launcher), older video games, and some compute applications.
Debian 12#
# dpkg --add-architecture i386
# apt update
# apt install nvidia-driver-libs:i386
By adding the architecture before installing the driver, the i386 packages are installed automatically.
Ubuntu 22.04/24.04#
# dpkg --add-architecture i386
# apt update
# apt install \
libnvidia-compute-<branch>:i386 libnvidia-decode-<branch>:i386 \
libnvidia-encode-<branch>:i386 libnvidia-extra-<branch>:i386 \
libnvidia-fbc1-<branch>:i386 libnvidia-gl-<branch>:i386
Where <branch> is the driver version, for example 590.
By adding the architecture before installing the driver, the i386 packages are installed automatically.
Red Hat Enterprise Linux 8/9, Rocky Linux 8/9, Oracle Linux 8/9, Fedora 42#
# dnf install nvidia-driver-cuda-libs.i686 nvidia-driver-libs.i686 libnvidia-ml.i686 libnvidia-fbc.i686
SUSE Enterprise Linux Server 15, OpenSUSE Leap 15#
# zypper install nvidia-compute-G07-32bit nvidia-gl-G07-32bit nvidia-video-G07-32bit
GPUDirect Storage#
Install NVIDIA Filesystem.
Red Hat Enterprise Linux 8/9
# dnf install nvidia-fs
Note
The GPUDirect storage module is shipped only in DKMS format; this means it requires the module source to be available. Starting with version 570 of the drivers, a mix of Precompiled streams and DKMS modules is no longer supported.
Having a mix of precompiled and DKMS modules makes every single benefit of the precompiled modules disappear completely:
Development packages and headers required to compile modules are still required.
Secure Boot can not be used without a custom MOK.
nvidia-peermemcan not be recompiled to leverage the OFED installations as it’s missing from the precompiled packages.It requires two extra packages containing the source of the precompiled modules to be installed along with the binary modules, making the installation more error-prone and complicated.
Until driver version 565, the source profile can be installed with this command to install the additional packages containing the source of the precompiled modules:
# dnf module install nvidia-driver:$stream/src
Ubuntu 22.04/24.04, Debian 12/13
# apt install nvidia-fs
Using nvidia-peermem#
The NVIDIA driver packages provide a kernel module, nvidia-peermem, which provides NVIDIA InfiniBand based HCAs (Host Channel Adapters) direct peer-to-peer read and write access to the NVIDIA GPU’s video memory. It allows GPUDirect RDMA-based applications to use GPU computing power with the RDMA interconnect without needing to copy data to host memory.
This capability is supported with NVIDIA ConnectX®-3 VPI or newer adapters. It works with both InfiniBand and RoCE (RDMA over Converged Ethernet) technologies.
NVIDIA OFED (Open Fabrics Enterprise Distribution), or MLNX_OFED, introduces an API between the InfiniBand Core and peer memory clients such as NVIDIA GPUs. The nvidia-peermem module registers the NVIDIA GPU with the InfiniBand subsystem by using peer-to-peer APIs provided by the NVIDIA GPU driver.
The kernel must have the required support for RDMA peer memory either through additional patches to the kernel or via MLNX_OFED as a prerequisite for loading and using nvidia-peermem. So unless the MLNX_OFED distribution is installed prior to installing the NVIDIA driver, the nvidia-peermem module will simply be built as a stub. Also whenever the OFED distribution changes, the module must be rebuilt to match the updated OFED kernel modules.
Automatic rebuild of nvidia-peermem#
DKMS has been extended to support automatic rebuilding of dependent kernel modules explicitly for this use case, so a specific configuration can be added to the system which requires nvidia-peermem with OFED support. It’s sufficient to add the following snippet to /etc/dkms/nvidia.conf prior or after installing the GPU driver or the OFED components:
BUILD_DEPENDS[4]="mlnx-ofed-kernel"
BUILD_DEPENDS_REBUILD="yes"
The first line refers to the nvidia-peermem module as defined in the /usr/src/nvidia-*/dkms.conf file; the number between square brackets must match with the module ID in that file. The second part is the DKMS module (so the DKMS “module” as a whole) on which it depends on.
The second line instructs DKMS to make sure the module ID declared in the first line changes if DKMS tracks a dependency change (update, rebuild for a new kernel, etc).
If the OFED distribution has been installed after the driver, a simple DKMS rebuild should suffice. An example with driver 590 on Fedora.
First, we remove the installed modules, so in case of a reinstall, these are not backed up:
# dkms status -m nvidia
nvidia/590.44.01, 6.17.11-300.fc42.x86_64, x86_64: installed
# dkms uninstall -m nvidia/590.44.01
Module nvidia/590.44.01 for kernel 6.17.11-300.fc42.x86_64 (x86_64):
Before uninstall, this module version was ACTIVE on this kernel.
Deleting /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia.ko.xz
Deleting /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia-modeset.ko.xz
Deleting /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia-drm.ko.xz
Deleting /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia-uvm.ko.xz
Deleting /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia-peermem.ko.xz
Running depmod..... done.
Executing post-transaction command.......... done.
# dkms status -m nvidia
nvidia/590.44.01, 6.17.11-300.fc42.x86_64, x86_64: built
Then, we force a rebuild, so nvidia-peermem is rebuilt and correctly linked to OFED:
# sudo dkms build -m nvidia/590.44.01 --force
Sign command: /lib/modules/6.17.11-300.fc42.x86_64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Building module(s).................... done.
Signing module /var/lib/dkms/nvidia/590.44.01/build/kernel-open/nvidia.ko
Signing module /var/lib/dkms/nvidia/590.44.01/build/kernel-open/nvidia-modeset.ko
Signing module /var/lib/dkms/nvidia/590.44.01/build/kernel-open/nvidia-drm.ko
Signing module /var/lib/dkms/nvidia/590.44.01/build/kernel-open/nvidia-uvm.ko
Signing module /var/lib/dkms/nvidia/590.44.01/build/kernel-open/nvidia-peermem.ko
And then we install it again:
# dkms install -m nvidia/590.44.01
Installing /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia.ko.xz
Installing /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia-modeset.ko.xz
Installing /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia-drm.ko.xz
Installing /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia-uvm.ko.xz
Installing /lib/modules/6.17.11-300.fc42.x86_64/extra/nvidia-peermem.ko.xz
Running depmod...... done.
Executing post-transaction command.......... done.
NVSwitch#
To install Fabric Manager, NSCQ, NVSDM, IMEX:
Red Hat Enterprise Linux 8/9, Rocky Linux 8/9, Oracle Linux 8/9, Amazon Linux 2023, Kylin 10
# dnf module install nvidia-driver:$stream/fm
Red Hat Enterprise Linux 10, Rocky Linux 10, Fedora 42
# dnf install nvidia-fabricmanager libnvidia-nscq libnvsdm nvidia-imex
SUSE Enterprise Linux Server 15, openSUSE Leap 15
# zypper install nvidia-fabricmanager libnvidia-nscq libnvsdm nvidia-imex
Azure Linux 3
# tdnf install nvidia-fabricmanager libnvidia-nscq libnvsdm nvidia-imex
Ubuntu 22.04/24.04, Debian 12/13
# apt install -V nvidia-fabricmanager libnvidia-nscq libnvsdm nvidia-imex
If you want to target a specific branch or release, these packages are tracked by the Version Locking packages. For more information please refer to the version locking section for APT.