Differences between revisions 1 and 227 (spanning 226 versions)
Revision 1 as of 2005-11-14 06:49:41
Size: 5161
Comment: just starting
Revision 227 as of 2014-01-14 00:19:54
Size: 12850
Editor: ?J. Lambrecht
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This document explains how to make use of NVIDIA video hardware for ["Debian"] GNU/Linux users, who are the primary target. However, most (if not all) of Debian derivatives, including Libranet, Mepis, Ubuntu, and Xandros, should work in the same way. The following section shortly describes the ["free"] drivers while the rest of the document covers the non-free but 3D-accelerated drivers.

= free drivers =
Two free drivers in Debian support NVIDIA cards. You are probably reading this page using one of these drivers. The '''vesa''' driver is a generic video driver. You should get better results with the '''nv''' driver. You can see which one is in use .........................
You can simply [wiki:Self:ConfigureX configure X] to change the free driver to use.

However, both of these drivers do not support 3D acceleration. Only the ["non-free"] '''nvidia''' driver supports this. If you are willing to use this driver despite the fact that it is non-free, read the following section. If you do, keep in mind that using the non-free drivers is considerably more complex and things are much more likely to break. If this happens and you give up trying to get X working again due to the '''nvidia''' driver, remember that simply switching back to one of the free drivers should let you run X again until you find a way to get 3D acceleration working again.

= non-free drivers =
== Why a Debian-specific method? ==

To install the NVIDIA drivers, you can use either NVIDIA's official installer or the Debian driver packages. Each method has its advantages, as described below. NVIDIA's installer used to be easier to use; but with the advent of module-assistant, the Debian way is probably easier. Even if you choose to build your driver module manually, in the long run you'll probably find that the Debian way will save you work. The Debian way is of course the most reliable.

Unless you had issues with the Debian way, you probably just want to skip to the '''Installation''' section. NVIDIA's installer is already documented at other places (such as [http://www.gmpf.de/index.php/NVidia:Basic_Installation this one]), so the Installation section of this HOWTO is all about the Debian way. Either way, you may find the Troubleshooting section to be of interest.

=== Comparison of nvidia-installer and the Debian way ===
..............
The method described here is "the Debian way": you install Debian packages as usual, for your specific kernel. This method has some advantages, compared to using NVIDIA's official installer:

    * It's more automated once it's set up, so it saves you work if you rebuild your kernel very often, as I do.
    * It uses the Debian package management tools, so it's cleaner.
    * If you're already using make-kpkg to build your kernel, it fits easily into your existing build procedure.
    * It will also save you work if you build other kernel modules (e.g. lm-sensors or fuse) outside of the kernel tree, because all of the driver packages get built at the same time with a single invocation of make-kpkg.
    * module-assistant has now taken much of the grunt work out of this task, making it about as easy as using the official installer.

However, you don't have to build your drivers this way. Many people prefer just to get and run an official installer from nVidia. This method also has advantages:

    * You may get more recent versions of the NVIDIA drivers, since the Debian packages tend to lag by a month or two, which can be needed if the version in Debian didn't support your hardware. You can compare the [http://www.nvidia.com/object/unix.html current version] and the [http://packages.debian.org/nvidia-glx version in your Debian release] to see how much difference there is.
    * The official installer is easy to use, although you will probably get tired of rerunning it if you rebuild your kernel more than a few times. (Every time you rebuild your kernel you have to wait until you reboot, wait for your X server to die, navigate the installer menus, and then restart X. It gets old. That's why this guide was writen :)
    * You won't have to learn about module-assistant, or make-kpkg. Wait, is this an advantage?
    * People have occasionally reported that even after some work, they just couldn't get their drivers to work using the Debian way. Once they used the NVIDIA installer everything worked smoothly.

== Target audience ==
The following method should work with any 2.4 or 2.6 Linux kernel, with either stock or custom kernels, and with ["Sarge"], ["Etch"] and ["Sid"] (assuming Sid works). Although there are Debian packages for the drivers in ["Woody"], if you are looking to make some fun gaming, consider the fun of upgrading to Sarge first.
#language en
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[es/NvidiaGraphicsDrivers|Español]] - [[fr/NvidiaGraphicsDrivers|Français]] - [[it/NvidiaGraphicsDrivers|Italiano]] - [[ru/NvidiaGraphicsDrivers|Русский]] - [[zh_CN/NvidiaGraphicsDrivers|简体中文]]-~
----
= NVIDIA Proprietary Driver =

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

<<TableOfContents(4)>>

== 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 | grep VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G80 [GeForce 8800 GTS] [10de:0193] (rev a2)
}}}

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

== Drivers ==

The proprietary "NVIDIA Accelerated Linux Graphics Driver" provides optimized hardware acceleration of OpenGL applications via a direct-rendering X server. It is a binary-only [[Xorg]] driver requiring a Linux kernel module for its use.

Three driver versions are available for [[DebianWheezy|Debian 7 "Wheezy"]]:

 * [[#wheezy|Version 304.88]] ([[http://us.download.nvidia.com/XFree86/Linux-x86/304.88/README/supportedchips.html|supported devices]])
  * For !GeForce 6xxx and higher GPUs.
 * [[#wheezy-173xx|Version 173.14.35 (legacy GPUs)]] ([[http://www.nvidia.com/object/IO_32667.html|supported devices]])
  * For !GeForce 5xxx / !GeForce FX GPUs.
 * [[#wheezy-96xx|Version 96.43.23 (legacy GPUs)]] ([[http://www.nvidia.com/object/IO_32667.html|supported devices]])
  * For !GeForce 2, !GeForce 3 and !GeForce 4 GPUs.

Three driver versions are available for [[DebianSqueeze|Debian 6.0 "Squeeze"]]:

 * [[#squeeze|Version 195.36.31]] ([[http://us.download.nvidia.com/XFree86/Linux-x86/195.36.31/README/supportedchips.html|supported devices]])
  * For !GeForce 6xxx and higher GPUs, through to some !GeForce 400 series.
 * [[#squeeze-173xx|Version 173.14.27 (legacy GPUs)]] ([[http://www.nvidia.com/object/IO_32667.html|supported devices]])
  * For !GeForce 5xxx / !GeForce FX GPUs.
 * [[#squeeze-96xx|Version 96.43.18 (legacy GPUs)]] ([[http://www.nvidia.com/object/IO_32667.html|supported devices]])
  * For !GeForce 2, !GeForce 3 and !GeForce 4 GPUs.

The 71.86.xx driver - supporting NVIDIA NV4/NV5/NV6/NV10/NV15 GPUs and variants - is not available, as this does not support Xorg X server versions later than 1.4 (DebianBug:620526, DebianBug:708338).

All versions above are available only for the x86 and x86-64 architectures (Debian [[i386]] and [[DebianAMD64|AMD64]] ports respectively).
Line 38: Line 48:


= About this document =
The Links page has links to nVidia driver packages, support forums, other HOWTOs, and anything else I find that can help you to get your nVidia hardware working under Debian.

For problems, comments, or questions about the information in this HOWTO, you can write to me. I'm no expert, but I'll do my best to make the information useful.
<<Anchor(wheezy)>>
<<Anchor(Debian 7.0 "Wheezy")>>
=== Debian 7 "Wheezy" ===

==== Version 304.88 ====

For support of !GeForce 6xxx and higher GPUs ([[http://us.download.nvidia.com/XFree86/Linux-x86/304.88/README/supportedchips.html|supported devices]]). For older devices, see [[#wheezy-173xx|Version 173.14.35 (legacy GPUs)]] and [[#wheezy-96xx|Version 96.43.23 (legacy GPUs)]].

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian 7 "Wheezy"
deb http://http.debian.net/debian/ wheezy main contrib non-free
}}}
 1. Update the list of available packages. Install the appropriate linux-headers and kernel module packages: {{{
# aptitude update
# aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-dkms
}}}
 This will also install the recommended [[DebianPkg:wheezy/nvidia-glx|nvidia-glx]] package. DKMS will build the nvidia module for your system.
 1. Create an [[#configure|Xorg server configuration file]].
 1. Restart your system to enable the nouveau blacklist.

<<Anchor(wheezy-173xx)>>
==== Version 173.14.35 (legacy GPUs) ====

For support of !GeForce 5xxx / !GeForce FX GPUs ([[http://www.nvidia.com/object/IO_32667.html|supported devices]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian 7 "Wheezy"
deb http://http.debian.net/debian/ wheezy main contrib non-free
}}}
 1. Update the list of available packages. Install the appropriate linux-headers and kernel module packages: {{{
# aptitude update
# aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-173xx-dkms
}}}
 This will also install the recommended [[DebianPkg:wheezy/nvidia-glx-legacy-173xx|nvidia-glx-legacy-173xx]] package. DKMS will build the nvidia module for your system.
 1. Create an [[#configure|Xorg server configuration file]].
 1. Restart your system to enable the nouveau blacklist.

<<Anchor(wheezy-96xx)>>
==== Version 96.43.23 (legacy GPUs) ====

For support of !GeForce 2, !GeForce 3 and !GeForce 4 GPUs ([[http://www.nvidia.com/object/IO_32667.html|supported devices]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian 7 "Wheezy"
deb http://http.debian.net/debian/ wheezy main contrib non-free
}}}
 1. Update the list of available packages. Install the appropriate linux-headers and kernel module packages: {{{
# aptitude update
# aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-96xx-dkms
}}}
 This will also install the recommended [[DebianPkg:wheezy/nvidia-glx-legacy-96xx|nvidia-glx-legacy-96xx]] package. DKMS will build the nvidia module for your system.
 1. Create an [[#configure|Xorg server configuration file]].
 1. Restart your system to enable the nouveau blacklist.

<<Anchor(squeeze)>>
=== Debian 6.0 "Squeeze" ===

==== Version 195.36.31 ====

For support of !GeForce 6xxx and higher GPUs ([[http://us.download.nvidia.com/XFree86/Linux-x86/195.36.31/README/supportedchips.html|supported devices]]), up to and including some !GeForce 400 series devices. For older devices, see [[#squeeze-173xx|Version 173.14.27 (legacy GPUs)]] and [[#squeeze-96xx|Version 96.43.18 (legacy GPUs)]].

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian 6.0 "Squeeze"
deb http://http.debian.net/debian/ squeeze main contrib non-free
}}}
 1. Update the list of available packages. Install the appropriate linux-headers and kernel module packages: {{{
# aptitude update
# aptitude -r install linux-headers-2.6-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-dkms
}}}
 This will also install the recommended [[DebianPkg:squeeze/nvidia-glx|nvidia-glx]] package. DKMS will build the nvidia module for your system.
 1. Update the initial ramdisk to include the nouveau blacklist (DebianBug:613951): {{{
# update-initramfs -u
}}}
 1. Create an [[#configure|Xorg server configuration file]].
 1. Restart your system to enable the nouveau blacklist.

<<Anchor(squeeze-173xx)>>
==== Version 173.14.27 (legacy GPUs) ====

For support of !GeForce 5xxx / !GeForce FX GPUs ([[http://www.nvidia.com/object/IO_32667.html|supported devices]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian 6.0 "Squeeze"
deb http://http.debian.net/debian/ squeeze main contrib non-free
}}}
 1. Update the list of available packages. Install the appropriate linux-headers and kernel module packages: {{{
# aptitude update
# aptitude -r install linux-headers-2.6-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-173xx-dkms
}}}
 This will also install the recommended [[DebianPkg:squeeze/nvidia-glx-legacy-173xx|nvidia-glx-legacy-173xx]] package. DKMS will build the nvidia module for your system.
 1. Update the initial ramdisk to include the nouveau blacklist (DebianBug:613951): {{{
# update-initramfs -u
}}}
 1. Create an [[#configure|Xorg server configuration file]].
 1. Restart your system to enable the nouveau blacklist.

<<Anchor(squeeze-96xx)>>
==== Version 96.43.18 (legacy GPUs) ====

For support of !GeForce 2, !GeForce 3 and !GeForce 4 GPUs ([[http://www.nvidia.com/object/IO_32667.html|supported devices]]).

 1. Add "contrib" and "non-free" components to {{{/etc/apt/sources.list}}}, for example: {{{
# Debian 6.0 "Squeeze"
deb http://http.debian.net/debian/ squeeze main contrib non-free
}}}
 1. Update the list of available packages. Install the appropriate linux-headers and kernel module packages: {{{
# aptitude update
# aptitude -r install linux-headers-2.6-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-96xx-dkms
}}}
 This will also install the recommended [[DebianPkg:squeeze/nvidia-glx-legacy-96xx|nvidia-glx-legacy-96xx]] package. DKMS will build the nvidia module for your system.
 1. Update the initial ramdisk to include the nouveau blacklist (DebianBug:613951): {{{
# update-initramfs -u
}}}
 1. Create an [[#configure|Xorg server configuration file]].
 1. Restart your system to enable the nouveau blacklist.

<<Anchor(configure)>>
== Configuration ==

As the nvidia driver is not autodetected by [[Xorg]], a configuration file is required to be supplied. 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 /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 command will break your Xorg configuration on Optimus systems. For such hardware, see [[Bumblebee]] instead.

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

== Performance ==

 * The above configuration for the "Device" Section can/should be appended with the below Driver "nvidia" for increased performance
{{{
    Option "NoLogo" "1"
    Option "RenderAccel" "1"
    Option "TripleBuffer" "true"
    Option "MigrationHeuristic" "greedy"
}}}


== Troubleshooting ==

 * The NVIDIA driver conflicts with the nouveau DRM driver (DebianBug:580894). The nouveau kernel module is blacklisted by the DebianPkg:nvidia-kernel-common package.
  * Restart your system after [[#configure|configuring Xorg]] for the NVIDIA driver.
  * From [[DebianPkg: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.
}}}
 * In case the Flash player behaves erratic, slows down your sytem after playing for a few minutes, check the updated [[https://wiki.debian.org/FlashPlayer#Troubleshooting|FlashPlayer]] Troubleshooting Section, configure the mms.cfg file and replace the two parameters as documented in the last part of this section.

 * on some older machines, to compensate for a broken bios and/or older graphics cards the below can improve working with an nvidia card significantly
{{{
when encountering performance and stability issues it is advisable or even recommended to add on or more of the below, your boot parameters should read something like

GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset enable_mtrr_cleanup mtrr_spare_reg_nr=4"

adding enable_mtrr_cleanup as a boot parameter ( grub, lilo or whatever you use ) is critical on some systems
in addition adding mtrr_spare_reg_nr=4 ( or a suitable number for your set-up ) will show improvements, take note the value=4 is a hardware dependent value.

one more important change code be setting NVreg_EnableMSI=0 and/or NVreg_Mobile ( mobile gfx cards only ) in /etc/modprobe.d/ for the nvidia module, which could read like ...

alias char-major-195* nvidia
options nvidia NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=44 NVreg_DeviceFileMode=0660
options nvidia NVreg_EnableMSI=0
options nvidia NVreg_Mobile=1

  * NVreg_Mobile has options for various brands, 1=Dell laptops, 2=non-Compal Toshiba laptops,3=all other laptops,4=Compal Toshiba laptops,5=Gateway laptop

}}}

 * in case you're using Icedove or Iceweasel or some vanilla Mozilla stuff like Firefox or Thunderbird, validate if the below should be set for your system
{{{
first validate if it is required, so read the values

nvidia-settings -q InitialPixmapPlacement
nvidia-settings -q GlyphCache

If the values do not read the values like below only then set the new values as displayed below

in your homedirectory ~/.xinitrc should contain the below for a noticeable performance increase
  nvidia-settings -a InitialPixmapPlacement=2
optional one could also set the below for better 2D performance
  nvidia-setttings -a GlyphCache=1
}}}

== See Also ==

 * [[Xorg]]

----
CategoryProprietarySoftware

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.

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 | grep VGA
    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G80 [GeForce 8800 GTS] [10de:0193] (rev a2)

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

Drivers

The proprietary "NVIDIA Accelerated Linux Graphics Driver" provides optimized hardware acceleration of OpenGL applications via a direct-rendering X server. It is a binary-only Xorg driver requiring a Linux kernel module for its use.

Three driver versions are available for Debian 7 "Wheezy":

Three driver versions are available for Debian 6.0 "Squeeze":

The 71.86.xx driver - supporting NVIDIA NV4/NV5/NV6/NV10/NV15 GPUs and variants - is not available, as this does not support Xorg X server versions later than 1.4 (620526, 708338).

All versions above are available only for the x86 and x86-64 architectures (Debian i386 and AMD64 ports respectively).

Installation

Debian 7 "Wheezy"

Version 304.88

For support of GeForce 6xxx and higher GPUs (supported devices). For older devices, see Version 173.14.35 (legacy GPUs) and Version 96.43.23 (legacy GPUs).

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

    # Debian 7 "Wheezy"
    deb http://http.debian.net/debian/ wheezy main contrib non-free
  2. Update the list of available packages. Install the appropriate linux-headers and kernel module packages:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-dkms

    This will also install the recommended nvidia-glx package. DKMS will build the nvidia module for your system.

  3. Create an Xorg server configuration file.

  4. Restart your system to enable the nouveau blacklist.

Version 173.14.35 (legacy GPUs)

For support of GeForce 5xxx / GeForce FX GPUs (supported devices).

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

    # Debian 7 "Wheezy"
    deb http://http.debian.net/debian/ wheezy main contrib non-free
  2. Update the list of available packages. Install the appropriate linux-headers and kernel module packages:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-173xx-dkms

    This will also install the recommended nvidia-glx-legacy-173xx package. DKMS will build the nvidia module for your system.

  3. Create an Xorg server configuration file.

  4. Restart your system to enable the nouveau blacklist.

Version 96.43.23 (legacy GPUs)

For support of GeForce 2, GeForce 3 and GeForce 4 GPUs (supported devices).

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

    # Debian 7 "Wheezy"
    deb http://http.debian.net/debian/ wheezy main contrib non-free
  2. Update the list of available packages. Install the appropriate linux-headers and kernel module packages:

    # aptitude update
    # aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-96xx-dkms

    This will also install the recommended nvidia-glx-legacy-96xx package. DKMS will build the nvidia module for your system.

  3. Create an Xorg server configuration file.

  4. Restart your system to enable the nouveau blacklist.

Debian 6.0 "Squeeze"

Version 195.36.31

For support of GeForce 6xxx and higher GPUs (supported devices), up to and including some GeForce 400 series devices. For older devices, see Version 173.14.27 (legacy GPUs) and Version 96.43.18 (legacy GPUs).

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

    # Debian 6.0 "Squeeze"
    deb http://http.debian.net/debian/ squeeze main contrib non-free
  2. Update the list of available packages. Install the appropriate linux-headers and kernel module packages:

    # aptitude update
    # aptitude -r install linux-headers-2.6-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-dkms

    This will also install the recommended nvidia-glx package. DKMS will build the nvidia module for your system.

  3. Update the initial ramdisk to include the nouveau blacklist (613951):

    # update-initramfs -u
  4. Create an Xorg server configuration file.

  5. Restart your system to enable the nouveau blacklist.

Version 173.14.27 (legacy GPUs)

For support of GeForce 5xxx / GeForce FX GPUs (supported devices).

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

    # Debian 6.0 "Squeeze"
    deb http://http.debian.net/debian/ squeeze main contrib non-free
  2. Update the list of available packages. Install the appropriate linux-headers and kernel module packages:

    # aptitude update
    # aptitude -r install linux-headers-2.6-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-173xx-dkms

    This will also install the recommended nvidia-glx-legacy-173xx package. DKMS will build the nvidia module for your system.

  3. Update the initial ramdisk to include the nouveau blacklist (613951):

    # update-initramfs -u
  4. Create an Xorg server configuration file.

  5. Restart your system to enable the nouveau blacklist.

Version 96.43.18 (legacy GPUs)

For support of GeForce 2, GeForce 3 and GeForce 4 GPUs (supported devices).

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

    # Debian 6.0 "Squeeze"
    deb http://http.debian.net/debian/ squeeze main contrib non-free
  2. Update the list of available packages. Install the appropriate linux-headers and kernel module packages:

    # aptitude update
    # aptitude -r install linux-headers-2.6-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-legacy-96xx-dkms

    This will also install the recommended nvidia-glx-legacy-96xx package. DKMS will build the nvidia module for your system.

  3. Update the initial ramdisk to include the nouveau blacklist (613951):

    # update-initramfs -u
  4. Create an Xorg server configuration file.

  5. Restart your system to enable the nouveau blacklist.

Configuration

As the nvidia driver is not autodetected by Xorg, a configuration file is required to be supplied. 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 /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 command will break your Xorg configuration on Optimus systems. For such hardware, see Bumblebee instead.

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

Performance

  • The above configuration for the "Device" Section can/should be appended with the below Driver "nvidia" for increased performance

    Option         "NoLogo" "1"
    Option         "RenderAccel" "1"
    Option         "TripleBuffer" "true"
    Option         "MigrationHeuristic" "greedy"

Troubleshooting

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

    • 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.
  • In case the Flash player behaves erratic, slows down your sytem after playing for a few minutes, check the updated FlashPlayer Troubleshooting Section, configure the mms.cfg file and replace the two parameters as documented in the last part of this section.

  • on some older machines, to compensate for a broken bios and/or older graphics cards the below can improve working with an nvidia card significantly

when encountering performance and stability issues it is advisable or even recommended to add on or more of the below, your boot parameters should read something like 

GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset enable_mtrr_cleanup mtrr_spare_reg_nr=4"

adding enable_mtrr_cleanup as a boot parameter ( grub, lilo or whatever you use ) is critical on some systems
in addition adding mtrr_spare_reg_nr=4 ( or a suitable number for your set-up ) will show improvements, take note the value=4 is a hardware dependent value.

one more important change code be setting NVreg_EnableMSI=0 and/or NVreg_Mobile ( mobile gfx cards only ) in /etc/modprobe.d/ for the nvidia module, which could read like ...

alias char-major-195* nvidia
options nvidia NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=44 NVreg_DeviceFileMode=0660
options nvidia NVreg_EnableMSI=0
options nvidia NVreg_Mobile=1

  * NVreg_Mobile has options for various brands, 1=Dell laptops, 2=non-Compal Toshiba laptops,3=all other laptops,4=Compal Toshiba laptops,5=Gateway laptop
  • in case you're using Icedove or Iceweasel or some vanilla Mozilla stuff like Firefox or Thunderbird, validate if the below should be set for your system

first validate if it is required, so read the values

nvidia-settings -q InitialPixmapPlacement 
nvidia-settings -q GlyphCache

If the values do not read the values like below only then set the new values as displayed below

in your homedirectory ~/.xinitrc should contain the below for a noticeable performance increase
  nvidia-settings -a InitialPixmapPlacement=2 
optional one could also set the below for better 2D performance
  nvidia-setttings -a GlyphCache=1

See Also


CategoryProprietarySoftware