GeForce2 Installation Notes
These notes are a rough walkthrough of the steps I followed when installing
a new GeForce2 GTS graphics card in my Linux system.
Since nVidia's Linux drivers are intended to support all of their recent
chips, this information should apply to most graphics cards based on
TNT, Quadro, or GeForce chips.
I ran into a number of difficulties during this installation, mostly
due to the many different, sometimes conflicting versions of various
packages under Linux; hence, I'm hoping that these notes will be helpful
to others going through the same process.
nVidia's drivers and instructions are available from their
web site.
The PC that I used is a Dell Dimension XPS-T (Pentium III CPU, Intel 440BX
motherboard).
The GeForce2 card is an ELSA Gladiac (32MB, AGP).
I started with a fresh install of SuSE 6.4 Linux, without configuring
X Windows.
The major steps were:
-
Saved a copy of /usr/X11R6/lib/libX11.so (the version from XFree86 3.3)
for a step near the end.
- Installed XFree86 4.0, using the precompiled Linux-ix86-glibc21
binaries from xfree86.org.
Installed practically everything, answering 'y' to all options.
NOTES:
- I tried 4.0.1 a couple times, but had no success; I will probably try this
again later, but for now 4.0 works fine.
- 4.0's Xinstall.sh does not work with the newest version of ldconfig;
I replaced the line that runs ldconfig by the corresponding lines from the
4.0.1 Xinstall.sh.
- I could not follow nVidia's suggestion of first testing the card with
XFree86's own 'nv' driver - the driver did not recognize the new GeForce2
chip, and so refused to use it.
- Installed nVidia's 0.94 kernel driver. Because I'm not using RedHat Linux,
I built it from the source RPM provided for "other" systems.
- rpm -iv NVIDIA_kernel-0.9-4.src.rpm
- cd /usr/src/packages
- rpm -ba SPECS/NVIDIA_kernel.spec
NOTE: This failed due to missing linux/agp header files.
I had installed SuSE's default "pentium-optimized" kernel; after
using YaST to change this to the "vanilla" kernel, the compilation
succeeded. I later switched back to the "pentium-optimized" kernel
without any apparent problems.
- rpm -Uvh RPMS/i386/NVIDIA_kernel-0.9-4.i386.rpm
NOTE: This produced several error messages about unresolved
symbols in other modules (perhaps due to the kernel change),
but lsmod showed that the NVdriver module was successfully
loaded.
- Rebooted the system, just to make sure the new kernel & modules
still worked.
- At this point I should have removed all the Mesa libraries that
are scattered about the system. Instead I removed them later as I
discovered them. The files to remove (or rename) are:
- /usr/X11R6/lib/modules/extensions/libGLcore.a
- /usr/X11R6/lib/modules/extensions/libglx.a
- /usr/X11R6/lib/libGL*
- /usr/lib/libGL*
- Installed nVidia's GLX driver, also from the source RPM.
- rpm -iv NVIDIA_GLX-0.9-4.src.rpm
- cd /usr/src/packages
- rpm -ba SPECS/NVIDIA_GLX.spec
- rpm --nodeps -Uvh RPMS/i386/NVIDIA_GLX-0.9-4.i386.rpm
NOTE: The --nodeps is necessary because XFree86 4.0 was
not installed from an RPM.
- Set up /etc/X11/XF86Config. In the "Device" section, make sure
the driver line is
Driver "nvidia"
In the "Module" section, make sure to include the line
Load "glx"
I set the screen resolution to 1280x1024, and the DefaultDepth to 16
bits. The card will also work at 24 bits, but the 3D rendering
performance is noticeably less at that depth.
- Replaced /usr/X11R6/lib/libX11.so.6 by the libX11.so from XFree86
3.3 (that originally installed with SuSE 6.4). This is necessary
because of a bug with 4.0's glXUseXFont function, which will cause
any CAVE or Performer programs to crash. This bug is mentioned in
nVidia's installation instructions; they suggest putting the 3.3
libX11.so elsewhere and using LD_LIBRARY_PATH to load it with those
applications that need it, but I had problems with this and so just
replaced the existing libX11; unfortunately, doing this breaks xdm,
so I will have to go back & try the suggested way again at some
point.
- Compiled libGLU from the Mesa
3.2.1 distribution, and installed it in /usr/lib/.
Last modified 12 August 2000.
Dave Pape, pape@evl.uic.edu