open-gpu-kernel-modules
by
NVIDIA

Description: NVIDIA Linux open GPU kernel module source

View NVIDIA/open-gpu-kernel-modules on GitHub ↗

Summary Information

Updated 10 minutes ago
Added to GitGenius on March 11th, 2026
Created on May 2nd, 2022
Open Issues/Pull Requests: 299 (+0)
Number of forks: 1,615
Total Stargazers: 16,782 (+0)
Total Subscribers: 190 (+0)
Detailed Description

The "nvidia/open-gpu-kernel-modules" repository provides the source code for the NVIDIA Linux open GPU kernel modules. This release, version 595.45.04, allows users to build and install NVIDIA's GPU drivers directly from source, offering a level of customization and transparency not available with the pre-compiled drivers. The primary purpose of this repository is to provide the open-source components of the NVIDIA GPU driver stack, enabling users to understand, modify, and potentially contribute to the driver's functionality.

The core functionality of the repository revolves around building the kernel modules. Users can build the modules using the `make modules -j$(nproc)` command, which leverages the system's available CPU cores for parallel compilation. After building, the modules can be installed using `make modules_install -j$(nproc)`, but only after uninstalling any existing NVIDIA kernel modules. It's crucial to note that these open kernel modules are designed to work in conjunction with the corresponding user-space NVIDIA GPU driver components and GSP firmware, which can be installed using the NVIDIA driver's `.run` file with the `--no-kernel-modules` option. This ensures compatibility between the kernel-level and user-level components of the driver.

The repository supports building for both x86_64 and aarch64 CPU architectures. Cross-compilation is also supported, allowing users to build the modules for a different architecture than the build machine. This is achieved by setting specific environment variables like `TARGET_ARCH`, `CC`, `LD`, `AR`, `CXX`, and `OBJCOPY` during the `make` command. This flexibility is essential for supporting a wide range of hardware platforms.

Several build knobs are available to customize the build process. The `NV_VERBOSE` flag enables verbose output, displaying each command executed during the build. The `DEBUG` flag enables the compilation of debug information and debug log messages within the kernel modules, which is useful for development and troubleshooting. The repository supports any reasonably modern version of GCC or Clang for building the kernel modules. However, the kernel interface layers must be built with the same toolchain used to build the target kernel. The modules are designed to support Linux kernel versions 4.15 and newer, mirroring the support offered by NVIDIA's proprietary drivers.

The repository's structure is organized to reflect the modular nature of the NVIDIA driver. It contains both OS-agnostic code in the `src/` directory and kernel interface layers in the `kernel-open/` directory. The OS-agnostic code is designed to be independent of the operating system, while the kernel interface layers provide the necessary adaptations for specific Linux kernel versions and configurations. The repository also includes tools for integration with the Nouveau device driver, specifically the Python script in the `nouveau/` directory, which extracts firmware binary images used by Nouveau.

Contributions to the open-source kernel modules are welcome and can be submitted via pull requests on the GitHub repository. However, due to the nature of the code being shared with NVIDIA's proprietary drivers, contributions require manual merging and may not always be reflected as individual commits. Large refactoring changes may be difficult to integrate, and it's recommended to contact NVIDIA in advance for such changes. Issues specific to the open kernel modules can be reported through the repository's Issues section or other NVIDIA bug reporting channels. The repository also provides a list of compatible GPUs, including their PCI IDs, allowing users to verify compatibility with their hardware.

open-gpu-kernel-modules
by
NVIDIANVIDIA/open-gpu-kernel-modules

Repository Details

Fetching additional details & charts...