Differences between revisions 340 and 373 (spanning 33 versions)
Revision 340 as of 2020-12-05 02:14:46
Size: 21408
Comment: Version bump for 450.80.02 in buster-backports, and upgrade HTTP links to HTTPS
Revision 373 as of 2022-04-24 01:42:52
Size: 40275
Editor: ?Forest
Comment: Add contrib & non-free on Bullseye for driver version 470.103.01. Skipping this step fails on a new Bullseye installation as of 2022-04-22.
Deletions are marked like this. Additions are marked like this.
Line 47: Line 47:
Multiple precompiled driver versions are available for [[DebianSid|Debian Unstable "Sid"]]:
 * [[#sid-470|Version 470.103.00]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/470.103.01/README/supportedchips.html|supported devices]])
  * Supports Kepler, Maxwell, Pascal, Turing, and all current Ampere GPUs. Supports Vulkan 1.2 and OpenGL 4.6.
 * [[#sid-390|Version 390.144]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/390.144/README/supportedchips.html|supported devices]])
  * Supports Fermi, Kepler, Maxwell, and most Pascal GPUs. Supports Vulkan 1.0 on Kepler and newer, supports up to OpenGL 4.5 depending on your card.
 * [[#sid-340|Version 340.108 (legacy GPUs)]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/340.108/README/supportedchips.html|supported devices]])
  * Older legacy driver, for !GeForce 8 series through !GeForce 300 series. No Vulkan support, supports up to OpenGL 3.3 depending on your card.
  * '''Use of the 340-series driver is strongly discouraged.''' It is not included in stable releases of Debian anymore, has serious unfixable security vulnerabilities, and may not be updated for new kernels in a timely manner. You are highly recommended to use the built-in Nouveau driver if security is a priority.

Multiple precompiled driver versions are available for [[DebianBookworm|Debian 12 "Bookworm"]]:
 * [[#bookworm-470|Version 470.103.01]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/470.103.01/README/supportedchips.html|supported devices]])
  * Supports Kepler, Maxwell, Pascal, Turing, and all current Ampere GPUs. Supports Vulkan 1.2 and OpenGL 4.6.
 * [[#bookworm-390|Version 390.144]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/390.144/README/supportedchips.html|supported devices]])
  * Supports Fermi, Kepler, Maxwell, and most Pascal GPUs. Supports Vulkan 1.0 on Kepler and newer, supports up to OpenGL 4.5 depending on your card.

Multiple precompiled driver versions are available for [[DebianBullseye|Debian 11 "Bullseye"]]:
 * [[#bullseye-470|Version 470.103.01]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/470.103.01/README/supportedchips.html|supported devices]])
  * Supports Kepler, Maxwell, Pascal, Turing, and all current Ampere GPUs. Supports Vulkan 1.2 and OpenGL 4.6.
 * [[#bullseye-460|Version 460.91.03]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/460.91.03/README/supportedchips.html|supported devices]])
  * Supports Kepler, Maxwell, Pascal, Turing, and all current Ampere GPUs. Supports Vulkan 1.2 and OpenGL 4.6.
 * [[#bullseye-390|Version 390.144]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/390.144/README/supportedchips.html|supported devices]])
  * Supports Fermi, Kepler, Maxwell, and most Pascal GPUs. Supports Vulkan 1.0 on Kepler and newer, supports up to OpenGL 4.5 depending on your card.
  
Line 49: Line 72:
 * [[#buster-450|Version 450.80.02]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/450.80.02/README/supportedchips.html|supported devices]])
  * Supports Kepler, Maxwell, Pascal, and all current Turing GPUs. Supports Vulkan 1.2 and OpenGL 4.6.
  * Note that 450.80.02 is currently only available in buster-backports.
 * [[#buster-418|Version 418.152]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/418.113/README/supportedchips.html|supported devices]])
 * [[#buster-460|Version 460.73.01]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/460.73.01/README/supportedchips.html|supported devices]])
  * Supports Kepler, Maxwell, Pascal, Turing, and all current Ampere GPUs. Supports Vulkan 1.2 and OpenGL 4.6.
  * Note that 460.73.01 is only available in buster-backports.
 * [[#buster-418|Version 418.197.02]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/418.113/README/supportedchips.html|supported devices]])
Line 54: Line 77:
 * [[#buster-390|Version 390.132]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/390.132/README/supportedchips.html|supported devices]])  * [[#buster-390|Version 390.143]] ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/390.143/README/supportedchips.html|supported devices]])
Line 63: Line 86:
  * Note that 418.152 is currently only available in stretch-backports.   * Note that 418.152 is only available in stretch-backports.
Line 71: Line 94:
All versions above are available only for the x86, x86-64, and 32-bit ARMv7 architectures (Debian [[i386]], [[DebianAMD64|AMD64]], and [[ArmHardFloatPort|ARMHF]] ports respectively).
----
All driver versions up to, and including, the 418-series, are only available for the x86, x86-64, and 32-bit ARMv7 architectures (Debian [[i386]], [[DebianAMD64|AMD64]], and [[ArmHardFloatPort|ARMHF]] ports respectively).

The 450-series and newer has dropped support for 32-bit architectures, now only supporting x86-64 and ARMv8 (Debian [[DebianAMD64|AMD64]] and [[Arm64Port|ARM64]] ports respectively).
----
=== Prerequisites ===

==== Kernel headers ====

Before installing the drivers, you '''must''' obtain the proper kernel headers for the NVIDIA driver to build with.

For a typical 64-bit system using the default kernel, you can simply run:
{{{
# apt install linux-headers-amd64
}}}

For 32-bit systems with the non-PAE kernel, you'd instead install:
{{{
# apt install linux-headers-686
}}}
Or, for 32-bit systems with the PAE kernel:
{{{
# apt install linux-headers-686-pae
}}}
If you're using the kernel from [[Backports|Debian Backports]], you must run the same command but with the {{{-t}}} flag followed by the name of your backports source. For instance, if you're using backports on a 64-bit Debian 10 system, you might run:
{{{
# apt install -t buster-backports linux-headers-amd64
}}}

----

==== Kernel ====

In some cases, if you're aiming to install the bleeding-edge version of the NVIDIA driver from Debian Backports, you may
also need to install the kernel from backports to match it. For Debian 10, you might do this with:
{{{
# apt install -t buster-backports linux-image-amd64
}}}
Exchange "buster-backports" with your own version's backports repository as necessary.

----
Line 74: Line 136:

==== Kernel ====

There were cases when just installing {{{nvidia-driver}}} package (from [[Backports|Debian Backports]]) was not sufficient.
If this is the case, then there is an option to consider upgrading the Linux kernel to [[Backports|Debian Backports]] version as well:
{{{
# apt install -t buster-backports linux-image-amd64
}}}

==== Kernel headers ====

Before installing the drivers, you must obtain the proper kernel headers for the drivers to build with.

For a typical 64-bit system using the default kernel, you can simply run:
{{{
# apt install linux-headers-amd64
}}}

For 32-bit systems with the non-PAE kernel, you'd instead install:
{{{
# apt install linux-headers-686
}}}
Or, for 32-bit systems with the PAE kernel:
{{{
# apt install linux-headers-686-pae
}}}
If you're using the kernel from [[Backports|Debian Backports]], you must run the same command but with the {{{-t}}} flag followed by the name of your backports source. For instance, if you're using Buster's backports on a 64-bit system, you might run:
{{{
# apt install -t buster-backports linux-headers-amd64
}}}
----
==== Debian Unstable "Sid" ====

<<Anchor(sid-470)>>
===== Version 470.103.01 =====
For support of !GeForce 600 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/470.103.01/README/supportedchips.html|supported devices]]). For older devices, see [[#sid-390|Version 390 (legacy GPUs]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian Sid
deb http://deb.debian.org/debian/ sid main contrib non-free
}}}
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-driver package, plus the necessary firmware: {{{
# apt update
# apt install nvidia-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-kernel-dkms package.
  * ''Optional'': if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
 1. Restart your system to load the new driver.

<<Anchor(sid-390)>>
===== Version 390.144 =====
For support of !GeForce 400 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86/390.144/README/supportedchips.html|supported devices]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian Sid
deb http://deb.debian.org/debian/ sid main contrib non-free
}}}
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-legacy-390xx-driver package, plus the necessary firmware: {{{
# apt update
# apt install nvidia-legacy-390xx-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-legacy-390xx-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
 1. Restart your system to load the new driver.

<<Anchor(sid-340)>>
===== Version 340.108 =====
For support of !GeForce 8 series through !GeForce 300 series GPUs([[https://us.download.nvidia.com/XFree86/Linux-x86/340.108/README/supportedchips.html|supported devices]]).

'''Use of the 340-series driver is strongly discouraged.''' It is not included in stable releases of Debian anymore, has serious unfixable security vulnerabilities, and may not be updated for new kernels in a timely manner. You are highly recommended to use the built-in Nouveau driver if security is a priority.

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian Sid
deb http://deb.debian.org/debian/ sid main contrib non-free
}}}
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-legacy-340xx-driver package, plus the necessary firmware: {{{
# apt update
# apt install nvidia-legacy-340xx-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-legacy-340xx-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
 1. Restart your system to load the new driver.

----

==== Debian 12 "Bookworm" ====

<<Anchor(bookworm-470)>>
===== Version 470.103.01 =====
For support of !GeForce 600 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/470.103.01/README/supportedchips.html|supported devices]]). For older devices, see [[#bookworm-390|Version 390 (legacy GPUs]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian Bookworm
deb http://deb.debian.org/debian/ bookworm main contrib non-free
}}}
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-driver package, plus the necessary firmware: {{{
# apt update
# apt install nvidia-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
 1. Restart your system to load the new driver.

<<Anchor(bookworm-390)>>
===== Version 390.144 =====
For support of !GeForce 400 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86/390.144/README/supportedchips.html|supported devices]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian Bookworm
deb http://deb.debian.org/debian/ bookworm main contrib non-free
}}}
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-legacy-390xx-driver package, plus the necessary firmware: {{{
# apt update
# apt install nvidia-legacy-390xx-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-legacy-390xx-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
 1. Restart your system to load the new driver.

----

==== Debian 11 "Bullseye" ====
<<Anchor(bullseye-470)>>
===== Version 470.103.01 =====
For support of !GeForce 600 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/470.103.01/README/supportedchips.html|supported devices]]). For older devices, see [[#bullseye-390|Version 390 (legacy GPUs]]).


 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian Bullseye
deb http://deb.debian.org/debian/ bullseye main contrib non-free
}}}

 1. Add bullseye-backports as an additional new line to your /etc/apt/sources.list, for example: {{{
# bullseye-backports
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
}}}

 1. Update the list of available packages, then we can install the DebianPkg:nvidia-driver package, plus the necessary firmware, from the backports repository:{{{
# apt update
# apt install -t bullseye-backports nvidia-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
 1. Reboot your system to load the updated driver.

<<Anchor(bullseye-460)>>
===== Version 460.91.03 =====
For support of !GeForce 600 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/460.91.03/README/supportedchips.html|supported devices]]). For older devices, see [[#bullseye-390|Version 390 (legacy GPUs]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian 11 "Bullseye"
deb http://deb.debian.org/debian/ bullseye main contrib non-free
}}}
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-driver package, plus the necessary firmware: {{{
# apt update
# apt install nvidia-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
 1. Restart your system to load the new driver.

<<Anchor(bullseye-390)>>
===== Version 390.144 =====
For support of !GeForce 400 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86/390.144/README/supportedchips.html|supported devices]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian 11 "Bullseye"
deb http://deb.debian.org/debian/ bullseye main contrib non-free
}}}
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-legacy-390xx-driver package, plus the necessary firmware: {{{
# apt update
# apt install nvidia-legacy-390xx-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-legacy-390xx-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
 1. Restart your system to load the new driver.

----
Line 107: Line 286:
<<Anchor(buster-450)>>
===== Version 450.80.02 (via buster-backports) =====

For support of !GeForce 600 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/450.80.02/README/supportedchips.html|supported devices]]). For older devices, see [[#buster-390|Version 390.132 (legacy GPUs)]] and [[#buster-340|Version 340.108 (legacy GPUs)]].

 1. Add buster-backports to your /etc/apt/sources.list, for example: {{{
<<Anchor(buster-460)>>
===== Version 460.73.01 (via buster-backports) =====

For support of !GeForce 600 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/460.73.01/README/supportedchips.html|supported devices]]). For older devices, see [[#buster-390|Version 390 (legacy GPUs)]] and [[#buster-340|Version 340 (legacy GPUs)]].

 1. Add buster-backports as an additional new line to your /etc/apt/sources.list, for example: {{{
Line 117: Line 296:
 1. Then we can install the package DebianPkg:nvidia-driver.{{{
# apt update
# apt install -t buster-backports nvidia-driver
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-kernel-dkms package.
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-driver package, plus the necessary firmware, from the backports repository:{{{
# apt update
# apt install -t buster-backports nvidia-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
Line 127: Line 306:
===== Version 418.152 =====

For support of !GeForce 600 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/418.113/README/supportedchips.html|supported devices]]). For older devices, see [[#buster-390|Version 390.132 (legacy GPUs)]] and [[#buster-340|Version 340.108 (legacy GPUs)]].
===== Version 418.197.02 =====

For support of !GeForce 600 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/418.113/README/supportedchips.html|supported devices]]). For older devices, see [[#buster-390|Version 390 (legacy GPUs)]] and [[#buster-340|Version 340 (legacy GPUs)]].
Line 135: Line 314:
 1. Update the list of available packages. Install the NVIDIA driver package: {{{
# apt update
# apt install nvidia-driver
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-kernel-dkms package.
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-driver package, plus the necessary firmware: {{{
# apt update
# apt install nvidia-driver firmware-misc-nonfree
}}}
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
Line 143: Line 323:
===== Version 390.132 (legacy GPUs) =====

For support of !GeForce 400 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86/390.132/README/supportedchips.html|supported devices]]).
===== Version 390.138 (legacy GPUs) =====

For support of !GeForce 400 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86/390.138/README/supportedchips.html|supported devices]]).
Line 151: Line 331:
 1. Update the list of available packages. Install the legacy NVIDIA driver: {{{
# apt update
# apt install nvidia-legacy-390xx-driver}}}
 1.  Update the list of available packages, then we can install the DebianPkg:nvidia-legacy-390xx-driver package, plus the necessary firmware:{{{
# apt update
# apt install nvidia-legacy-390xx-driver firmware-misc-nonfree}}}
Line 155: Line 335:
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
Line 166: Line 347:
 1. Update the list of available packages. Install the NVIDIA driver package:{{{  1. Update the list of available packages, then we can install the DebianPkg:nvidia-legacy-340xx-driver package:{{{
Line 170: Line 351:
 DKMS will build the {{{nvidia}}} module for your system, via the nvidia-legacy-340xx-kernel-dkms package.

 After, create an [[#configure|Xorg server configuration file]] and then restart your system to enable the nouveau blacklist.
 DKMS will build the {{{nvidia}}} module for your system, via the DebianPkg:nvidia-legacy-340xx-kernel-dkms package.
  * ''Optional'' : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available [[SecureBoot#Using_your_key_to_sign_modules|here]].
 1. After, create an [[#configure|Xorg server configuration file]] and then restart your system to enable the nouveau blacklist.
Line 182: Line 363:
For support of !GeForce 700 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/418.152/README/supportedchips.html|supported devices]]). For older devices, see [[#stretch-340xx|Version 340.102 (legacy GPUs)]] and [[#stretch-304xx|Version 304.137 (legacy GPUs)]].

 1. Add stretch-backports to your /etc/apt/sources.list, for example: {{{
For support of !GeForce 700 series and newer GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/418.152/README/supportedchips.html|supported devices]]). For older devices, see [[#stretch-340xx|Version 340 (legacy GPUs)]] and [[#stretch-304xx|Version 304 (legacy GPUs)]].

 1. Add stretch-backports as an additional new line to your /etc/apt/sources.list, for example: {{{
Line 189: Line 370:
 1. Then we can install the package DebianPkg:nvidia-driver.{{{
# apt update
# apt install -t stretch-backports nvidia-driver
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-driver package, plus the necessary firmware, from the backports repository:{{{
# apt update
# apt install -t stretch-backports nvidia-driver firmware-misc-nonfree
Line 200: Line 381:
For support of !GeForce 400 series and higher GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/390.138/README/supportedchips.html|supported devices]]). For older devices, see [[#stretch-340xx|Version 340.105 (legacy GPUs)]] and [[#stretch-304xx|Version 304.137 (legacy GPUs)]]. For support of !GeForce 400 series and higher GPUs ([[https://us.download.nvidia.com/XFree86/Linux-x86_64/390.138/README/supportedchips.html|supported devices]]). For older devices, see [[#stretch-340xx|Version 340 (legacy GPUs)]] and [[#stretch-304xx|Version 304 (legacy GPUs)]].
Line 206: Line 387:
 1. Update the list of available packages. Install the NVIDIA driver package: {{{
# apt update
# apt install nvidia-driver
 1. Update the list of available packages, then we can install the DebianPkg:nvidia-driver package, plus the necessary firmware: {{{
# apt update
# apt install nvidia-driver firmware-misc-nonfree
Line 222: Line 403:
 1. Update the list of available packages. Install the appropriate NVIDIA driver package: {{{  1. Update the list of available packages, then we can install the DebianPkg:nvidia-legacy-340xx-driver package: {{{
Line 238: Line 419:
 1. Update the list of available packages. Install the appropriate NVIDIA driver package:  1. Update the list of available packages, then we can install the DebianPkg:nvidia-legacy-304xx-driver package:
Line 267: Line 448:
== Wayland ==
The NVIDIA driver supports Wayland, with caveats. The 495-series driver
(or newer) is recommended for the best experience, as older versions only
support Wayland through an NVIDIA-specific API which is not supported by
all desktops, and is generally less reliable.

The NVIDIA driver also lacks support for accelerated XWayland
applications in current stable Debian versions.
This means that if you run a Xorg-only application on your NVIDIA Wayland
desktop (often proprietary video games), they will only be able to render
on the CPU without taking advantage of GPU acceleration, leading to
incredibly poor performance. [[https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/587|Patches have been merged to resolve this]], however this support will only be available in [[DebianBookworm|Debian 12/Bookworm]].

In terms of specific desktop support, GNOME supports NVIDIA Wayland sessions
in both Debian 10 and Debian 11, though they call their support "preliminary".
KDE Plasma supports NVIDIA Wayland sessions starting with Debian 11,
though it requires some extra hoops to enable, and generally is not recommended.
Refer to the Wayland section of the Debian KDE wiki page for up-to-date information:
https://wiki.debian.org/KDE#Wayland.2C_touchscreens.2C_autorotation.2C_hi-DPI

In Debian 12 (currently Debian Testing), almost all issues should be resolved
and most Wayland sessions should "just work" with the 495-series driver,
however some major issues remain with KDE Plasma. These will require merging
KDE's Qt 5 patch collection to fix: https://salsa.debian.org/qt-kde-team/qt/qtwayland/-/merge_requests/5

----
Line 311: Line 519:
=== Debian Unstable "Sid" ===

CUDA 11.4.3 is available from the non-free repository:
{{{
# apt install nvidia-cuda-dev nvidia-cuda-toolkit
}}}
This installs {{{nvcc}}} and friends. The visual profiler is in a separate package named DebianPkg:nvidia-visual-profiler.

=== Debian 12 "Bookworm" ===

CUDA 11.4.3 is available from the non-free repository:
{{{
# apt install nvidia-cuda-dev nvidia-cuda-toolkit
}}}
This installs {{{nvcc}}} and friends. The visual profiler is in a separate package named DebianPkg:nvidia-visual-profiler.


=== Debian 11 "Bullseye" ===

CUDA 11.2.2 is available from the non-free repository:
{{{
# apt install nvidia-cuda-dev nvidia-cuda-toolkit
}}}
This installs {{{nvcc}}} and friends. The visual profiler is in a separate package named DebianPkg:nvidia-visual-profiler.
Line 313: Line 546:
CUDA 9 is available from the non-free repository: CUDA 9.2.148 is available from the non-free repository:
Line 317: Line 550:
And, if [[Backports]] are enabled, CUDA 10 is available similarly: And, if [[Backports]] are enabled, CUDA 11.2.1 is available similarly:
Line 322: Line 555:
Line 324: Line 558:
CUDA 8 is available from the non-free repository: CUDA 8.0.44 is available from the non-free repository:
Line 330: Line 564:
And, if [[Backports]] are enabled, CUDA 9.1.85 is available similarly:
{{{
# apt -t stretch-backports install nvidia-cuda-dev nvidia-cuda-toolkit
}}}
Line 334: Line 573:
The Debian CUDA packages unfortunately do not include the Toolkit samples. To install these yourself you need to download the "Ubuntu 16.04" `.run` install file for CUDA 8 from https://developer.nvidia.com/cuda-downloads. Execute the `.run` file and (after accepting the licence and agreeing to run on a non-supported system) skip the driver and toolkit installation and just select "Samples. Note before this step you must The Debian CUDA packages unfortunately do not include the Toolkit samples. To install these yourself you need to download the "Ubuntu 16.04" `.run` install file for CUDA 8 from https://developer.nvidia.com/cuda-downloads. Execute the `.run` file and (after accepting the license and agreeing to run on a non-supported system) skip the driver and toolkit installation and just select "Samples". Note before this step you must
Line 342: Line 581:
Note that if you are mixed code compiled with `gcc` and `nvcc`, [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=861878|you may need to also add]]
{{{
--compiler-options -fpie
}}}
to the {{{nvcc}}} command line.
Line 351: Line 585:
=== Build failures ===
The NVIDIA driver can fail to build for several potential reasons.

1. You've installed a kernel from backports without installing
the NVIDIA driver from backports. This can, in some cases, mean
that the kernel is too new for the driver version you're attempting to use.
Check this by viewing the package description for the NVIDIA driver where
it will mention something along the lines of, "Building the kernel module
has been tested up to Linux X.X" to figure out what's supported.

2. Particularly if you're on Debian Testing or Debian Unstable,
the driver might not support your kernel yet. Often, new versions
of the Linux kernel will explicitly require an update to the driver
in order to be supported, so if the kernel package updates before
the driver has a chance to be patched for it, you won't be able to use
the NVIDIA driver. Solutions for this, from most to least recommended,
are temporarily using an older kernel until the driver is updated,
installing a newer version of the driver from Debian Experimental if
one is available that supports your kernel version, or finding a patch
for the build failure online that can be added to DKMS. The last two
options are for advanced users
'''and may break your system or, in the
case of adding a third-party patch, introduce security issues, forcing you to potentially reinstall completely or spend hours recovering your system. Caveat emptor.'''

3. Legacy versions of the NVIDIA driver may not always support the latest kernel.
For instance, the 304xx series driver, though available in the Debian Unstable
repository, does not support Linux 5.0 or newer. As necessary, you might consider
using an older Debian version, or using Nouveau instead. Nouveau has decent
performance with GPUs that are old enough to no longer be supported by the
proprietary driver.

=== Driver stops working after upgrading Debian ===
When going between two major Debian releases (e.g., upgrading
from Debian 9/Stretch to Debian 10/Buster), it's possible that the
driver will stop functioning despite the build succeeding and no other
issues being easily visible. This is most often caused by the
DebianPkg:nvidia-driver package updating to a newer major release that
no longer supports your hardware, as NVIDIA regularly drops support for
older hardware generations. You will need to uninstall all your existing
NVIDIA packages (refer to the section below for instructions on how to do so),
and instead install the most recent legacy driver that still supports your GPU.

=== GPU isn't functional, even with a compatible driver version installed ===
If you have an extremely modern NVIDIA GPU that was manufactured after the release of your
Debian version, it may not work even after installing the newest backported driver
that claims to support your card. If so, you likely need to upgrade the non-free firmware
package on your system as well by installing the DebianPkg:firmware-misc-nonfree package
from backports. For instance, on a Debian 10 system with backports enabled:
{{{
# apt install -t buster-backports firmware-misc-nonfree
}}}
After rebooting, the driver should be able to load the appropriate firmware.

=== Miscellaneous ===
Line 376: Line 663:
# apt purge *nvidia* # apt purge "*nvidia*"

Translation(s): English - Español - Français - Italiano - Русский - 简体中文


NVIDIA Proprietary Driver

This page describes how to install the NVIDIA proprietary display driver on Debian systems.

Commands in this article prefixed with a # indicate they must be run as root. Replace this character with sudo or switch user to root in your terminal beforehand as necessary.

NOTE: For Apple systems, follow these steps first to prevent a black screen after installing the drivers: https://askubuntu.com/a/613573/134848

Identification

The NVIDIA graphics processing unit (GPU) series/codename of an installed video card can usually be identified using the lspci command. For example:

  • $ lspci -nn | egrep -i "3d|display|vga"
    07:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM206 [GeForce GTX 960] [10de:1401] (rev a1)

See HowToIdentifyADevice/PCI for more information. The PCI ID can be used to verify device support.

Note: if this lspci command returns more than one line of output, you have an Optimus (hybrid) graphics chipset. After you install the necessary driver package, you'll still need to choose one of the methods on the NVIDIA Optimus page in order to activate and make use of your NVIDIA card.

nvidia-detect

The nvidia-detect script (found in the nvidia-detect package in the non-free section) can also be used to identify the GPU and the recommended driver package to install:

  • $ nvidia-detect 
    Detected NVIDIA GPUs:
    07:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM206 [GeForce GTX 960] [10de:1401] (rev a1)
    
    Checking card:  NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)
    Your card is supported by all driver versions.
    Your card is also supported by the Tesla 440 drivers series.
    Your card is also supported by the Tesla 418 drivers series.
    It is recommended to install the
        nvidia-driver
    package.


Desktop Drivers

The proprietary "NVIDIA Accelerated Linux Graphics Driver" provides optimized hardware acceleration of OpenGL and Vulkan applications through either Xorg or Wayland. It is a binary-only driver requiring a Linux kernel module for its use.

Multiple precompiled driver versions are available for Debian Unstable "Sid":

  • Version 470.103.00 (supported devices)

    • Supports Kepler, Maxwell, Pascal, Turing, and all current Ampere GPUs. Supports Vulkan 1.2 and OpenGL 4.6.
  • Version 390.144 (supported devices)

    • Supports Fermi, Kepler, Maxwell, and most Pascal GPUs. Supports Vulkan 1.0 on Kepler and newer, supports up to OpenGL 4.5 depending on your card.
  • Version 340.108 (legacy GPUs) (supported devices)

    • Older legacy driver, for GeForce 8 series through GeForce 300 series. No Vulkan support, supports up to OpenGL 3.3 depending on your card.

    • Use of the 340-series driver is strongly discouraged. It is not included in stable releases of Debian anymore, has serious unfixable security vulnerabilities, and may not be updated for new kernels in a timely manner. You are highly recommended to use the built-in Nouveau driver if security is a priority.

Multiple precompiled driver versions are available for Debian 12 "Bookworm":

Multiple precompiled driver versions are available for Debian 11 "Bullseye":

Multiple precompiled driver versions are available for Debian 10 "Buster":

Multiple precompiled driver versions are available for Debian 9 "Stretch":

All driver versions up to, and including, the 418-series, are only available for the x86, x86-64, and 32-bit ARMv7 architectures (Debian i386, AMD64, and ARMHF ports respectively).

The 450-series and newer has dropped support for 32-bit architectures, now only supporting x86-64 and ARMv8 (Debian AMD64 and ARM64 ports respectively).


Prerequisites

Kernel headers

Before installing the drivers, you must obtain the proper kernel headers for the NVIDIA driver to build with.

For a typical 64-bit system using the default kernel, you can simply run:

# apt install linux-headers-amd64

For 32-bit systems with the non-PAE kernel, you'd instead install:

# apt install linux-headers-686

Or, for 32-bit systems with the PAE kernel:

# apt install linux-headers-686-pae

If you're using the kernel from Debian Backports, you must run the same command but with the -t flag followed by the name of your backports source. For instance, if you're using backports on a 64-bit Debian 10 system, you might run:

# apt install -t buster-backports linux-headers-amd64


Kernel

In some cases, if you're aiming to install the bleeding-edge version of the NVIDIA driver from Debian Backports, you may also need to install the kernel from backports to match it. For Debian 10, you might do this with:

# apt install -t buster-backports linux-image-amd64

Exchange "buster-backports" with your own version's backports repository as necessary.


Installation

Debian Unstable "Sid"

Version 470.103.01

For support of GeForce 600 series and newer GPUs (supported devices). For older devices, see Version 390 (legacy GPUs).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian Sid
    deb http://deb.debian.org/debian/ sid main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-kernel-dkms package.

    • Optional: if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Restart your system to load the new driver.

Version 390.144

For support of GeForce 400 series and newer GPUs (supported devices).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian Sid
    deb http://deb.debian.org/debian/ sid main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-legacy-390xx-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-legacy-390xx-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-legacy-390xx-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Restart your system to load the new driver.

Version 340.108

For support of GeForce 8 series through GeForce 300 series GPUs(supported devices).

Use of the 340-series driver is strongly discouraged. It is not included in stable releases of Debian anymore, has serious unfixable security vulnerabilities, and may not be updated for new kernels in a timely manner. You are highly recommended to use the built-in Nouveau driver if security is a priority.

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian Sid
    deb http://deb.debian.org/debian/ sid main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-legacy-340xx-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-legacy-340xx-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-legacy-340xx-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Restart your system to load the new driver.


Debian 12 "Bookworm"

Version 470.103.01

For support of GeForce 600 series and newer GPUs (supported devices). For older devices, see Version 390 (legacy GPUs).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian Bookworm
    deb http://deb.debian.org/debian/ bookworm main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Restart your system to load the new driver.

Version 390.144

For support of GeForce 400 series and newer GPUs (supported devices).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian Bookworm
    deb http://deb.debian.org/debian/ bookworm main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-legacy-390xx-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-legacy-390xx-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-legacy-390xx-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Restart your system to load the new driver.


Debian 11 "Bullseye"

Version 470.103.01

For support of GeForce 600 series and newer GPUs (supported devices). For older devices, see Version 390 (legacy GPUs).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian Bullseye
    deb http://deb.debian.org/debian/ bullseye main contrib non-free
  2. Add bullseye-backports as an additional new line to your /etc/apt/sources.list, for example:

    # bullseye-backports
    deb http://deb.debian.org/debian bullseye-backports main contrib non-free
  3. Update the list of available packages, then we can install the nvidia-driver package, plus the necessary firmware, from the backports repository:

    # apt update
    # apt install -t bullseye-backports nvidia-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  4. Reboot your system to load the updated driver.

Version 460.91.03

For support of GeForce 600 series and newer GPUs (supported devices). For older devices, see Version 390 (legacy GPUs).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian 11 "Bullseye"
    deb http://deb.debian.org/debian/ bullseye main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Restart your system to load the new driver.

Version 390.144

For support of GeForce 400 series and newer GPUs (supported devices).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian 11 "Bullseye"
    deb http://deb.debian.org/debian/ bullseye main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-legacy-390xx-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-legacy-390xx-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-legacy-390xx-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Restart your system to load the new driver.


Debian 10 "Buster"

Version 460.73.01 (via buster-backports)

For support of GeForce 600 series and newer GPUs (supported devices). For older devices, see Version 390 (legacy GPUs) and Version 340 (legacy GPUs).

  1. Add buster-backports as an additional new line to your /etc/apt/sources.list, for example:

    # buster-backports
    deb http://deb.debian.org/debian buster-backports main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-driver package, plus the necessary firmware, from the backports repository:

    # apt update
    # apt install -t buster-backports nvidia-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Reboot your system to load the updated driver.

Version 418.197.02

For support of GeForce 600 series and newer GPUs (supported devices). For older devices, see Version 390 (legacy GPUs) and Version 340 (legacy GPUs).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian 10 "Buster"
    deb http://deb.debian.org/debian/ buster main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Restart your system to load the new driver.

Version 390.138 (legacy GPUs)

For support of GeForce 400 series and newer GPUs (supported devices).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian 10 "Buster"
    deb http://deb.debian.org/debian/ buster main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-legacy-390xx-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-legacy-390xx-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-legacy-390xx-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. Restart your system to load the new driver.

Version 340.108 (legacy GPUs)

For support of GeForce 8 series through GeForce 300 series GPUs. (supported devices).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian 10 "Buster"
    deb http://deb.debian.org/debian/ buster main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-legacy-340xx-driver package:

    # apt update
    # apt install nvidia-legacy-340xx-driver

    DKMS will build the nvidia module for your system, via the nvidia-legacy-340xx-kernel-dkms package.

    • Optional : if you have SecureBoot enabled, you need to sign the resulting modules. Detailed instructions are available here.

  3. After, create an Xorg server configuration file and then restart your system to enable the nouveau blacklist.


Debian 9 "Stretch"

As of stretch, you don't need nvidia-xconfig anymore, and a xorg.conf file is not needed either in most situations. Also, the 340 series has been forked into its own series of packages to support older cards.

In some situations running nvidia-xconfig is still required for screen-locking and suspend/resume to work properly (922679 Xfce/lightdm/light-locker)

Version 418.152 (via stretch-backports)

For support of GeForce 700 series and newer GPUs (supported devices). For older devices, see Version 340 (legacy GPUs) and Version 304 (legacy GPUs).

  1. Add stretch-backports as an additional new line to your /etc/apt/sources.list, for example:

    # stretch-backports
    deb http://deb.debian.org/debian stretch-backports main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-driver package, plus the necessary firmware, from the backports repository:

    # apt update
    # apt install -t stretch-backports nvidia-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-kernel-dkms package.

  3. Restart your system to enable the nouveau blacklist.

Version 390.138

For support of GeForce 400 series and higher GPUs (supported devices). For older devices, see Version 340 (legacy GPUs) and Version 304 (legacy GPUs).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian 9 "Stretch"
    deb http://deb.debian.org/debian/ stretch main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-driver package, plus the necessary firmware:

    # apt update
    # apt install nvidia-driver firmware-misc-nonfree

    DKMS will build the nvidia module for your system, via the nvidia-kernel-dkms package.

  3. Restart your system to enable the nouveau blacklist.

Version 340.108 (legacy GPUs)

For support of GeForce 8 series through GeForce 300 series GPUs (supported devices).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian 9 "Stretch"
    deb http://deb.debian.org/debian/ stretch main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-legacy-340xx-driver package:

    # apt update
    # apt install nvidia-legacy-340xx-driver

    DKMS will build the nvidia module for your system, via the nvidia-legacy-340xx-kernel-dkms package.

    After, create an Xorg server configuration file and then restart your system to enable the nouveau blacklist.

Version 304.137 (legacy GPUs)

For support of GeForce 6 series and GeForce 7 series GPUs (supported devices).

  1. Add "contrib" and "non-free" components to /etc/apt/sources.list, for example:

    # Debian 9 "Stretch"
    deb http://deb.debian.org/debian/ stretch main contrib non-free
  2. Update the list of available packages, then we can install the nvidia-legacy-304xx-driver package:

# apt install nvidia-legacy-304xx-driver


Installing 32-bit libraries on a 64-bit system

In many cases, such as when running proprietary 32-bit games from Steam or in Wine, you may need 32-bit graphics libraries on your 64-bit system in order for them to function properly. This has been made much easier since Debian 9/Stretch and now requires minimal extra work.

Note that the following instructions assume that sudo is configured on your system. If it isn't, either follow the instructions on the sudo wiki page or omit the sudo and run these commands as root.

After installing the drivers, enable 32-bit multiarch and update your repository listing by running:

sudo dpkg --add-architecture i386 && sudo apt update

Afterwards, to install the 32-bit version of the NVIDIA libraries package, run:

sudo apt install nvidia-driver-libs:i386

Restarting the relevant applications may be necessary before they function correctly.

WARNING: If you're forced to use a legacy driver, you will want to instead install one of nvidia-legacy-390xx-driver-libs:i386, nvidia-legacy-340xx-driver-libs:i386, or nvidia-legacy-304xx-driver-libs:i386.


Wayland

The NVIDIA driver supports Wayland, with caveats. The 495-series driver (or newer) is recommended for the best experience, as older versions only support Wayland through an NVIDIA-specific API which is not supported by all desktops, and is generally less reliable.

The NVIDIA driver also lacks support for accelerated XWayland applications in current stable Debian versions. This means that if you run a Xorg-only application on your NVIDIA Wayland desktop (often proprietary video games), they will only be able to render on the CPU without taking advantage of GPU acceleration, leading to incredibly poor performance. Patches have been merged to resolve this, however this support will only be available in Debian 12/Bookworm.

In terms of specific desktop support, GNOME supports NVIDIA Wayland sessions in both Debian 10 and Debian 11, though they call their support "preliminary". KDE Plasma supports NVIDIA Wayland sessions starting with Debian 11, though it requires some extra hoops to enable, and generally is not recommended. Refer to the Wayland section of the Debian KDE wiki page for up-to-date information: https://wiki.debian.org/KDE#Wayland.2C_touchscreens.2C_autorotation.2C_hi-DPI

In Debian 12 (currently Debian Testing), almost all issues should be resolved and most Wayland sessions should "just work" with the 495-series driver, however some major issues remain with KDE Plasma. These will require merging KDE's Qt 5 patch collection to fix: https://salsa.debian.org/qt-kde-team/qt/qtwayland/-/merge_requests/5


Tesla Drivers

The NVIDIA line-up of programmable "Tesla" devices, used primarily for simulations and large-scale calculations, also require separate driver packages to function correctly compared to the consumer-grade GeForce GPUs that are instead targeted for desktop and gaming usage.

In Debian 10/Buster, the default nvidia-driver package is based on the Tesla release. This was done in order to resolve several critical security issues, but it means that there is no need to install the separate package for Tesla devices to work. If you need a newer release, the 450-series driver is available in backports via the nvidia-tesla-450-driver package.

In Debian 11/Bullseye, the major 418, 440, and 450 releases of the Tesla driver are available and distinct from the default driver. They can be found in the nvidia-tesla-418-driver, nvidia-tesla-440-driver, and nvidia-tesla-450-driver packages respectively.

The 32-bit libraries can be obtained by installing nvidia-tesla-418-driver-libs:i386, nvidia-tesla-440-driver:i386, or nvidia-tesla-450-driver:i386 based on the version of your driver. Multiarch must be enabled.


Configuration

As the NVIDIA driver is not autodetected by Xorg, a configuration file is required to be supplied. Modern Debian packages for the NVIDIA driver should not require you to do anything listed here as they handle this automatically during installation, but if you run into issues, or are using a much older version of Debian, you may try going through these steps.

Automatic

Install the nvidia-xconfig package, then run it with sudo. It will automatically generate a Xorg configuration file at /etc/X11/xorg.conf.

Manual

For example:

/etc/X11/xorg.conf.d/20-nvidia.conf

  • Section "Device"
            Identifier "My GPU"
            Driver "nvidia"
    EndSection

The configuration file above can be created using these commands:

  • # mkdir -p /etc/X11/xorg.conf.d
    # echo -e 'Section "Device"\n\tIdentifier "My GPU"\n\tDriver "nvidia"\nEndSection' > /etc/X11/xorg.conf.d/20-nvidia.conf

Please note that this configuration will break Xorg on Optimus systems. For such hardware, see NVIDIA Optimus instead.

Restart your system at this point to enable the nouveau driver blacklist.

Additional configuration information is available.


CUDA

Debian Unstable "Sid"

CUDA 11.4.3 is available from the non-free repository:

# apt install nvidia-cuda-dev nvidia-cuda-toolkit

This installs nvcc and friends. The visual profiler is in a separate package named nvidia-visual-profiler.

Debian 12 "Bookworm"

CUDA 11.4.3 is available from the non-free repository:

# apt install nvidia-cuda-dev nvidia-cuda-toolkit

This installs nvcc and friends. The visual profiler is in a separate package named nvidia-visual-profiler.

Debian 11 "Bullseye"

CUDA 11.2.2 is available from the non-free repository:

# apt install nvidia-cuda-dev nvidia-cuda-toolkit

This installs nvcc and friends. The visual profiler is in a separate package named nvidia-visual-profiler.

Debian 10 "Buster"

CUDA 9.2.148 is available from the non-free repository:

# apt install nvidia-cuda-dev nvidia-cuda-toolkit

And, if Backports are enabled, CUDA 11.2.1 is available similarly:

# apt -t buster-backports install nvidia-cuda-dev nvidia-cuda-toolkit

This installs nvcc and friends. The visual profiler is in a separate package named nvidia-visual-profiler.

Debian 9 "Stretch"

CUDA 8.0.44 is available from the non-free repository:

# apt install nvidia-cuda-dev nvidia-cuda-toolkit 

And, if Backports are enabled, CUDA 9.1.85 is available similarly:

# apt -t stretch-backports install nvidia-cuda-dev nvidia-cuda-toolkit

This installs nvcc and friends. The visual profiler is in a separate package named nvidia-visual-profiler.

CUDA 8 only supports gcc 5.3.1, which is not available for Stretch. To compile you need to add -ccbin clang-3.8 to the nvcc command line.

The Debian CUDA packages unfortunately do not include the Toolkit samples. To install these yourself you need to download the "Ubuntu 16.04" .run install file for CUDA 8 from https://developer.nvidia.com/cuda-downloads. Execute the .run file and (after accepting the license and agreeing to run on a non-supported system) skip the driver and toolkit installation and just select "Samples". Note before this step you must

export PERL5LIB=. 

To compile the samples, you first need to set

export HOST_COMPILER=clang++-3.8


Troubleshooting

Build failures

The NVIDIA driver can fail to build for several potential reasons.

1. You've installed a kernel from backports without installing the NVIDIA driver from backports. This can, in some cases, mean that the kernel is too new for the driver version you're attempting to use. Check this by viewing the package description for the NVIDIA driver where it will mention something along the lines of, "Building the kernel module has been tested up to Linux X.X" to figure out what's supported.

2. Particularly if you're on Debian Testing or Debian Unstable, the driver might not support your kernel yet. Often, new versions of the Linux kernel will explicitly require an update to the driver in order to be supported, so if the kernel package updates before the driver has a chance to be patched for it, you won't be able to use the NVIDIA driver. Solutions for this, from most to least recommended, are temporarily using an older kernel until the driver is updated, installing a newer version of the driver from Debian Experimental if one is available that supports your kernel version, or finding a patch for the build failure online that can be added to DKMS. The last two options are for advanced users and may break your system or, in the case of adding a third-party patch, introduce security issues, forcing you to potentially reinstall completely or spend hours recovering your system. Caveat emptor.

3. Legacy versions of the NVIDIA driver may not always support the latest kernel. For instance, the 304xx series driver, though available in the Debian Unstable repository, does not support Linux 5.0 or newer. As necessary, you might consider using an older Debian version, or using Nouveau instead. Nouveau has decent performance with GPUs that are old enough to no longer be supported by the proprietary driver.

Driver stops working after upgrading Debian

When going between two major Debian releases (e.g., upgrading from Debian 9/Stretch to Debian 10/Buster), it's possible that the driver will stop functioning despite the build succeeding and no other issues being easily visible. This is most often caused by the nvidia-driver package updating to a newer major release that no longer supports your hardware, as NVIDIA regularly drops support for older hardware generations. You will need to uninstall all your existing NVIDIA packages (refer to the section below for instructions on how to do so), and instead install the most recent legacy driver that still supports your GPU.

GPU isn't functional, even with a compatible driver version installed

If you have an extremely modern NVIDIA GPU that was manufactured after the release of your Debian version, it may not work even after installing the newest backported driver that claims to support your card. If so, you likely need to upgrade the non-free firmware package on your system as well by installing the firmware-misc-nonfree package from backports. For instance, on a Debian 10 system with backports enabled:

# apt install -t buster-backports firmware-misc-nonfree

After rebooting, the driver should be able to load the appropriate firmware.

Miscellaneous

  • The NVIDIA driver conflicts with the nouveau DRM driver (580894). The nouveau kernel module is blacklisted by the glx-alternative-nvidia or nvidia-kernel-common packages.

    • Restart your system after configuring Xorg for the NVIDIA driver.

    • From xserver-xorg-video-nouveau's README.Debian:

      If you decide to switch to the proprietary driver, it is highly
      recommended to reboot because it is incompatible with nouveau, and
      unloading the latter is not easy and may lead to a blank console.
  • If you can't change the screen brightness, open your Xorg configuration file (/etc/X11/xorg.conf or /etc/X11/xorg.conf.d/20-nvidia.conf depending on which method you used) and add

        Option         "RegistryDwords" "EnableBrightnessControl=1;"

    to the Device section. In some case (eg. GeForce GT 650M Mac Edition) it may cause screen flickering during boot time (just after grub screen), and system will not boot. In this case you should use instead add the following:

    setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0

    to the file: /etc/rc.local

  • You can check whether or not the kernel module for the NVIDIA driver has been loaded, in addition to what version is currently loaded, by running /sbin/modinfo -F version nvidia-current

  • Additional troubleshooting information is available.


Uninstallation

If you run into issues with the drivers, switch to a different card, or simply want to use the open-source Nouveau drivers instead, uninstallation is made easy with recent versions of the drivers.

Also note that if issues with the driver prevent you from accessing a desktop, you can access a full-screen TTY with Ctrl-Alt-F3 (or almost any of the "F" keys).

You can remove all packages on your system with nvidia in the name by running:

# apt purge "*nvidia*"

And then reboot the system with:

systemctl reboot

This should leave you with a functioning system in almost all cases. If it seems to still be having issues, you may also try running:

# apt install --reinstall xserver-xorg-core xserver-xorg-video-nouveau

Or:

# X -configure

See Also


CategoryProprietarySoftware CategoryHardware CategoryVideo