The NVIDIA open GPU kernel modules repository contains the source code for NVIDIA's Linux kernel drivers, released as version 610.43.02. This represents NVIDIA's effort to provide open-source kernel module implementations for their GPUs, enabling developers and system administrators to build and customize the kernel interface layers for their specific Linux environments.
The repository is written primarily in C and serves as the kernel interface layer for NVIDIA GPU drivers on Linux systems. The codebase is organized into distinct components: the kernel interface layers located in the kernel-open directory handle OS-specific interactions for nvidia.ko, nvidia-drm.ko, nvidia-modeset.ko, and nvidia-uvm.ko modules, while the src directory contains OS-agnostic code that is shared across different operating systems. This separation allows NVIDIA to maintain a single codebase while supporting multiple platforms through different kernel interface implementations.
Building the kernel modules is straightforward, using standard make commands with support for parallel compilation. The build system supports cross-compilation for both x86_64 and aarch64 architectures, allowing developers to compile for different target platforms. The modules require compatibility with GSP firmware and corresponding user-space driver components from the same 610.43.02 release, which can be installed separately using the --no-kernel-modules option. The build system offers additional knobs for verbose output and debug builds, and supports modern versions of both GCC and Clang toolchains.
The repository supports Linux kernel versions 4.15 and newer, matching the support range of NVIDIA's proprietary kernel modules. Compatible GPUs include all Turing generation and later architectures. The codebase includes integration tools for the Nouveau device driver, with Python scripts that extract firmware binary images from the source code for use by Nouveau in loading and communicating with GSP firmware.
NVIDIA explicitly documents that this repository functions primarily as a snapshot of each driver release rather than as an active development repository. The shared codebase with proprietary drivers means contributions require manual merging back into NVIDIA's internal systems, and large refactoring changes may be difficult to integrate. The repository maintains contributor guidelines requiring acceptance of a Contributor License Agreement and recommends contacting NVIDIA in advance for substantial changes. Issue reporting can occur through the GitHub repository or through NVIDIA's developer forums and email channels.