The NVIDIA GPU driver for Linux consists of multiple user space and
kernel space components, with the kernel space components implemented as
Linux kernel modules. The NVIDIA Linux driver package includes source
code for any portions of these kernel modules which interface directly
with the Linux kernel, and the NVIDIA kernel modules must be built
against the target kernel from a combination of these source code files
and precompiled binary portions. Beginning with the 355.xx release of
the NVIDIA Linux driver, a new layout and kernel module build system
will be used for the kernel modules that are included in the installer
package. Some key differences between the existing build system and the
new one include:
* Each kernel module will have its own subdirectory within the top
level kernel module source directory.
* Invoking the kernel module build from the top level directory will,
by default, build all NVIDIA kernel modules at once. For example,
instead of first building "nvidia.ko" as a prerequisite to building
"nvidia-uvm.ko", under the new build system, both "nvidia.ko" and
"nvidia-uvm.ko" are built within the same `make` invocation, with
the Linux Kbuild system handling the inter-module dependencies.
* All built kernel modules will be saved to the top level directory.
For example, instead of "nvidia.ko" being saved to the top level
directory, and "nvidia-uvm.ko" being saved to the "uvm/"
subdirectory, both modules will be saved to the top level directory.
* The new build system no longer supports building multiple instances
of the NVIDIA kernel module (e.g. "nvidia0.ko", "nvidia1.ko", ...)
which are managed by a shared "nvidia-frontend.ko" frontend module.
As this new build system may prove disruptive to existing tools which
repackage the NVIDIA driver, NVIDIA is providing example installer
packages which demonstrate the new layout. These packages include the
driver components from the already released 352.21 driver, with the
layout of the kernel module source files updated to reflect the layout
that will be used in the upcoming 355.xx and later driver releases.
These packages also include a version of `nvidia-installer` which has
been updated to handle the new kernel module source layout. An archive
which contains source code for the updated version of `nvidia-installer`
should be available from the same location as the example packages and
this README document.If you are a repackager of the NVIDIA Linux driver, please use these
packages to test any changes to your packaging tools that you may need
to make in order to accommodate the new layout.