NVIDIA engineers have released a note outlining their plans to transition NVIDIA proprietary drivers to use open modules in Linux nuclei for GPUs by default, starting with Turging (GeForce GTX 1600 and RTX 2000). The Linux modules used in NVIDIA drivers were open-sourced in spring 2022 under MIT and GPLV2 licenses, with the default plan being announced two months ago. This transition involves switching the main driver package to existing open modules that were previously optional, while keeping the firmware and components for user space proprietary, including libraries for CUDA, OpenGL, and Vulkan.
Until now, NVIDIA’s proprietary drivers offered both open and proprietary module options, with proprietary modules being used by default. The main difference between the open and proprietary options is that open modules can only be used with GPUs that have a separate GSP microcontroller (GPU System Processor). The presence of a GSP allows for the initialization and management of the GPU to be handled at the proto-firmware level. GSP is present in video cards based on microarchitectures like Turing, Ampere, ADA, and Hopper.
NVIDIA will cease supporting new GPUs in proprietary modules and focus solely on developing open modules. This means that new NVIDIA GRACE Hopper and NVIDIA Blackwell platforms, not supported in proprietary modules, will be supported in open modules. With the release of NVIDIA 560 drivers for standard GPUs from Turing onwards, and for GPU virtualization from ADA onwards, default variants of the nucleus including navidia.ko, nvidia-modeset.ko, nvidia-uvm.ko, nvidia-DRM.ko, and NVIDIA-PEERMEM.ko will be used when possible. Ubuntu, Debian, Suse, and Opensuse distributions are advised to use the NVIDIA-OPEN package, while RHEL-based distributions should opt for the NVIDIA-DRIVER: Open-DKMS system.
To install proprietary modules in the system, users need to specify the option “–kernel-module-type=proprietary” when running the NVIDIA driver installation archive.