About this project

This repository contains the source release for NVIDIA's Linux open GPU kernel modules, including the kernel interface layers for nvidia.ko, nvidia-drm.ko, nvidia-modeset.ko, and nvidia-uvm.ko. The modules are built with "make modules" and installed with "make modules_install" after removing existing NVIDIA kernel modules. They must be used with GSP firmware and user-space NVIDIA driver components from the matching 615.71.09 release; the corresponding .run installer can be run with --no-kernel-modules to provide those components. The source supports native or cross builds for x86_64 and aarch64. Cross-compilation uses TARGET_ARCH plus CC, LD, AR, CXX, and OBJCOPY settings. Modern GCC or Clang can be used, although the kernel interface layer must be built with the toolchain used for the target kernel. Supported Linux kernels begin with 4.15. Build options include NV_VERBOSE=1 for full command output and DEBUG=1 for debug builds and additional logging. The code is organized into kernel-open for Linux-specific kernel interface code, src for OS-agnostic code and shared utilities, and nouveau for a Python script that extracts GSP firmware images and related data for use by the Nouveau driver. The README documents that nvidia.ko and nvidia-modeset.ko have OS-agnostic components, while nvidia-drm.ko and nvidia-uvm.ko do not. Compatible hardware is described as Turing or later NVIDIA GPUs, with a PCI ID table provided in the repository. Feature limitations and vGPU details are directed to NVIDIA's driver documentation. Contributions are handled through GitHub pull requests and require a CLA. NVIDIA notes that the repository is largely a per-driver-release snapshot of shared proprietary driver code, so history may be limited and large refactors may require coordination. Issues can be reported on GitHub, NVIDIA's Linux forum, or linux-bugs@nvidia.com, with SECURITY.md covering vulnerability reporting.