Steven Taetzsch wrote:
> 
> I've downloaded the nvidia kernel and glx tarballs. Done make install on
> both of them and they installed successfully. I wanted to test it with
> tuxracer, but it doesn't work. It complains about the opengl. I included
> the output from lsmod and when I try to run tuxracer below. I also have
> a snippet of the XFree86-4 file.
> 
> What am I missing? Does tuxracer just not work?
> 
> Where's the best place to load the NVdriver on startup. I've added a
> modprobe NVdriver to my rc.local file. Is there a better place for this?
> 
> Thanks,
> Steve
> 
> # lsmod
> Module                  Size  Used by
> NVdriver              628560   0  (unused)
> ppp                    20976   2  (autoclean)
> slhc                    4544   1  (autoclean) [ppp]
> emu10k1                42480   0
> soundcore               2800   4  [emu10k1]
> nls_cp437               3952   3  (autoclean)
> vfat                    9408   1  (autoclean)
> fat                    30432   1  (autoclean) [vfat]
> supermount             14224   3  (autoclean)
> ide-scsi                7664   1
> usb-storage            11568   0  (unused)
> usbcore                43632   1  [usb-storage]
> 
> $ tuxracer
> Tux Racer 0.60.1 -- a Sunspire Studios Production
> (http://www.sunspirestudios.com)
> (c) 1999-2000 Jasmin F. Patry <[EMAIL PROTECTED]>
> "Tux Racer" is a trademark of Jasmin F. Patry
> Tux Racer comes with ABSOLUTELY NO WARRANTY. This is free software,
> and you are welcome to redistribute it under certain conditions.
> See http://www.gnu.org/copyleft/gpl.html for details.
> 
> GLUT: Fatal Error in tuxracer: OpenGL GLX extension not supported by
> display: :0
> 
> --- XFree86-4 snippet
> 
> Section "Module"
> 
> # This loads the DBE extension module.
>     Load        "glx"
>     Load        "dbe"

Hi I have included 2 files to read.Edit your /etc/X11/XFree86-4 file
make sure you are running Xfree4.*
then run the script nv_install and see!!
This page was written in 3 minuttes to show people a quick way to install their nVidia 
drivers under Linux (and with XFree86 4.0.1). If you follow this
    quick guide you should get your X up with the NVidia drivers :)

           Downloading the appropiate files:

           NVIDIA_kernel-0.9-5.tar.gz - nVidia Kernel Module 0.9-5 (Sept 5)

           NVIDIA_GLX-0.9-5.tar.gz - nVidia Drivers for XF86 4.0.1 0.9-5 (Sept 5)

           nv_check.sh - shell script to check your nvidia driver setup


           If you're running Red Hat 7.0 download one of the following rpms instead of 
the tar.gz kernel-file:

           NVIDIA_kernel-0.9-5.rh70-up.i386.rpm - nVidia 0.9-5 kernel module rpm for 
uni-processor Red Hat 7 (Sept. 29)

           NVIDIA_kernel-0.9-5.rh70-smp.i386.rpm - nVidia 0.9-5 kernel module rpm for 
multi-processor Red Hat 7 (Sept. 29)


           Install the drivers and modules:

           If you're running RH7.0 install the rpm by 'rpm -ivh 
NVIDIA_kernel-0.9-5.rh70-*.i386.rpm', if not unpack the kernel tar.gz file with 'tar 
xvfz
           NVIDIA_kernel-0.9-5.tar.gz' enter the directory and type 'make', that 
should make and install the nVidia Kernel Module. To be sure that it got up
           type 'lsmod' and check that the NVdriver is loaded. Btw. you need agpart 
compiled in your kernel, if you haven't got it compiled you need to edit
           os-registry.c and add a line '#undef AGPGART' right above the '#ifdef' line 
that's over 'U032 NVreg_UseKernelAGP = 1;'. Be careful in doing this as
           loading nVidia's agpart module at the same time as the kernels agpart, as 
this would make the system lock itself. The nVidia agpart chipset is
           preferred, but if you want to use the kernel agpart and recompile then you 
can find a kernel-howto on linuxdoc.org. (NB! The nVidia agpart SHOULD
           be used on computers with the bx or kx/kt 133 chipset.)
           After the kernel module is loaded unpack the GLX tar.gz file with 'tar xvfz 
NVIDIA_GLX-0.8-5.tar.gz', enter the directory created and type 'make'.
           This should install the nVidia drivers.


           Setup your XF86Config file:

           Go into your /etc/X11 directory and open the XF86Config (or XF86Config-4) 
file and make sure that the following sections look something like this:

           Section "Module"
               Load        "extmod"   # to give you several server extensions like 
SHAPE
               Load        "bitmap"   # SHOULD be here!
               Load        "dbe"      # 
               Load        "freetype" # font stuff :)
               Load        "glx"      # the hardware acceleration
               Load        "speedo"   # font stuff :)
               Load        "type1"    # font stuff :)
           EndSection

           Section "Device"
               Identifier         "NVIDIA GeForce 2 (generic)" # enter your 
card/chipset 
           here :)
               VideoRam           32768     # enter your videocards memory here
               Driver             "nvidia"  # this is the nvidia server
           EndSection

           Section "Screen"
               Identifier  "my_screen"      # just a name for your screen
               Device      "NVIDIA GeForce 2 (generic)" # the name you specified in 
the 
           Device section
               Monitor     "VPT1770"        # the name you specified in the Monitor 
           section
               DefaultDepth 24              # the default depth you want
               DefaultFbBpp 24              # the default depth you want while using a 
           framebuffer
               Subsection "Display"
                   Depth       24           # your preferred color-depth, recommended 
24, 
           but you can also use 8, 16 or 32(if your system supports it)
                   Modes       "1280x1024" "1024x768" "800x600" "640x480" "512x384"  # 
           the video-resolutions you wist to use, the first one will be the default, 
the 
           others can be changed to by using the Ctrl+Alt+plus/minus-key inside X
                   ViewPort    0 0          # only in use when using virtual screens, 
           just keep it there :)
               EndSubsection
           EndSection


           Note: the sections above are just a small part of the config file, but 
those are the only sections you would need to change to make your card work.
           The resolutions and so on are specific to my computer, you may have to 
change that to something that works on your. And the comments
           applied(starting with a #) can be removed.


           Clean up your system:

           Now to check that your system is correctly setuped, and that there are no 
Mesa and similar GL files slowing down the GL drivers from NVidia, run
           the nv_check.sh script you downloaded earlier. It should tell you if there 
are any duplicate files and so on. If the GL stuff still doesn't perform as it
           should, then do a 'ldconfig -p |grep libGL', you should then get a list 
over the libGL files that the system uses. What you shouldn't get in this list(and
           should be deleted) is:
                  1. Files located other places then in /usr/lib except for libGLU and 
libglut
                  2. Files likes libGL.so.1.2.030303


           Finished:

           If you completed everything above you should be able to startup X with the 
nVidia drivers. If something is wrong, or if everything is working, feel
           free to send me an email on [EMAIL PROTECTED] and tell me how much you 
love me ;) Also need to give a thx to phoenix from #nvidia on
           openprojects for helping me in making this page, thx :) 
<http://www.nvidia.com/Products/OpenLinuxDwn.nsf/67498f6dc9e6d19c88256a1100050ea7/$Body/0.130?OpenElement&amp;FieldElemFormat=gif>
NVIDIA Accelerated Linux Driver README & Installation Guide
Last updated: March 15, 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.  The driver set is the result of a partnership
between NVIDIA, SGI, and VA Linux Systems.
This file describes how to install, configure, and use the NVIDIA
Accelerated Linux Driver Set.
        -----
Contents:
(sec-01) CHOOSING THE NVIDIA PACKAGES APPROPRIATE FOR YOUR SYSTEM
(sec-02) INSTALLING THE NVIDIA_KERNEL AND NVIDIA_GLX PACKAGES
(sec-03) EDITING YOUR XF86CONFIG FILE
(sec-04) TROUBLESHOOTING
(sec-05) FREQUENTLY ASKED QUESTIONS
(sec-06) CONTACTING US
(sec-07) FURTHER RESOURCES
(app-a)  APPENDIX A: SUPPORTED NVIDIA GRAPHICS CHIPS
(app-b)  APPENDIX B: MINIMUM SOFTWARE REQUIREMENTS
(app-c)  APPENDIX C: INSTALLED COMPONENTS
(app-d)  APPENDIX D: XF86Config OPTIONS
(app-e)  APPENDIX E: OPENGL ENVIRONMENT VARIABLE SETTINGS
(app-f)  APPENDIX F: CONFIGURING AGP
(app-g)  APPENDIX G: KNOWN BUGS
(app-h)  APPENDIX H: BUGS FIXED SINCE LAST RELEASE
Please note that, in order to keep the instructions more concise,
most caveats and frequently encountered problems are not detailed in
the installation instructions, but rather in the troubleshooting and
FAQ sections.  Therefore, it is recommended that you read this entire
README before proceeding to perform any of the steps described.
        -----
(sec-01) CHOOSING THE NVIDIA PACKAGES APPROPRIATE FOR YOUR SYSTEM
=================================================================
NVIDIA has a unified driver architecture model; this means that one driver
set can be used with all supported NVIDIA hardware.  Please see Appendix
A for a list of the NVIDIA hardware supported by the current drivers.
The NVIDIA Accelerated Linux Driver Set consists of two packages
which you will need to download and install: the NVIDIA_GLX package
which contains the OpenGL libraries and the XFree86 driver, and the
NVIDIA_kernel package which contains the NVdriver kernel module needed by
the driver and libraries in the NVIDIA_GLX package (for more details on
the components of each package, please see Appendix C).  You will need to
install both packages, with matching version numbers (ie NVIDIA_GLX-0.9-6
should only be used with NVIDIA_kernel-0.9-6 and not NVIDIA_kernel-0.9-3).
The packages are available in several formats: RPM, SRPM, and tar file.
Installation of each package type is described below.  The package
type is largely a matter of personal preference, though please note
that the binary RPMs are for use only with the kernel shipped with a
particular distribution (eg NVIDIA_kernel-0.9-6.rh62.i386.rpm should
only be used with the uni-processor kernel shipped with RedHat 6.2).
Where appropriate, NVIDIA has provided separate RPMs for the distinct SMP
and uni-processor kernels of each distribution.  If you have upgraded
your kernel, or a specific NVIDIA_kernel rpm is not available for your
distribution, then use either the NVIDIA_kernel SRPM or tar file.
In the case where distributors ship multiple kernels (as is often
the case with uni-processor and SMP machines), there will be
multiple RPMs available, ie: NVIDIA_kernel-0.9-7.rh62.i386.rpm and
NVIDIA_kernel-0.9-7.rh62.smp.i386.rpm.
The NVIDIA_GLX RPM, however, is not dependent upon the kernel version,
and therefore an SRPM is not needed.  Install the NVIDIA_GLX package
either by RPM or tar file.
        -----
(sec-02) INSTALLING THE NVIDIA_KERNEL AND NVIDIA_GLX PACKAGES
=============================================================
Before beginning the driver installation, you should exit the X server. In
addition you should set your default runlevel so you will boot to console
and not start up X (please consult the documentation that came with your
linux distribution if you are unsure how to do this).  This will make
it easier to recover if there is a problem during the installation.
Please note that package revision numbers have been omitted in the
following directions to make them as general as possible.  While the
directions might say ?NVIDIA_kernel.tar.gz? you should replace
that with the name of the driver version you are installing; eg:
?NVIDIA_kernel.0.9-6.tar.gz?.
Installing by RPM
-----------------
Instructions for the Impatient:
        $ rpm -ivh NVIDIA_kernel.i386.rpm
        $ rpm -ivh NVIDIA_GLX.i386.rpm
Instructions:
Before installing from RPM, make sure that you have downloaded the
NVIDIA_kernel RPM appropriate for your kernel.  Once you have verified
that you do indeed have the correct RPM, install NVIDIA_kernel by doing:
        $ rpm -ivh NVIDIA_kernel.i386.rpm
Next, install the NVIDIA_GLX RPM by doing:
    
        $ rpm -ivh NVIDIA_GLX.i386.rpm
Upgrading by RPM
----------------
Instructions for the Impatient:
        $ rpm -Uvh NVIDIA_kernel.i386.rpm
        $ rpm -e NVIDIA_GLX
        $ rpm -ivh NVIDIA_GLX.i386.rpm
Instructions:
Before upgrading from RPM, make sure that you have downloaded the
NVIDIA_kernel RPM appropriate for your kernel.  Once you have verified
that you do indeed have the correct RPM, upgrade the NVIDIA_kernel
package by doing:
        $ rpm -Uvh NVIDIA_kernel.i386.rpm
You should not use the ?-U? option to rpm to upgrade the NVIDIA_GLX
RPM because a bug in the uninstall section of older NVIDIA RPMs will
cause some files to be removed that shouldn?t be.  Instead, use ?-e?
to remove the old NVIDIA_GLX RPM, and then install the new one:
        $ rpm -e NVIDIA_GLX
        $ rpm -ivh NVIDIA_GLX.i386.rpm
Installing/Upgrading by SRPM
----------------------------
Instructions for the Impatient:
        $ rpm --rebuild NVIDIA_kernel.src.rpm
        $ rpm -ivh /path/to/rpms/RPMS/i386/NVIDIA_kernel.i386.rpm
        $ rpm -ivh NVIDIA_GLX.i386.rpm
Instructions:
To build a custom NVIDIA_kernel RPM for your system, pass ?rpm? the
?--rebuild? flag:
        $ rpm --rebuild NVIDIA_kernel.src.rpm
Watch for the line that looks something like (the path may be different):
        Wrote: /usr/src/redhat/RPMS/i386/NVIDIA_kernel.i386.rpm
and use that as input to rpm to install:
        $ rpm -ivh /usr/src/redhat/RPMS/i386/NVIDIA_kernel.i386.rpm
or upgrade:
        $ rpm -Uvh /usr/src/redhat/RPMS/i386/NVIDIA_kernel.i386.rpm
To install the NVIDIA_GLX package, follow the instructions above for
either installing or upgrading NVIDIA_GLX from RPM.
Installing/Upgrading by Tar file
--------------------------------
Instructions for the Impatient:
    
        $ tar xvzf NVIDIA_kernel.tar.gz
        $ tar xvzf NVIDIA_GLX.tar.gz
        $ cd NVIDIA_kernel
        $ make install
        $ cd ../NVIDIA_GLX
        $ make install
    
Instructions:
To install from tar file, unpack each file:
        $ tar xzf NVIDIA_kernel.tar.gz
        $ tar xzf NVIDIA_GLX.tar.gz
cd into the NVIDIA_kernel directory.  Type ?make install?.  This will
compile the kernel interface to the NVdriver, link the NVdriver, copy
the NVdriver into place, and attempt to insert the NVdriver into the
running kernel:
        $ cd NVIDIA_kernel
        $ make install
Next, move into the NVIDIA_GLX directory.  Type ?make install? -- this
will copy the files into place:
        $ cd ../NVIDIA_GLX
        $ make install
Note that the ?make install? for each package will remove any previously
installed NVIDIA drivers.
        -----
(sec-03) EDITING YOUR XF86CONFIG FILE
=====================================
When XFree86 4.0 was released, it used a slightly different XF86Config
file syntax than the 3.x series did, and so to allow both 3.x and 4.x
versions of XFree86 to co-exist on the same system, it was decided that
XFree86 4.x was to use the configuration file ?/etc/X11/XF86Config-4"
if it existed, and only if that file did not exist would the file
?/etc/X11/XF86Config? be used.  Please make sure you know what
configuration file XFree86 is using.  If you are in doubt, look for a
line beginning with ?(==) Using config file: " in the your XFree86 log
file (?/var/log/XFree86.0.log?).  This README will use ?XF68Config?
to refer to your configuration file, whatever it is named.
If you do not have a working XF86Config file, there are several ways
to start: there is a sample config file that comes with XFree86, and
there is a sample config file included with the NVIDIA_GLX package (it
gets installed in /usr/doc when installing by rpm).  You could also use
a program like ?xf86config?; some distributions provide their own tool
for generating an XF86Config file.  For more on XF86Config file syntax,
please refer to the manpage.
If you already have an XF86Config file working with a different driver
(such as the ?nv? driver), then all you need to do is find the relevant
Device section and replace the line:
        Driver ?nv? 
    with 
        Driver ?nvidia?  
In the Module section, make sure you have:
        Load   ?glx?
You should also remove the following lines:
      
        Load  ?dri?
        Load  ?GLcore?
if they exist.  There are also numerous options that can be added to
the XF86Config file to fine-tune the NVIDIA XFree86 driver.  Please see
Appendix D for a complete list of these options.
Once you have configured your XF86Config file, you are ready to restart
X and begin using the accelerated OpenGL libraries.  After you restart X,
you should be able to run any OpenGL application and it will automatically
use the new NVIDIA libraries.  If you encounter any problems, please
see the troubleshooting section below.
        -----
(sec-04) TROUBLESHOOTING
========================
Here are a few strategies to keep in mind when troubleshooting problems
with the NVIDIA Accelerated Linux Driver Set:
- One of the most useful tools for diagnosing problems is the XFree86 log
file in /var/log (the file is usually named ?/var/log/XFree86.0.log?).
Lines that begin with ?(II)? are information, ?(WW)? are warnings, and
?(EE)? are errors.  You should make sure that the correct config file
(ie the config file you are editing) is being used; look for the line
that begins with: ?(==) Using config file: ?.  Also check that the NVIDIA
driver is being used, rather than the ?nv? driver; you can look for:
?(II) LoadModule: ?nvidia"?, and lines from the driver should begin with:
?(II) NVIDIA(0)?.
- Nothing will work if the NVdriver kernel module doesn?t function
properly.  If you see anything in the X log file like ?(EE) NVIDIA(0):
Failure allocating device.?  then there is most likely a problem
with the NVdriver 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?.  (But you should 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 by building with:
?make install SYSINCLUDE=/path/to/kernel/headers?.  Please note that
the convention for the location of kernel header files is in a state of
transition, as is 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 ./NVdriver? may help.
- If X starts, but OpenGL causes problems, you most likely have a
problem with other libraries in the way, or there are stale symlinks.
See Appendix C for details.  Sometimes, all it takes is to rerun
?ldconfig?.
- You should also check that the correct extensions are present;
?xdpyinfo? should show the ?GLX?, ?NV-GLX? and ?NVIDIA-GLX? extensions
present.  If these three extensions are not present, then there is most
likely a problem with the glx module getting loaded or it unable to
implicitly load GLcore.  Check your XF86Config file and make sure that you 
are loading glx (See ?Editing Your XF86Config File? above). If your XF86Config
file is correct, then check the XFree86 log file for warnings/errors
pertaining to GLX.  Also check that all of the necessary symlinks are
in place (refer to Appendix C).
        -----
(sec-05) FREQUENTLY ASKED QUESTIONS
===================================
Q: When I start X it fails and my XFree86 log file contains:
        (II) LoadModule: ?nvidia?
        (II) Loading /usr/X11R6/lib/modules/drivers/nvidia_drv.o
        No symbols found in this module
        (EE) Failed to load /usr/X11R6/lib/modules/drivers/nvidia_drv.o
        (II) UnloadModule: ?nvidia?
        (EE) Failed to load module ?nvidia? (loader failed, 256)
        ...
        (EE) No drivers available.
A: The nvidia_drv.o X driver has been stripped of needed symbols;
some versions of rpm (wrongly) strip object files while installing.
You should probably upgrade your version of rpm.  Or, you can install
the NVIDIA_GLX package from tarfile.
Q: Why does the NVdriver not work with DevFS?
A: DevFS will be supported in a future NVIDIA release.  In the meantime,
you will need to recreate the NVIDIA device nodes after each reboot.
Several patches have been suggested by users to make NVdriver DevFS-aware.
You may trying one of these if you like; a websearch should provide you
with several options.
Q: My system runs, but seems unstable.  What?s wrong?
A: You might be using the wrong AGP module.  See Appendix E for details
of AGP configuration.
Q: The kernel module doesn?t get loaded dynamically when X starts;
I always have to do ?modprobe NVdriver? first.  What?s wrong?
A: Make sure the line ?alias char-major-195 NVdriver? appears in
your module configuration file, generally one of ?/etc/conf.modules?,
?/etc/modules.conf? or ?/etc/modutils/alias?; consult the documentation
that came with your distribution for the details.
Q: I can?t build the NVdriver kernel module, or I can build the NVdriver
kernel module, but modprobe/insmod fails to load the module into my
kernel.  What?s wrong?
A: These Problems are generally caused by the build using the wrong kernel
header files (ie header files for a different kernel version than the
one you are running).  The convention used to be that kernel header files
used to be stored in ?/usr/include/linux/?, but that is being depracated
in favor of ?/lib/modules/`uname -r`/build/include?.  The NVIDIA_kernel
Makefile should be able to determine the location on your system; however,
if you encounter a problem you can force the build to use certain header
files by doing: ?make SYSINCLUDE=/path/to/kernel/headers?.  Obviously,
for any of this to work, you need the appropriate kernel header files
installed on your system.
Q: Why do OpenGL applications run so slow?
A: The application is probably using a different library still on your
system, rather than the NVIDIA supplied OpenGL library.  Please see
APPENDIX C for details.
Q: There are problems getting Quake2 going.
A: Quake2 requires some minor setup to get it going. First, in the
Quake2 directory, the install creates a sym link called libGL.so that
points at libMesaGL.so. This symlink should be removed or renamed. Then,
to run Quake2 in OpenGL mode, you would type:
   quake2 +set vid_ref glx +set gl_driver libGL.so
Quake2 does not seem to support any kind of full-screen mode, but you
can run your X server at whatever resolution Quake2 runs at to emulate
full-screen mode.
Q: There are problems getting Heretic II going.
A: Heretic II also installs, by default, a symlink called libGL.so
in the application directory. You can remove or rename this sym link,
since the system will then find the default libGL.so (which our drivers
install in /usr/lib). From within Heretic II you can then set your render
mode to OpenGL in the video menu.
There is also a patch available to Heretic II from lokigames at:
http://www.lokigames.com/products/heretic2/updates.php3
        -----
(sec-06) CONTACTING US
======================
If, after following the troubleshooting help, you are still having
problems with the NVIDIA Accelerated Linux Driver Set, you can
contact NVIDIA for support at: [EMAIL PROTECTED]  If you email
linux-bugs for assistance, please attach a copy of your XFree86 log file
(/var/log/XFree86.0.log) along with any other information you think might
be relevant.
        -----
(sec-07) FURTHER RESOURCES
==========================
Linux OpenGL ABI
http://oss.sgi.com/projects/ogl-sample/ABI/
NVIDIA Linux HowTo
http://www.linuxdoc.org/HOWTO/mini/Nvidia-OpenGL-Configuration/index.html
OpenGL
www.opengl.org
The XFree86 Project
www.xfree86.org
#nvidia (irc.openprojects.net)
        -----
(app-a) APPENDIX A: SUPPORTED NVIDIA GRAPHICS CHIPS
===================================================
o RIVA TNT                     0x0020
o RIVA TNT2                    0x0028
o RIVA TNT2 (Ultra)            0x0029
o RIVA TNT2 (Vanta)            0x002C
o RIVA TNT2 (M64)              0x002D
o RIVA TNT2 (??)               0x002E
o RIVA TNT2 (??)               0x002F
o RIVA TNT2 (Integrated)       0x00A0
o GeForce 256                  0x0100
o GeForce DDR                  0x0101
o Quadro                       0x0103
o GeForce2 MX                  0x0110
o GeForce2 MX DDR              0x0111
o GeForce2 Go                  0x0112
o GeForce2 MXR                 0x0113
o GeForce2 GTS                 0x0150
o GeForce2 GTS                 0x0151
o GeForce2 Ultra               0x0152
o Quadro2 Pro                  0x0153
o GeForce3                     0x0200
Please note that the 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
=================================================
o linux kernel     2.2.12   # cat /proc/version
o XFree86          4.0.1    # cat /var/log/XFree86.0.log | grep ?XFree86 Version?
o Kernel modutils  2.1.121  # insmod -V
  If you need to build the NVdriver kernel module:
o binutils         2.9.5    # size --version
o GNU make         3.77     # make --version
o gcc              2.7.2.3  # gcc --version
  If you build from source rpms:
o spec-helper rpm           # rpm -qi spec-helper
All official kernel releases from 2.2.12 and up are supported;
?prerelease? versions such as "2.4.3-pre2" are not necessarily supported.
The linux kernel can be gotten from www.kernel.org or one of its mirrors.
binutils and gcc will only be needed if you install the NVIDIA_kernel package
by SRPM or tarfile; binary RPM installations do not require these.
binutils and gcc can be gotten from www.gnu.org or one of its mirrors.
If you are using XFree86, but do not have a file /var/log/XFree86.0.log,
then you probably have a 3.x version of XFree86... you will definitely
need to upgrade.  When first setting up XFree86 4.x, it is often easier
to use one of the open source drivers that ships with XFree86 (either
?nv?, ?vga? or ?vesa?).  Please note that not all NVIDIA cards will work
with these drivers; for example, the nv driver that shipped with XFree86
4.0.1 did not recognize the GeForce2 family of cards.  XFree86 can be
obtained from www.xfree86.org.
All of these software packages are also likely to be available through
your linux distributor.
        -----
(app-c) APPENDIX C: INSTALLED COMPONENTS
========================================
The NVIDIA Accelerated Linux Driver Set consists of the following
components (the file in parenthesis is the full name of the component
after installation; ?x.y.z? denotes the current version -- in these
cases appropriate symlinks are created during installation):
        o An XFree86 driver (/usr/X11R6/lib/modules/drivers/nvidia_drv.o);
        this driver is needed by XFree86 to use your NVIDIA hardware.
        The nvidia_drv.o driver is binary compatible with XFree86 4.0.1
        and greater.
        o A GLX extension module for XFree86
        (/usr/X11/lib/modules/extensions/libglx.so.x.y.z); this module
        is used by XFree86 to provide server-side glx support.
        o An OpenGL library (/usr/lib/libGL.so.x.y.z); this library
        provides the API entry points for all OpenGL and GLX function
        calls.  It is linked to at run-time by OpenGL applications.
        o An OpenGL core library (/usr/lib/libGLcore.so.x.y.z); this
        library is implicitly used by libGL and by libglx.  It contains
        the core accelerated 3D functionality.  You should not explicitly
        load it in your XF86Config file -- that is taken care of by
        libglx.
        o A kernel module (/lib/modules/[kernel version]/video/NVdriver
        or /lib/modules/[kernel version]/kernel/drivers/video/NVdriver).
        This kernel module provides low-level access to your NVIDIA
        hardware for all of the above components.  It is generally
        loaded into the kernel when the X server is started, and is
        used by the XFree86 driver and GL.  NVdriver consists of two
        pieces: the binary-only core, and a kernel interface that must
        be compiled specifically for your kernel version.  Note that
        the linux kernel does not have a consistent binary interface
        like XFree86, so it is important that this kernel interface
        be matched with the version of the kernel that you are using.
        This can either be accomplished by compiling yourself, or using
        precompiled binaries provided for the kernels shipped with some
        of the more common linux distributions.
The first four components listed above (XFree86 driver, GLX module, libGL,
and libGLcore) are included in the NVIDIA_GLX package.  The last component
(the NVdriver kernel module) is included in the NVIDIA_kernel package.
Documentation is also part of the NVIDIA_GLX package and gets installed
in /usr/doc when installing by rpm.
Problems will arise if applications use the wrong version of a library.
This can be the case if there are either old libGL libraries or stale
symlinks left lying around.  If you think there may be something awry
in your installation, check that the following files are in place
(these are all the files of the NVIDIA Accelerated Linux Driver Set,
plus their symlinks):
        /usr/X11R6/lib/modules/drivers/nvidia_drv.o
        /usr/X11/lib/modules/extensions/libglx.so.x.y.z
        /usr/X11/lib/modules/extensions/libglx.so -> libglx.so.x.y.z
        /usr/lib/libGL.so.x.y.z
        /usr/lib/libGL.so.x -> libGL.so.x.y.z
        /usr/lib/libGL.so -> libGL.so.x
        /usr/lib/libGLcore.so.x.y.z
        /usr/lib/libGLcore.so.x -> libGLcore.so.x.y.z
        /lib/modules/[kernel version]/video/NVdriver, or
        /lib/modules/[kernel version]/kernel/drivers/video/NVdriver
Installation of the NVIDIA_kernel package will also create the /dev files:
        crw-rw-rw-    1 root     root     195,   0 Feb 15 17:21 nvidia0
        crw-rw-rw-    1 root     root     195,   1 Feb 15 17:21 nvidia1
        crw-rw-rw-    1 root     root     195,   2 Feb 15 17:21 nvidia2
        crw-rw-rw-    1 root     root     195,   3 Feb 15 17:21 nvidia3
        crw-rw-rw-    1 root     root     195, 255 Feb 15 17:21 nvidiactl
If there are other libraries whose ?soname? conflicts with that of
the NVIDIA libraries, ldconfig may create the wrong symlinks.  It is
recommended that you manually remove or rename (be sure to rename
clashing libraries to something that ldconfig won?t look at -- we?ve
found that prepending ?XXX? to a library name generally does the trick)
conflicting libraries, rerun ?ldconfig?, and check that the correct
symlinks were made.  Some libraries that often create conflicts are
?/usr/X11R6/lib/libGL.so*? and ?/usr/X11R6/lib/libGLcore.so*?.
If the libraries checks out, then verify that the application is using
the correct libraries.  For example, to check that the application
/usr/X11R6/bin/gears is using the NVIDIA libraries, you would do:
$ ldd /usr/X11R6/bin/gears
        libglut.so.3 => /usr/lib/libglut.so.3 (0x40014000)
        libGLU.so.1 => /usr/lib/libGLU.so.1 (0x40046000)
        libGL.so.1 => /usr/lib/libGL.so.1 (0x40062000)
        libc.so.6 => /lib/libc.so.6 (0x4009f000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x4018d000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40196000)
        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x401ac000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x401c0000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x401cd000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x401d6000)
        libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x402ab000)
        libm.so.6 => /lib/libm.so.6 (0x4048d000)
        libdl.so.2 => /lib/libdl.so.2 (0x404a9000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404ac000)
Note the files being used for libGL and libGLcore -- if they are something
other than the NVIDIA libraries, then you will need to either remove the
libraries that are getting in the way, or adjust your ld search path.
If any of this seems foreign to you, then you may want to read the man
pages for ?ldconfig? and ?ldd? for pointers.
        -----
(app-d) APPENDIX D: XF86Config OPTIONS
======================================
The following driver options are supported by the NVIDIA XFree86 driver:
        Option ?SWCursor? ?boolean?
                                 Enable or disable software rendering of the X cursor.
                                 Default: off.
        Option ?HWCursor? ?boolean?
                                 Enable or disable hardware rendering of the X cursor.
                                 Default: on.
        Option ?NoAccel? ?boolean?
                Disable or enable 2D acceleration using the XAA module
                (note that this is different that 3D acceleration).
                Default: acceleration is enabled.
        Option ?Rotate? ?CW?
        Option ?Rotate? ?CCW?
                Rotate the display clockwise or counterclockwise.
                This mode forces NoAccel and SWCursor to both be TRUE.
                Default: no rotation.
        Option ?ShadowFB? ?boolean?
                Enable or disable use of the shadow framebuffer layer.
                See shadow fb(4) for further information.  Default: off.
        Option ?NvAGP? ?integer?
                Configure AGP support. Integer argument can be one of:
                0 : disable agp 
                1 : use NVIDIA?s internal AGP support, if possible 
                2 : use AGPGART, if possible 
                3 : use any agp support (try AGPGART, then NVIDIA?s AGP) 
                Default: 1.
        Option ?IgnoreEDID? ?boolean?
                Disable probing of EDID (Extended Display Identification
                Data) from your monitor.  Requested modes are compared
                against values gotten from your monitor EDIDs (if any)
                during mode validation.  Some monitors are known to lie
                about their own capabilities.  Ignoring the values that
                the monitor gives may help get a certain mode validated.
                On the other hand, this may be dangerous if you don?t
                know what you are doing.  Default: Use EDIDs.
        Option ?ConnectedMonitor? ?string?
                Allows you to override what the NVIDIA kernel module
                detects is connected to your video card.  This may
                be useful, for example, if you use a KVM (keyboard,
                video, mouse) switch and you are switched away when
                X is started. In such a situation, the NVIDIA kernel
                module can?t detect what display devices are connected,
                and the NVIDIA X driver assumes you have a single CRT
                connected. If, however, you use a digital flatpanel
                instead of a CRT, use this option to explicitly tell
                the NVIDIA X driver what is connected. Valid values
                for this option are ?CRT? (cathode ray tube) or ?DFP?
                (digital flatpanel); if using TwinView, this option
                may be a comma-separated list of display devices; e.g.:
                ?CRT, CRT? or ?CRT, DFP?.  Default: string is NULL.
        Option ?TwinView? ?boolean?
                Enable or disable TwinView. Please see the file
                TWINVIEW_README for details. Default: TwinView is
                disabled.
        Option ?TwinViewOrientation? ?string?
                Controls the relationship between the two display devices
                when using TwinView. Takes one of the following values:
                ?RightOf? ?LeftOf? ?Above? ?Below? ?Clone?. Please see the
                file TWINVIEW_README for details. Default: string is NULL.
        Option ?SecondMonitorHorizSync? ?range(s)?
                This option is like the HorizSync entry in the Monitor
                section, but is for the second monitor when using
                TwinView.  Please see the file TWINVIEW_README for
                details. Default: none.
        Option ?SecondMonitorVertRefresh? ?range(s)?
                This option is like the VertRefresh entry in the
                Monitor section, but is for the second monitor when
                using TwinView.  Please see the file TWINVIEW_README
                for details. Default: none.
        Option ?MetaModes? ?string?
                This option describes the combination of modes to use
                on each monitor when using TwinView. Please see the file
                TWINVIEW_README for details. Default: string is NULL.
        -----
(app-e) APPENDIX E: OPENGL ENVIRONMENT VARIABLE SETTINGS
========================================================
The following is a list of environment variables that affect the
behavior of OpenGL applications.
Note that these environment variables are not guaranteed to be the
same from release to release, or even exist in future releases.
        __GL_SYNC_TO_VBLANK
                Setting this to a non-zero value will force glXSwapBuffers
                to sync to your monitor?s vertical refresh rate (perform
                a swap only during the vertical blanking period).
        __GL_ENABLE_FSAA
                Setting this to a non-zero value will enable full scene
                antialiasing.
        __GL_FSAA_QUALITY:
                This can be set to either 0, 1 or 2.  0 means 1.5x1.5
                oversampling.  1 means 2x2 oversampling with texture LOD
                bias.  2 means 2x2 oversampling with no texture LOD bias.
                Note that this variable only makes sense when
                __GL_ENABLE_FSAA is set.
        -----
(app-f) APPENDIX F: CONFIGURING AGP
===================================
There are several options for configuring the NVdriver kernel module?s
use of AGP: you can choose to either use NVIDIA?s AGP module (nvagp),
or the AGP module that comes with the linux kernel (agpgart).  This is
controlled through the ?NvAGP? option in your XF86Config file:
         Option ?NvAgp? "0"  ... disables AGP support
         Option ?NvAgp? "1"  ... use NVAGP, if possible
         Option ?NvAgp? "2"  ... use AGPGART, if possible
You should use the AGP module that works best with your AGP chipset.
If you are experiencing stability problems, then you may want to
start by disabling AGP and seeing if that alleviates your problems.
Then you can experiment with either of the other AGP modules.  You can
check your AGP status by doing: ?cat /proc/nv/card0?.  Note that to use
the linux AGPGART module, it will need to be compiled with your kernel,
either statically linked in, or built as a module.
Please note that changing AGP drivers generally requires a reboot before
the changes actually take effect.
        -----
(app-g) APPENDIX G: KNOWN BUGS
==============================
The following problems still exist in this release. We are aware of these
issues and are working towards resolving them.
- OpenGL + Indirect Rendering
        Currently, indirect OpenGL rendering (applies when an application is 
                 run from a different machine than where it renders to or if the 
                 application requests an indirect rendering context) is not fully
        supported. 
- OpenGL + Xinerama
        Currently, OpenGL is not functional with Xinerama.
- OpenGL and dlopen()
        The current thought is that there are some bugs in the glibc dynamic
        library loading and libdl.so that cause problems with applications that
        use dlopen() to load the OpenGL library.  Apps that use dlopen()
        include Quake3 and Radiant.  A workaround has been implemented that
        will fix some, but not all, cases where this happens.
- OpenGL and Texture Compression
        There is an Texture compression bug that will cause texture
        compression errors for small set of textures.  This bug shows up when
                 running Tribes 2, for example.
        
- OpenGL on SMP machines 
                 Running multiple OpenGL applications on SMP machines, does not work 
                 correctly.
- glReadPixels and glCopyPixels after window is moved
                 When the window moves, the data that is read back from the back 
buffer,
                 stencil buffer and/or depth buffer will be incorrect unless the 
window 
                 is redrawn after the move
- TwinView and MPEG videos
                 There are problems with MPEG videos when using TwinView
        -----
(app-h) APPENDIX H: BUGS FIXED SINCE LAST RELEASE
=================================================
The following problems were fixed between release 0.9-767 and release 0.9-769:
- Fix problem where an old version of the release documentation (an old
  version of this file!) was being installed instead of the current one
The following problems were fixed between release 0.9-6 and release 0.9-767:
- Fixed problem where direct rendering applications were allowed to
  continue rendering after xkill was called
- Fixed problem where Tribes 2 crashed when compressed textures (s3tc
  textures) were used
- Some drawable leaks were fixed in X and GLX
- Fixed problem where the application would hang when calling
  glXMakeCurrent while holding the X server grab
- Bios-posting problems on GEForce2 GTS and GEForce Ultra cards were
  fixed. This bug resulted in a significant performance loss.
- Added support for the X Render extension.
- TwinView functionality was enhanced so that each head can pan independently.
- Fixed problem on TNT and TNT2 where Xv(Shm)PutImage returned BadAlloc in
  high resolutions when there was not enough video bandwidth to display
  the YUV video overlay correctly. This works now but the resulting
  display has artifacts.
- Fixed problem with cursor hanges in X.
- Fixed problem with X console not restoring on some monitors.
- Fixed problem with fork() and OpenGL rendering
- Fixed problem with X driver module, nvidia_drv.o, being stripped when RPM
  was rebuilt.
- Added missing PCI device ids for some TNT2 variants and GeForce3
- Fixed problem where the kernel would often hang during X and/or OpenGL
  operation when on an SMP machine and using the 2.4 kernel.
- Fixed SYNC_TO_VBLANK hang with 2.4 kernels.
- Dpms is partially working again. It is possible to set the ?off? option for
  dpms. Dpms options ?suspend? and ?standby? are not fully supported--
  they simply blank the screen.

nv_check.sh

Reply via email to