NVIDIA Proprietary Driver

This page describes the closed-source, proprietary driver created by nVidia themselves. See the nv page for a description of the open-source driver created by Mark Vojkovich and maintained now by Aaron Plattner.

The new proprietary driver from Nvidia is easier to install than prior versions as Nvidia has shifted to a single file for installation. They have attempted to make the setup as simple as possible with the installation script attempting to determine which kernel version you need. This has helped a lot but there are still some common problems. The best place to look for information about the Nvidia driver is Nvidia's website.


The following is a common problem: (excerpted from Nvidia's docs)

Q: My X server fails to start, and my Xorg log file contains the error: "(EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module!"

A: Nothing will work if the NVIDIA kernel module doesn't function properly. If you see anything in the X log file like "(EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module!" then there is most likely a problem with the NVIDIA kernel module. First, you should verify that if you installed from rpm that the rpm was built specifically for the kernel you are using. You should also check that the module is loaded ('/sbin/lsmod'); if it is not loaded try loading it explicitly with 'insmod' or 'modprobe' (be sure to exit the X server before installing a new kernel module). If you receive errors about unresolved symbols, then the kernel module has most likely been built using header files for a different kernel revision than what you are running. You can explicitly control what kernel header files are used when building the NVIDIA kernel module with the --kernel-include-dir option (see sh NVIDIA-Linux-x86-1.0-4349.run --advanced-options for details).

Please note that the convention for the location of kernel header files changed approximately at the time of the 2.4.0 kernel release, as did the location of kernel modules. If the kernel module fails to load properly, modprobe/insmod may be trying to load an older kernel module (assuming you've upgraded). cd'ing into the directory with the new kernel module and doing 'insmod ./nvidia.o' may help.

Another cause may be that the /dev/nvidia* device files may be missing. To recreate this files simply run this script (as root). It assumes your users who have GUI access are in group "video"):

for i in 0 1 2 3 4 5 6 7; do
  node="/dev/nvidia$i"
  rm -f $node
  mknod $node c 195 $i  || echo "mknod \"$node\""
  chmod 0660 $node      || echo "chmod \"$node\""
  chown :video $node    || echo "chown \"$node\""
done

node="/dev/nvidiactl"
rm -f $node
mknod $node c 195 255   || echo "mknod \"$node\""
chmod 0666 $node        || echo "chmod \"$node\""
chown :video $node      || echo "chown \"$node\""

Finally, the NVIDIA kernel module may print error messages indicating a problem -- to view these messages please check /var/log/messages, or wherever syslog is directed to place kernel messages. These messages are prepended with "NVRM".

Some links to additional information on this driver