NVIDIA
NVIDIA Accelerated Linux Driver README & Installation Guide
Last updated: May 14, 2001
The NVIDIA Accelerated Linux Driver Set brings both accelerated 2D functionality and high performance OpenGL support to Linux x86 with the use of NVIDIA GPUs. This file describes how to install, configure, and use the NVIDIA Accelerated Linux Driver Set. Please refer to the following additional README files as appropriate:
ALI_USERS_README - for problems with ALI chipsets
TNT_USERS_README - for problems with TNT card with SGRAM/SDRAM
LAPTOP_README - for instructions on how to set up your laptop system
TWINVIEW_README - for instructions on how to set up TwinView
TVOUT_README - for instructions on connecting a TV
Please note that most caveats and frequently encountered problems are not detailed in the installation instructions, but rather in the troubleshooting and FAQ sections. It is recommended that you read this entire README before proceeding.
(sec-01) CHOOSING THE NVIDIA PACKAGES APPROPRIATE FOR YOUR SYSTEM
NVIDIA has a unified driver architecture model; one driver set can be used with all supported NVIDIA hardware (see Appendix A). The NVIDIA Accelerated Linux Driver Set consists of two packages you must download and install:
NVIDIA_GLX โ contains the OpenGL libraries and the XFree86 driver.
NVIDIA_kernel โ contains the NVdriver kernel module needed by the X driver and OpenGL libraries.
Install both packages with matching version numbers (e.g., NVIDIA_GLX-0.9-6 only with NVIDIA_kernel-0.9-6). Packages are available as RPM, SRPM, or tar file. Binary RPMs are for kernels shipped with specific distributions; if your kernel was upgraded or an RPM isn't available, use the SRPM or tar file. Some distributors ship multiple kernel RPMs (uni-processor vs SMP).
(sec-02) INSTALLING THE NVIDIA_KERNEL AND NVIDIA_GLX PACKAGES
Before beginning installation:
Exit the X server.
Set default runlevel to boot to console (so X doesn't start automatically). This makes recovery easier if problems occur.
Replace generic filenames in the examples ("NVIDIA_kernel.tar.gz") with the actual names of the files you downloaded.
Installing/Upgrading by Tar file
Instructions for the impatient:
Details:
Unpack each file:
Build/install kernel interface:
This compiles and links NVdriver, copies it into place, and attempts to insert it into the running kernel. 3. Install NVIDIA_GLX:
Note: make install for each package will remove previously installed NVIDIA drivers.
(sec-03) EDITING YOUR XF86CONFIG FILE
XFree86 4.x uses a slightly different config file path; it will prefer /etc/X11/XF86Config-4 if it exists. To determine which config file XFree86 is using, look for a line beginning with "(==) Using config file:" in /var/log/XFree86.0.log. This README refers to your configuration file as "XF86Config", regardless of name.
If you do not have a working XF86Config file:
Use the sample config that comes with XFree86.
Use the sample config installed with NVIDIA_GLX (in /usr/share/doc).
Use tools like 'xf86config' or distribution-provided config utilities.
If you already have an XF86Config file using a different driver (e.g., "nv"), find the Device section and replace:
with:
In the Module section, ensure:
Remove these lines if present:
Many options exist to fine-tune the NVIDIA XFree86 driver โ see Appendix D for the full list.
After configuring XF86Config, restart X. OpenGL applications should automatically use the NVIDIA libraries. If problems occur, see TROUBLESHOOTING.
(sec-04) TROUBLESHOOTING
Strategies and common checks:
Check the XFree86 log file (/var/log/XFree86.0.log). "(II)" = info, "(WW)" = warning, "(EE)" = error. Confirm the config file being used ("(==) Using config file:") and that the NVIDIA driver is loaded: look for "(II) LoadModule: "nvidia"" and driver lines "(II) NVIDIA(0)".
Increase verbosity for debugging: start X with:
The NVIDIA X driver emits more messages at verbosity >= 5.
If you see "(EE) NVIDIA(0): Failed to initialize the NVdriver kernel module!", the NVdriver kernel module likely failed. Verify you installed an RPM built for your kernel. Check module loaded with /sbin/lsmod; try loading with insmod or modprobe (exit X first). If you see unresolved symbols, the module was built against different kernel headers โ rebuild with:
If X starts but OpenGL misbehaves, stale libraries or symlinks may be present. Rerun 'ldconfig' and ensure symlinks are correct (see Appendix C).
Verify extensions with 'xdpyinfo' โ "GLX", "NV-GLX", and "NVIDIA-GLX" should appear.
If
rpm --rebuild ...prints rpm options, you likely lack rpm development packages (install rpm-devel) or use the tar install method.If building the kernel module shows:
install the Linux kernel source (kernel-source package) for your distribution.
(sec-05) FREQUENTLY ASKED QUESTIONS
(sec-06) CONTACTING US
If problems persist after troubleshooting, contact NVIDIA at: [email protected]. When emailing, attach /var/log/XFree86.0.log and any other relevant information. Send a log generated with verbose messaging enabled (e.g., startx -- -logverbose 5).
(sec-07) FURTHER RESOURCES
Linux OpenGL ABI: //oss.sgi.com/projects/ogl-sample/ABI/
NVIDIA Linux HowTo: //www.linuxdoc.org/HOWTO/mini/Nvidia-OpenGL-Configuration/index.html
OpenGL: www.opengl.org
The XFree86 Project: www.xfree86.org
IRC: #nvidia (irc.openprojects.net)
(app-a) APPENDIX A: SUPPORTED NVIDIA GRAPHICS CHIPS
RIVA TNT 0x0020
RIVA TNT2 0x0028
RIVA TNT2 (Ultra) 0x0029
RIVA TNT2 (Vanta) 0x002C
RIVA TNT2 (M64) 0x002D
RIVA TNT2 (??) 0x002E
RIVA TNT2 (??) 0x002F
RIVA TNT2 (Integrated) 0x00A0
GeForce 256 0x0100
GeForce DDR 0x0101
Quadro 0x0103
GeForce2 MX 0x0110
GeForce2 MX DDR 0x0111
GeForce2 Go 0x0112
Quadro2 MXR 0x0113
GeForce2 GTS 0x0150
GeForce2 GTS 0x0151
GeForce2 Ultra 0x0152
Quadro2 Pro 0x0153
GeForce3 0x0200
Note: RIVA 128/128ZX chips are supported by the open-source 'nv' driver for XFree86, but not by the NVIDIA Accelerated Linux Driver Set.
(app-b) APPENDIX B: MINIMUM SOFTWARE REQUIREMENTS
Required minimums (commands show how to verify versions):
linux kernel 2.2.12 โ # cat /proc/version
XFree86 4.0.1 โ # cat /var/log/XFree86.0.log|grep "XFree86 Version"
Kernel modutils 2.1.121 โ # insmod -V
If you need to build NVdriver kernel module:
binutils 2.9.5 โ # size --version
GNU make 3.77 โ # make --version
gcc 2.7.2.3 โ # gcc --version
If building from source RPMs:
spec-helper rpm โ # rpm -qi spec-helper
Official kernel releases from 2.2.12 and up are supported. Pre-release kernels (e.g., 2.4.3-pre2) may not be supported. binutils and gcc are only needed for SRPM or tarfile installs. XFree86 can be obtained from www.xfree86.org; other packages from www.kernel.org, www.gnu.org, or your distribution.
(app-c) APPENDIX C: INSTALLED COMPONENTS
Installed components (files shown are examples; x.y.z denotes version and symlinks get created):
XFree86 driver: /usr/X11R6/lib/modules/drivers/nvidia_drv.o
GLX extension module: /usr/X11R6/lib/modules/extensions/libglx.so.x.y.z (and symlink libglx.so -> libglx.so.x.y.z)
OpenGL library: /usr/lib/libGL.so.x.y.z (with libGL.so.x -> libGL.so.x.y.z and libGL.so -> libGL.so.x)
OpenGL core library: /usr/lib/libGLcore.so.x.y.z (with libGLcore.so.x -> libGLcore.so.x.y.z)
Kernel module: /lib/modules/[kernel version]/video/NVdriver or /lib/modules/[kernel version]/kernel/drivers/video/NVdriver
OpenGL/GLX header files (installed under /usr/share/doc/NVIDIA_GLX-x.y.z/usr/include/GL)
The NVIDIA_kernel package also creates device nodes such as:
nvidia0 .. nvidia3 and nvidiactl (major 195)
If other libraries conflict (soname collisions), ldconfig may create incorrect symlinks. Common conflicting paths: /usr/X11R6/lib/libGL.so* and /usr/X11R6/lib/libGLcore.so*. Rename or remove conflicting libraries (for example, prepend "XXX") and rerun ldconfig. Use ldd on applications to verify which libGL and libGLcore are being used (example shown in original README).
(app-d) APPENDIX D: XF86Config OPTIONS
Supported driver options (examples shown; refer to original README for defaults and details):
Option "SWCursor" "boolean" โ software cursor (default off)
Option "HWCursor" "boolean" โ hardware cursor (default on)
Option "NoAccel" "boolean" โ disable 2D acceleration
Option "Rotate" "CW" / "CCW" โ rotate display (forces NoAccel and SWCursor)
Option "ShadowFB" "boolean" โ enable shadow framebuffer
Option "NvAGP" "integer" โ AGP config: 0 disable, 1 use NVIDIA AGP, 2 use AGPGART, 3 try AGPGART then NVIDIA (default 1)
Option "IgnoreEDID" "boolean" (synonym "NoDDC") โ disable EDID probing
Option "ConnectedMonitor" "string" โ override detected display (CRT, DFP, TV) or comma-separated list for TwinView
Option "NoRenderAccel" "boolean" โ disable experimental RENDER acceleration
Option "TwinView" "boolean" โ enable TwinView
Option "TwinViewOrientation" "string" โ RightOf, LeftOf, Above, Below, Clone
Option "SecondMonitorHorizSync" "range(s)"
Option "SecondMonitorVertRefresh" "range(s)"
Option "MetaModes" "string" โ combination of modes for TwinView
(app-e) APPENDIX E: OPENGL ENVIRONMENT VARIABLE SETTINGS
Environment variables that affect OpenGL behavior (not guaranteed to remain the same across releases):
__GL_SYNC_TO_VBLANK โ non-zero forces glXSwapBuffers to sync to vertical refresh.
__GL_ENABLE_FSAA โ non-zero enables full scene antialiasing.
__GL_FSAA_QUALITY โ 0, 1, or 2 (defines FSAA sampling/quality; only meaningful when __GL_ENABLE_FSAA is set).
(app-f) APPENDIX F: CONFIGURING AGP
AGP module selection is controlled via the "NvAGP" option in XF86Config:
Option "NvAgp" "0" โ disable AGP
Option "NvAgp" "1" โ use NVAGP if possible
Option "NvAgp" "2" โ use AGPGART if possible
Use the AGP module that works best with your chipset. If stability issues occur, try disabling AGP and experiment. Check AGP status:
Using the kernel AGPGART requires it be compiled with your kernel or available as a module. Changing AGP drivers generally requires a reboot.
(app-g) APPENDIX G: KNOWN BUGS
Known issues in this release include (summary):
OpenGL + Pixmap rendering: glClear() incorrect to pixmap
OpenGL + Xinerama: not functional
OpenGL and dlopen(): some issues due to glibc/libdl behavior; partial workarounds exist
OpenGL on SMP machines: improved but intermittent failures remain (esp. with 2.4.x kernels)
glReadPixels / glCopyPixels after window move: incorrect reads unless window is redrawn
DPMS and TwinView / Flat Panel: suspend/standby may only blank the screen rather than proper DPMS state
Multicard/Multimonitor: PCI card init and multi-card setups can be unreliable
GeForce2 Go on some Dell laptops: restarting X after exit may hang โ reboot as workaround
(app-h) APPENDIX H: BUGS FIXED SINCE LAST RELEASE
Lists fixes across several release boundaries; includes preliminary GeForce2 Go support, GeForce3 extensions, many SMP fixes, TV-Out support, GLXPixmap rendering fixes, OpenGL and X stability fixes, AGP fixes for large-memory systems, and more (see original README for full changelog).
Images



