April 18, 2019

New HOWTO: Nvidia OpenGL Configuration mini-HOWTO - page 2

Table of Contents, Section 1

  • March 22, 2001
2. Download the software packages

2.1. Linux Kernel >= 2.2.12 Required

First of all, the OpenGL drivers for the Nvidia cards currently require a
system with Linux kernel 2.2.12 or later. Release versions of kernel 2.4.x
are supported. If you don't have it, then you will have to upgrade your
system's Linux kernel; see [http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html]
The Linux Kernel HOWTO for details.

The Linux kernel can be downloaded at: [http://www.kernel.org/] http://

2.2. XFree86 4.0 or later

XFree86 4.0 or later, preferably 4.0.2 as of this writing, is also required.
Its installation will be covered later.

XFree86 source code comes in three files:

  * X402src-1.tgz
  * X402src-2.tgz
  * X402src-3.tgz
  * doctools-1.2.tgz

Doctools is something it uses to prepare the X documentation. Binary
distributions of XFree86 are available for many platforms and can be used
instead of compiling the sources. This howto talks about compiling the

[ftp://ftp.xfree86.org/] ftp://ftp.xfree86.org/

XFree86 includes [http://www.sgi.com/software/opensource/glx/] GLX, the
OpenGL X interface functions. Each window system has to provide the
platform-specific interfaces between OpenGL and the window system for mapping
a GL rendering context to a window system widget.

2.3. OpenGL man pages

XFree86 comes with only the GLX man pages. If you want a full set of OpenGL
man pages, you have to get them yourself.

  * mangl.tar.Z
  * manglu.tar.Z
  * manglx.tar.Z (don't need this one)

[ftp://ftp.sgi.com/sgi/opengl/doc/] ftp://ftp.sgi.com/sgi/opengl/doc/

These man pages are in a format ready to be unpacked into the XFree86 source
distributions, see below.

2.4. Mesa 3D

  * MesaLib-3.4.tar.gz
  * MesaDemos-3.4.tar.gz

[http://mesa3d.sourceforge.net/] http://mesa3d.sourceforge.net/

Mesa is the library that provides the foundation for the 3D support included
in XFree86, which comes only with the libGL OpenGL core library component.
Mesa is a software renderer. To enable hardware accelerated performance, many
3D hardware manufacturers provide a drop-in replacement for Mesa's standard
software-only libGL rendering library. For this document, we are only
interested in NVIDIA's libGL drop-in replacement library.

MesaLib provides a software OpenGL implementation consisting of libGL. It
also provides libGLU (GL Utility). libGLU is a library built on top of libGL
to provide some higher-level functions for applications. OpenGL itself,
libGL, is considered a low-level library. GLU is a standard part of most
OpenGL installations and many programs make use of it.

MesaDemos provides many OpenGL demo programs and, more importantly, the
[http://www.opengl.org/developers/documentation/glx.html] GL Utility Toolkit
(libglut) library. GLUT provides a window system independent interface
between OpenGL and any supported window system. For instance, on the X Window
System, it hides the details of using glX functions to setup a window.
Programmers can write code once and can compile it to work on MS Windows or
X, etc provided that a GLUT library is available on the target platform. Like
libGLU, libglut is a standard part of most OpenGL installations and is
required by many programs even though it is not packaged with XFree86.

While GLUT is bundled with MesaDemos, it is also available as a separate
package from its original project website:

glut-3.7.tar.gz glut_data-3.7.tar.gz

[http://reality.sgi.com/mjk/glut3/] http://reality.sgi.com/mjk/glut3/

You may use either the GLUT included with MesaDemos (preferred and easier) or
the GLUT from its project website. Don't install both! It's recommended at
this time to go with the GLUT packaged with MesaDemos, but instructions on
how to install the other GLUT are still provided in the next section as an
option. Note that MesaDemos does not include the glut manpages, so you may
want to download the project GLUT package just to install its manpages.

2.5. Qt

qt-x11-2.2.4.tar.gz or later version

[http://www.troll.no/] http://www.troll.no/

Qt is a cross-platform GUI library that makes it easy to create X
applications with standard GUI elements (widgets) like menubars, scollbars,
dropdown lists, checkboxes, buttons, multiple document interface, and many
other GUI things. Using Qt, a program can be compiled for both MS Windows and
X without changing any code. Its a very popular GUI library and is used to
create the core libraries of KDE ([http://www.kde.org/] http://www.kde.org/).

Qt has functions (previously as an extension in $QTDIR/extensions/opengl) for
OpenGL that provides for creating OpenGL rendering contexts in Qt windows.
This provides some alternative to both GLUT and using the glX functions
directly, plus the added benefit of full access to the excellent qt widgets
and cross-platform portability.

This is useful if you want to compile or develop programs based on Qt (e.g.,
KDE2 and its apps).

2.6. NVIDIA drivers (Mesa libGL replacement)

  * NVIDIA_kernel-0.9-769.tar.gz
  * NVIDIA_GLX-0.9-769.tar.gz

Note that XFree86 4.0.1 and later is required with driver 0.9-6 and later. If
you have XFree86 4.0.0, then you'll have to download the older 0.9-4 version.

[http://www.nvidia.com/] http://www.nvidia.com/

    Tip: See the updated faq at Nvidia.com while you are downloading. It may
    have some important information not in this HOWTO.
The NVIDIA drivers provide a kernel driver: /lib/modules/2.2.16/video/
NVdriver and libGL.so and libGLcore.so files that go into /usr/lib/ to
replace and Mesa ones that might be in there. libGL.so is OpenGL. These files
are Nvidia's own hardware accelerated OpenGL implementation.

2.7. Java 2 SDK, Java 3D extension, and Java PlugIn for Netscape (optional)

The following files are available at [http://www.blackdown.org/] http://

  * j2sdk-1.2.2-FCS-linux-i386-glibc-2.1.3.tar.bz2
  * java3d1_2-FCS-linux-i386-sdk.tar.bz2
  * JavaPlugIn-1.2.2-FCS-linux-i386-glibc-2.1.3.run

Note that to install these Java files, your system needs to have glibc 2.1.3
or better. To check your version of glibc:
                ls -l /lib/libc*                                             
On rpm-based systems (like RedHat and Mandrake), you can try:
                rpm -q glibc                                                 

Java2 1.3.0 FCS can also be used and it includes the JavaPlugin. If you use
it, you don't have to get JavaPlugin-1.2.2-FCS. Installation of this Plugin
is different and you'll have to see its documentation. Installation of Java2
1.3.0 itself, and Java3D, is the same as with Java2 1.2.2.

The [http://java.sun.com/products/java-media/3D/index.html] Java 3D media
extension contains many 3D demo programs/applets and takes advantage of the
OpenGL hardware acceleration on the system. The Java 3D API uses the OpenGL
API internally. The demos run as normal Java applications and also as applets
inside Netscape (4.7x) via the Java PlugIn, or inside [http://www.kde.org/]
KDE's [http://www.konqueror.org/] Konqueror 2.1 or later!

Most Popular LinuxPlanet Stories