mirror of https://github.com/tLDP/LDP
1688 lines
62 KiB
Plaintext
1688 lines
62 KiB
Plaintext
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
|
|
|
|
<book lang="en">
|
|
|
|
<BookInfo>
|
|
<title>Nvidia OpenGL Configuration mini-HOWTO</title>
|
|
<titleabbrev>Nvidia-OpenGL-Configuration-mini-HOWTO</titleabbrev>
|
|
|
|
<author>
|
|
<firstname>Robert</firstname>
|
|
<surname>Easter</surname>
|
|
<othername role="mi">B</othername>
|
|
<affiliation>
|
|
<address>
|
|
<email>reaster@reaster.com</email>
|
|
</address>
|
|
</affiliation>
|
|
</author>
|
|
|
|
<revhistory>
|
|
<revision>
|
|
<revnumber>v1.10</revnumber>
|
|
<date>2002-01-31</date>
|
|
<authorinitials>rbe</authorinitials>
|
|
</revision>
|
|
</revhistory>
|
|
|
|
<abstract>
|
|
<para>
|
|
This mini-HOWTO is about how to install the
|
|
<ulink url="http://www.opengl.org/">OpenGL</ulink>
|
|
drivers for
|
|
<ulink url="http://www.nvidia.com/">Nvidia</ulink> graphics cards on
|
|
<ulink url="http://www.linux.org/">Linux</ulink>.
|
|
In addition to just installing the Nvidia drivers, this mini-HOWTO
|
|
also explains how to install
|
|
<ulink url="http://www.XFree86.org/">XFree86</ulink>, the
|
|
OpenGL Utility library
|
|
(part of <ulink url="http://www.mesa3d.org/">Mesa</ulink>),
|
|
the OpenGL Utility Toolkit
|
|
(<ulink url="http://reality.sgi.com/mjk/glut3/">glut</ulink>),
|
|
the full set of OpenGL manpages,
|
|
<ulink url="http://www.trolltech.com/">Qt</ulink> and its OpenGL extension,
|
|
and <ulink url="http://www.blackdown.org/">Java</ulink> and
|
|
its Java 3D extension so that a user can have a complete runtime and
|
|
development environment for OpenGL applications on Linux.
|
|
</para>
|
|
<para>
|
|
Note that some of this material may be out of date. The author
|
|
has attempted to update this material but has not had time to
|
|
test all the procedures. Nevertheless, this document should
|
|
still provide a decent overview of what is involved.
|
|
If you spot errors please contact the author.
|
|
</para>
|
|
|
|
</abstract>
|
|
|
|
</BookInfo>
|
|
|
|
<preface id="versions">
|
|
<title>New Versions of this Document</title>
|
|
|
|
<para>
|
|
The latest version of this mini-HOWTO can be found at:
|
|
</para>
|
|
|
|
<para>
|
|
<ulink url="http://www.linuxdoc.org/HOWTO/mini/Nvidia-OpenGL-Configuration/">http://www.linuxdoc.org/HOWTO/mini/Nvidia-OpenGL-Configuration/</ulink>
|
|
</para>
|
|
|
|
</preface>
|
|
|
|
<preface id="copyr">
|
|
<title>Copyright and Licenses</title>
|
|
|
|
<blockquote><para>
|
|
Copyright (c) 2001, 2002 Robert B. Easter.
|
|
Permission is granted to copy, distribute and/or modify this document
|
|
under the terms of the GNU Free Documentation License, Version 1.1
|
|
or any later version published by the Free Software Foundation;
|
|
with no Invariant Sections, with no Front-Cover Texts, and with
|
|
no Back-Cover Texts. A copy of the license is included in the
|
|
section entitled "GNU Free Documentation License".
|
|
</para></blockquote>
|
|
</preface>
|
|
|
|
<preface id="disclaimer">
|
|
<title>Disclaimer</title>
|
|
|
|
<para>
|
|
No liability for the contents of this documents can be accepted.
|
|
Use the concepts, examples and other content at your own risk.
|
|
</para>
|
|
|
|
<para>
|
|
All copyrights are held by their respective owners, unless
|
|
specifically noted otherwise. Use of a term in this document
|
|
should not be regarded as affecting the validity of any trademark
|
|
or service mark.
|
|
</para>
|
|
|
|
<para>
|
|
Naming of particular products or brands should not be seen
|
|
as endorsements.
|
|
</para>
|
|
</preface>
|
|
|
|
<preface id="contribs">
|
|
<title>Contributors</title>
|
|
<para>I thank the following contributors for their input into this document:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Jan De Luyck (jandeluyck at gmx.net) --
|
|
Provided information about tweaking <filename>os-registry.c</filename>
|
|
to change AGP settings and how to monitor the nv settings
|
|
with <command>cat /proc/nv/card0</command>. Thanks <emphasis>!</emphasis>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
</preface>
|
|
|
|
<chapter id="intro">
|
|
<title>Introduction</title>
|
|
<para>
|
|
The installation of the NVIDIA drivers under Linux can be quite easy
|
|
in itself. However, there is a little more to it sometimes than
|
|
just unpacking the driver files.
|
|
</para>
|
|
|
|
<para>
|
|
Since certain versions of the NVIDIA drivers require upgrading your
|
|
XFree86 to work, I've included some material on installing XFree86.
|
|
If upgrading XFree86 is necessary for you, you can read this document
|
|
but also carefully read the information at
|
|
<ulink url="http://www.XFree86.org/">XFree86.org</ulink>.
|
|
</para>
|
|
|
|
<para>
|
|
The NVIDIA driver is only concerned with installing the OpenGL libGL
|
|
library. But since there is more to a complete OpenGL installation than
|
|
just libGL, I cover the installation of defacto standard OpenGL add-on
|
|
libraries like GL Utility (libGLU) and GL Utility Toolkit (libglut).
|
|
</para>
|
|
|
|
<para>
|
|
Going a little beyond the basics, I cover the installation of some
|
|
other libraries you might want to consider:
|
|
<ulink url="http://www.trolltech.com/">TrollTech</ulink>'s Qt C++ Library
|
|
and the Java language
|
|
<ulink url="http://java.sun.com/products/java-media/3D/">Java 3D API</ulink>.
|
|
</para>
|
|
|
|
</chapter>
|
|
|
|
<chapter id="downloadsw">
|
|
<title>Download the software packages</title>
|
|
|
|
<sect1>
|
|
<title>Linux Kernel >= 2.2.12 Required</title>
|
|
<para>
|
|
First of all, the OpenGL drivers for the Nvidia cards currently require
|
|
a system with Linux kernel 2.2.12 or later. Recent releases of
|
|
kernel 2.4.x are supported and are recommended since most new development
|
|
happens in the 2.4 kernels. If you don't have it, then
|
|
you will have to upgrade your system's Linux kernel; see
|
|
<ulink url="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html">
|
|
The Linux Kernel HOWTO</ulink> for details.
|
|
</para>
|
|
|
|
<para>
|
|
The Linux kernel can be downloaded at:
|
|
<ulink url="http://www.kernel.org/">http://www.kernel.org/</ulink>
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>XFree86 4.0 or later</title>
|
|
<para>
|
|
The current version of XFree86 is 4.2.0 as of this writing.
|
|
It can be downloaded as source or binaries. It is generally recommended
|
|
to download the binaries these days. See
|
|
<ulink url="http://www.xfree86.org/">http://www.XFree86.org</ulink> for
|
|
the lastest official information on installation of XFree86.
|
|
Later in this document, I describe only the very basic procedure
|
|
for compiling and installing from the source.
|
|
</para>
|
|
|
|
<para>
|
|
XFree86 source code comes in three files:
|
|
<itemizedlist>
|
|
<listitem><para>X420src-1.tgz</para></listitem>
|
|
<listitem><para>X420src-2.tgz</para></listitem>
|
|
<listitem><para>X420src-3.tgz</para></listitem>
|
|
<listitem><para>doctools-1.3.tgz</para></listitem>
|
|
<listitem><para>utils.tgz</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
Doctools is the DocBook SGML package used by XFree86 to prepare the X documentation.
|
|
Utils contains the source for the "extract" program, which is a modified GNU tar with
|
|
gzip support. Extract is only important if you are installing a binary distribution
|
|
of XFree86 on top of your existing XFree86 to upgrade it. Extract unlinks old existing
|
|
files that are being extracted/updated instead of skipping them. Extract comes with the
|
|
binary distributions so utils.tgz is only important for making your own binary
|
|
distribution.
|
|
</para>
|
|
|
|
<para>
|
|
You can download XFree86 from its ftp site:
|
|
<ulink url="ftp://ftp.xfree86.org/">ftp://ftp.xfree86.org/</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
XFree86 includes
|
|
<ulink url="http://www.sgi.com/software/opensource/glx/">GLX</ulink>,
|
|
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. Recent versions of XFree86, like
|
|
version 4.2.0, now also include libGLU and the OpenGL manual pages.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>OpenGL man pages</title>
|
|
|
|
<para>
|
|
XFree86 prior to version 4.2.0 comes with only the GLX and (maybe) GLU man pages.
|
|
If you wanted a full set of OpenGL man pages, you had to get them yourself.
|
|
<itemizedlist>
|
|
<listitem><para>mangl.tar.Z</para></listitem>
|
|
<listitem><para>manglu.tar.Z</para></listitem>
|
|
<listitem><para>manglx.tar.Z (you don't need this one)</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
If you are using XFree86 4.2.0 or later, you should already have the manglx OpenGL interface
|
|
extension man pages, mangl OpenGL library man pages, and the manglu GL Utility library pages too.
|
|
If you are using XFree86 prior to 4.2.0, you'll have to see what you have included
|
|
with your XFree86 version and get some of the packages above. As time goes on, XFree86
|
|
has been including more of these manual pages and other standard OpenGL add-on libraries.
|
|
</para>
|
|
|
|
<para>
|
|
These packages can be found at:
|
|
<ulink url="ftp://ftp.sgi.com/sgi/opengl/doc/">ftp://ftp.sgi.com/sgi/opengl/doc/</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
These man page packages are in a format ready to be unpacked into the
|
|
XFree86 source distributions (if needed/missing), see below.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Mesa 3D</title>
|
|
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem><para>MesaLib-4.0.1.tar.gz</para></listitem>
|
|
<listitem><para>MesaDemos-4.0.1.tar.gz</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
<ulink url="http://mesa3d.sourceforge.net/">http://mesa3d.sourceforge.net/</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
Mesa is the library that provides the foundation for the 3D support included in XFree86. Originally, Mesa
|
|
included a software-only libGL that only claims to be "similar to that of OpenGL." Mesa now
|
|
also supports hardware acceleration for a growing number of cards (see their site for details).
|
|
The Mesa package also includes an implementation of the libGLU Utility library and the libglut
|
|
GL Utility Toolkit library. Some versions of XFree86 only included the libGL from Mesa and
|
|
some header files. With recent releases of XFree86, like 4.2.0, more has been added
|
|
from Mesa, like libGLU and the manual pages. libglut may still be missing from your XFree86
|
|
distribution, so you may still like to get it from the Mesa distribution or from the GLUT
|
|
distribution directly.
|
|
</para>
|
|
<para>
|
|
As shipped, XFree86 will support software OpenGL rendering (painfully slow) using the Mesa libGL.
|
|
It may also support hardware accelerated OpenGL for some cards that have a fully open source
|
|
driver. But for NVIDIA, the subject of this document, there is no fully open sourced
|
|
hardware accelerated OpenGL driver included in XFree86. The NVIDIA GLX/OpenGL driver we download
|
|
from <ulink url="http://www.nvidia.com/">NVIDIA.com</ulink> is a binary, closed source driver
|
|
that is a drop-in hardware accelerated replacement for the Mesa libGL.so file.
|
|
</para>
|
|
|
|
<para>
|
|
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.
|
|
</para>
|
|
|
|
<para>
|
|
MesaDemos provides many OpenGL demo programs and, more importantly, the
|
|
<ulink url="http://www.opengl.org/developers/documentation/glut/index.html">GL Utility Toolkit</ulink>
|
|
(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.
|
|
</para>
|
|
|
|
<para>
|
|
While GLUT is bundled with MesaDemos, it is also available as separate packages:
|
|
</para>
|
|
|
|
<para>
|
|
glut-3.7.tar.gz
|
|
glut_data-3.7.tar.gz
|
|
</para>
|
|
|
|
<para>
|
|
from <ulink url="http://www.opengl.org/developers/documentation/glut/index.html">http://www.opengl.org/developers/documentation/glut/index.html</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
You may use <emphasis>either</emphasis> 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 man pages.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Qt</title>
|
|
|
|
<para>
|
|
qt-x11-2.2.4.tar.gz or later version
|
|
</para>
|
|
|
|
<para>
|
|
<ulink url="http://www.troll.no/">http://www.troll.no/</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
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 (<ulink url="http://www.kde.org/">http://www.kde.org/</ulink>).
|
|
</para>
|
|
|
|
<para>
|
|
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.
|
|
</para>
|
|
|
|
<para>
|
|
This is useful if you want to compile or develop programs based on Qt
|
|
(e.g., KDE2 and its apps).
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>NVIDIA drivers (Mesa libGL replacement)</title>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>NVIDIA_kernel-1.0-2314.tar.gz</para></listitem>
|
|
<listitem><para>NVIDIA_GLX-1.0-2313.tar.gz</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
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.
|
|
You should try to use the lastest XFree86 and NVIDIA drivers.
|
|
</para>
|
|
|
|
<para>
|
|
Download the drivers at: <ulink url="http://www.nvidia.com/">http://www.nvidia.com/</ulink>
|
|
</para>
|
|
|
|
<tip>
|
|
<para>
|
|
See the updated FAQ at Nvidia.com while you are downloading.
|
|
It has important installation information not in this HOWTO.
|
|
</para>
|
|
</tip>
|
|
|
|
<para>
|
|
The NVIDIA drivers provide a kernel driver: /lib/modules/kernel.version.number/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.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Java 2 SDK, Java 3D extension, and Java PlugIn for Netscape (optional)</title>
|
|
|
|
<para>
|
|
The following file is available at <ulink url="http://www.blackdown.org/">http://www.blackdown.org/</ulink>:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>java3d-1.2.1_01-fcs-linux-i386-sdk.tar.bz2</para></listitem>
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Note that to install these Java files, your system needs to have glibc 2.1.3 or later.
|
|
To check your version of glibc:
|
|
<screen>
|
|
|
|
ls -l /lib/libc*
|
|
</screen>
|
|
On rpm-based systems (like RedHat and Mandrake), you can try:
|
|
<screen>
|
|
|
|
rpm -q glibc
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
To use any Java on your system, you must also install the Java Software Development Kit (JSDK) 1.3.1 or
|
|
later from <ulink url="http://java.sun.com/">java.sun.com</ulink>. The Blackdown version of the JSDK
|
|
will also work.
|
|
</para>
|
|
|
|
<para>
|
|
The
|
|
<ulink url="http://java.sun.com/products/java-media/3D/index.html">Java 3D</ulink>
|
|
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 via the Java PlugIn, or inside
|
|
<ulink url="http://www.kde.org/">KDE</ulink>'s
|
|
<ulink url="http://www.konqueror.org/">Konqueror</ulink> by directly using the Java runtime (JRE).
|
|
</para>
|
|
</sect1>
|
|
</chapter>
|
|
|
|
<chapter id="install">
|
|
<title>Install Software</title>
|
|
|
|
<sect1 id="instnote">
|
|
<title>README and INSTALL files</title>
|
|
<para>
|
|
During the installation of all these packages, always read the README and INSTALL
|
|
files etc. that come with them for the lastest, most authoritative information.
|
|
Take some time to browse the website for each package for additional documentation.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="instx">
|
|
<title>Install XFree86</title>
|
|
|
|
<para>
|
|
Installation of the software packages requires root login, which can be obtained
|
|
easily via the superuser/setuser command: <command>su -</command>
|
|
(see, <command>man su</command>).
|
|
</para>
|
|
|
|
<para>
|
|
The following explains the installation of XFree86 from source in only the
|
|
most basic terms. Make sure to read all the XFree86 documentation to
|
|
learn about special options.
|
|
</para>
|
|
|
|
<para>
|
|
If you have a version of XFree86 installed already, you may want to move it
|
|
or delete it. However, installing over an existing X is generally OK and
|
|
preserves any programs or libraries you might have installed into the X
|
|
directories (not that you should really do that):
|
|
<screen>
|
|
|
|
cd /usr
|
|
mv X11R6 X11R6-old
|
|
cd /etc
|
|
mv X11 X11-old
|
|
|
|
# you may have an X directory in /var also
|
|
cd /var
|
|
mv X11R6 X11R6-old
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
If these locations are not correct for your distribution of Linux, you will
|
|
have to look around your filesystem a bit - try looking in
|
|
<filename class="directory">/var</filename>
|
|
</para>
|
|
|
|
<para>
|
|
<screen>
|
|
|
|
cd /usr/src
|
|
mkdir release
|
|
cd release
|
|
tar -xvzf X420src-1.tgz
|
|
tar -xvzf X420src-2.tgz
|
|
tar -xvzf X420src-3.tgz
|
|
tar -xvzf doctools-1.3.tar.gz
|
|
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
If you are using an old version of XFree86 for some reason, you may
|
|
want to use the man page packages. XFree 4.2.0 and later has all these
|
|
man pages already. Skip using the man page packages if you don't
|
|
need them. Check in /usr/src/release/xc/doc/man to see what all
|
|
is included with your XFree86.
|
|
<screen>
|
|
|
|
# unpack the man pages if they are missing.
|
|
cd /usr/src
|
|
tar -xvzf mangl.tar.Z
|
|
tar -xvzf manglu.tar.Z
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
A file has to be edited to allow these man pages to compile/install with
|
|
the rest of the distribution:
|
|
<screen>
|
|
|
|
cd /usr/src/release/xc/doc/man/GL
|
|
# Edit the file: Imakefile
|
|
# SUBDIRS = glx gl glu
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
When you unpacked the <filename>man*.tar.Z</filename> files above,
|
|
two new directories where added:
|
|
<filename class="directory">gl</filename>
|
|
<filename class="directory">glu</filename>
|
|
</para>
|
|
|
|
<para>
|
|
<screen>
|
|
|
|
cd /usr/src/release
|
|
cd doctools
|
|
|
|
# Having this variable set confuses the sgml docs build.
|
|
# With it unset, the build uses the proper defaults.
|
|
unset $SGML_CATALOG_FILES
|
|
|
|
make
|
|
make install
|
|
|
|
# Note: doctools installs the perl program sgmlfmt to
|
|
# /usr/local/bin. It looks for the perl executable
|
|
# at /usr/local/bin/perl. If perl is installed
|
|
# on your system at /usr/bin/perl, then it will not
|
|
# find perl and the sgml docs build will fail!
|
|
# Make a symlink if needed (or edit the script):
|
|
cd /usr/local/bin
|
|
ln -s /usr/bin/perl perl
|
|
|
|
cd /usr/src/release
|
|
cd xc/config/cf
|
|
vi host.def
|
|
# add the following three lines to host.def:
|
|
# #define HasSgmlFmt YES
|
|
# #define BuildAllDocs YES
|
|
# #define HasZlib YES
|
|
# See the README file in doctools and xc/config/cf.
|
|
# HasZlib YES instructs XFree86 not to build and install
|
|
# it's own old zlib. If you do not have zlib installed
|
|
# (check /usr/lib/libz*), then omit the HasZlib line or
|
|
# go download it and install it first:
|
|
# http://www.info-zip.org/pub/infozip/zlib/
|
|
# A common zlib conflict occurs when a system already
|
|
# has zlib installed and XFree86 installs it's also.
|
|
# In this case, deleting /usr/X11R6/lib/libz.a fixes
|
|
# the problem.
|
|
|
|
cd /usr/src/release/xc
|
|
make World
|
|
# before installing, make sure you have moved
|
|
# or deleted prior installation of X
|
|
# unless you are sure you want to just overwrite
|
|
make install
|
|
make install.man
|
|
|
|
# make symlinks
|
|
cd /usr/include
|
|
ln -s ../X11R6/include/DPS DPS
|
|
ln -s ../X11R6/include/GL GL
|
|
ln -s ../X11R6/include/X11 X11
|
|
ln -s ../X11R6/include/bitmaps bitmaps
|
|
cd ..
|
|
ln -s X11R6 X11
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
Add <filename class="directory">/usr/X11R6/lib</filename>
|
|
to your
|
|
<filename>/etc/ld.so.conf</filename> file,
|
|
then run the command <command>ldconfig</command> to update
|
|
<filename>/etc/ld.so.cache</filename> so the libraries will be visible.
|
|
</para>
|
|
|
|
<para>
|
|
The GL/GLX/GLU HTML documentation is located at
|
|
<filename class="directory">/usr/src/release/xc/doc/hardcopy/GL</filename>.
|
|
This directory can be copied as follows:
|
|
<screen>
|
|
|
|
cd /usr/src/release/xc/doc/hardcopy
|
|
cp -r GL /usr/X11R6/lib/X11/doc/html
|
|
</screen>
|
|
The <filename>index.html</filename> file in the docs might point to
|
|
<filename>manindex5x.html</filename>, but the filename may
|
|
actually be <filename>manindex5.html</filename>. Just make a symlink to fix it if needed:
|
|
<screen>
|
|
|
|
cd /usr/X11R6/lib/X11/doc/html
|
|
ln -s manindex5.html manindex5x.html
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
When <application>X</application> is up and running (later), try using the
|
|
<command>xman</command> program to see that the gl,glx,glu
|
|
and glut <command>man</command> pages are in section 3. If you have <application>KDE2</application>,
|
|
<application>khelpcenter</application> allows <command>man</command>-page browsing.
|
|
</para>
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="instmesa">
|
|
<title>Install Mesa</title>
|
|
|
|
<para>
|
|
Note: This gives you the <filename>libGLU*</filename> and <filename>libglut*</filename>
|
|
files that may be missing in <productname>XFree86</productname>.
|
|
<productname>XFree86</productname> used to only come with the OpenGL core library,
|
|
<filename>libGL</filename> (based on Mesa). This
|
|
also installs Mesa's <filename>libGL</filename>, but we will delete that since it is to be replaced
|
|
by the Nvidia libGL.
|
|
</para>
|
|
|
|
<para>
|
|
You should look in <filename>/usr/X11R6/lib</filename> to see if you already have
|
|
libglut.* and libGLU.*. If you do, you can skip installing Mesa. Recent releases
|
|
of XFree86 have been including more of Mesa as standard.
|
|
</para>
|
|
|
|
<para>
|
|
It's best to uninstall any old Mesa version you may have installed before
|
|
installing a new Mesa. Uninstalling software can be a dangerous operation,
|
|
so know what you are doing! If you have software depending on your old Mesa,
|
|
you might need to keep it and just install the new Mesa along with it.
|
|
</para>
|
|
|
|
<para>
|
|
To completely uninstall any Mesa libs that may have come with Slackware:
|
|
<screen>
|
|
|
|
removepkg mesa
|
|
</screen>
|
|
For <command>rpm</command>-based systems (like RedHat and Mandrake), try:
|
|
<screen>
|
|
# see what will be removed first
|
|
rpm -e --test Mesa | less
|
|
# if ok, proceed
|
|
rpm -e Mesa
|
|
</screen>
|
|
For Debian, you can try:
|
|
<screen>
|
|
apt-get remove Mesa
|
|
</screen>
|
|
Procedures vary for other distributions. If there is no clear way to
|
|
uninstall an existing Mesa, then at least confirm where it is installed:
|
|
normally either under <filename class="directory">/usr</filename>
|
|
or <filename class="directory">/usr/local</filename>. The example below assumes that
|
|
<application>Mesa</application> is installed (or going to get installed) under
|
|
<filename class="directory">/usr</filename>. Installing
|
|
over an old version is probably harmless. Look for <filename>/usr/lib/libMesa*</filename>
|
|
or <filename>/usr/local/lib/libMesa*</filename> and delete them unless you have programs that
|
|
need them.
|
|
</para>
|
|
|
|
<para>
|
|
<screen>
|
|
|
|
# IF you are going to use the project GLUT distribution of GLUT, then
|
|
# unpack the Glut-3.7 packages ...
|
|
# Mesa's compile looks for it
|
|
cd /usr/src
|
|
tar -xvzf glut-3.7.tar.gz
|
|
tar -xvzf glut_data-3.7.tar.gz
|
|
# IF you are using this GLUT, use the --with-glut=/usr/src/glut-3.7
|
|
# parameter with Mesa's ./configure below in addition to the --prefix
|
|
|
|
cd /usr/src
|
|
tar -xvzf MesaLib-4.0.1.tar.gz
|
|
tar -xvzf MesaDemos-4.0.1.tar.gz
|
|
cd Mesa-4.0.1
|
|
./configure --prefix=/usr
|
|
make
|
|
make install
|
|
ldconfig
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
Important:
|
|
At this point, <application>Mesa</application> installed its own version of the
|
|
<filename class="headerfile">glx.h</filename> include
|
|
files over the ones that <command>XFree86</command> installed. This will cause some
|
|
programs to fail to compile and is corrected by copying the <command>XFree86</command>
|
|
GL include files from the X source back to your system:
|
|
<screen>
|
|
|
|
cp /usr/src/release/xc/include/GL/*.h /usr/X11R6/include/GL
|
|
</screen>
|
|
</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="instnvidia">
|
|
<title>Install Nvidia OpenGL drivers</title>
|
|
|
|
|
|
<sect2 id="instnvkernel">
|
|
<title>Install NVIDIA kernel driver package</title>
|
|
<para>
|
|
First, unpack the kernel driver source.
|
|
<screen>
|
|
|
|
cd /usr/src
|
|
tar -xvzf NVIDIA_kernel-1.0-2314.tar.gz
|
|
tar -xvzf NVIDIA_GLX-1.0-2313.tar.gz
|
|
cd NVIDIA_kernel-1.0-2314
|
|
</screen>
|
|
Now, before building and installing this kernel driver, it has some
|
|
AGP options that can affect performance. You shouldn't really attempt to use these
|
|
options during your first attempt at getting your card working and not unless
|
|
you are using a very recent 2.4 kernel and the lastest nvidia drivers.
|
|
</para>
|
|
|
|
<para>
|
|
The Linux kernel source can be compiled with an AGP character
|
|
device that the Nvidia driver can use to get better performance. If your
|
|
kernel does not have the AGP driver for your motherboard chipset compiled in,
|
|
then the Nvidia kernel driver uses its own built-in AGP support if your
|
|
video card is an AGP card. If you want to experiment with the Linux
|
|
kernel AGP support, you should be able to rebuild and install your kernel
|
|
with the appropriate support:
|
|
<screen>
|
|
cd /usr/src/linux
|
|
make menuconfig
|
|
# Go to Character devices and put a * by /dev/agpgart support
|
|
# and also put a * by your motherboard chipset type.
|
|
# Go to the Processor type and features and put a * by
|
|
# MTTR support.
|
|
# Save the config.
|
|
make
|
|
make modules
|
|
make install
|
|
make modules_install
|
|
reboot
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
Futher tweaking can be done to the file <filename>os-registry.c</filename>
|
|
in the NVIDIA kernel source. Looking though this file, you will see many
|
|
flag variables (they can be set to 0 or 1) to control options that affect
|
|
performance and stability! You should try your configuration with this
|
|
file unmodified first to see that your system works. If it does, you
|
|
can try these options. Among the options you can try here are:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>Enabling AGP 4x on VIA chipsets (by default constrained to only 2x)</para></listitem>
|
|
<listitem><para>Enabling Side Band Addressing (your card needs to support this)</para></listitem>
|
|
<listitem><para>Enabling Fast Writes (IIRC, this must be enabled in your motherboard BIOS too)</para></listitem>
|
|
</itemizedlist>
|
|
|
|
|
|
<tip>
|
|
<para>
|
|
If you experience problems starting X, see the files
|
|
<filename>TNT_USERS_README</filename> and
|
|
<filename>M64_USERS_README</filename>. These files
|
|
explain how to tweak the kernel driver. They were
|
|
written to fix problems with <productname>TNT</productname>
|
|
and <productname>TNT2 M64</productname> cards
|
|
but these tweaks are reported to help the
|
|
<productname>GeForce2 MX</productname>
|
|
also. Try bypassing the BIOS as explained in
|
|
<filename>M64_USERS_README</filename>.
|
|
</para>
|
|
</tip>
|
|
|
|
<para>
|
|
After you have tweaked (or not tweaked) your Linux kernel and <filename>os-registry.c</filename>
|
|
file, you can build and install the kernel module.
|
|
<screen>
|
|
# The make command will build and install the driver:
|
|
make
|
|
</screen>
|
|
After the driver is loaded, you can see the driver configuration with
|
|
<command>cat /proc/nv/card0</command>
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="instnvglx">
|
|
<title>Install NVIDIA GLX package</title>
|
|
|
|
<para>
|
|
Installing the Nvidia OpenGL library package is nothing too special.
|
|
First you need to clean up some old files.
|
|
<screen>
|
|
|
|
# delete the libGL.* files that come with XFree86 / Mesa ...
|
|
# the nvidia libGL.* should replace them
|
|
# The more recent Nvidia Makefile installer does this for you.
|
|
|
|
cd /usr/X11R6/lib
|
|
rm libGL.*
|
|
cd modules/extensions
|
|
rm libGL*
|
|
rm libglx*
|
|
cd /usr/lib
|
|
rm libGL.*
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
With the conflicting old files gone, you can begin the installation.
|
|
<screen>
|
|
|
|
cd ..
|
|
cd NVIDIA_GLX-1.0-2313
|
|
make
|
|
ldconfig
|
|
|
|
# make might not install the C header files that come with
|
|
# the libraries in the NVIDIA_GLX package so, do this:
|
|
cd usr/include/GL
|
|
cp *.h /usr/include/GL
|
|
# usr/include/GL is a subdirectory in the NVIDIA_GLX package.
|
|
# /usr/include/GL should be a symlink to /usr/X11R6/include/GL
|
|
# so you could copy to there instead if you want.
|
|
|
|
# Make a basic XF86Config file using the "nv" driver:
|
|
cd /etc/X11
|
|
xf86config
|
|
# Follow the prompts and fill in the information xf86config asks for.
|
|
# Select the Nvidia GeForce or appropriate name.
|
|
# You can test X with this XF86Config file, or continue for OpenGL:
|
|
|
|
# You must edit XF86Config and set the following:
|
|
vi XF86Config
|
|
# Load "glx"
|
|
# Replace 'driver "nv"' with 'driver "nvidia"'
|
|
# Put "1600x1200" first (or your preferred screen resolution)
|
|
# Copy ttf fonts from Windows into a font directory and add a font path.
|
|
# Use ttmkfdir (check freshmeat.net) to a fonts.dir file.
|
|
# A good place to keep your own fonts is /usr/local/share/fonts ...
|
|
|
|
# Nvidia drivers do NOT use the dri module - don't load it.
|
|
|
|
# You may like to edit /etc/X11/xinit/xinitrc to have run "startkde"
|
|
# or "gnome-session" instead of twm.
|
|
|
|
# Note: /usr/include/GL should be a symlink to /usr/X11R6/include/GL
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
Specifying "nvidia" for the driver in the <filename>XF86Config</filename>
|
|
makes that take effect each time you <command>startx</command>.
|
|
But the <filename>NVdriver</filename> kernel driver will have to be
|
|
loaded before you startx. It can be loaded with:
|
|
<screen>
|
|
# to load it
|
|
insmod NVdriver
|
|
# If you need to unload it:
|
|
rmmod NVdriver
|
|
</screen>
|
|
You should not have to use <command>insmod</command> manually. The NVdriver installation
|
|
should have inserted a line into <filename>/etc/modules.conf</filename>
|
|
(or <filename>conf.modules</filename>) that looks something like:
|
|
<screen>
|
|
|
|
alias char-major-195 NVdriver
|
|
</screen>
|
|
If this line is present, <filename>NVdriver</filename> is loaded automatically
|
|
when <command>X</command> is started.
|
|
You can check if its loaded using the command, <command>lsmod</command>.
|
|
</para>
|
|
|
|
<para>
|
|
In my experience, your video system will become unstable if you compile,
|
|
load, and unload the NVdriver module. You should reboot your system
|
|
after rebuilding this module to help make sure your system doesn't
|
|
lock inside X. Its possible that your screen will go black and the keyboard
|
|
will become unresponsive after switching NVdriver. It is advisable to
|
|
always have another computer with telnet or ssh that you can use to
|
|
get into your Linux box to shut it down properly if this happens.
|
|
</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="instqt">
|
|
<title>Install Qt</title>
|
|
|
|
<para>
|
|
<screen>
|
|
|
|
# for Qt, there is no "make install", just place the source
|
|
# where you want it to live:
|
|
cd /usr/local
|
|
tar -xvzf qt-x11-2.2.4.tar.gz
|
|
ln -s qt-2.2.4 qt
|
|
cd qt
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
Read the <filename>INSTALL</filename> file about environment variables to setup before you try to
|
|
build <productname>Qt</productname>. You can add the following to <filename>/etc/profile</filename>:
|
|
<screen>
|
|
|
|
QTDIR=/usr/local/qt
|
|
PATH=$PATH:$QTDIR/bin
|
|
MANPATH=$MANPATH:$QTDIR/man
|
|
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
|
|
export QTDIR PATH MANPATH LD_LIBRARY_PATH
|
|
</screen>
|
|
<envar>LD_LIBRARY_PATH</envar> is optional if you include an entry in
|
|
<filename>/etc/ld.so.conf</filename> for
|
|
the library path:
|
|
<filename class="directory">/usr/local/qt/lib</filename>,
|
|
then run <command>ldconfig</command> to update
|
|
<filename>/etc/ld.so.cache</filename>.
|
|
</para>
|
|
|
|
<para>
|
|
<screen>
|
|
|
|
# note: configure has some options you can try, to see them
|
|
# see ./configure --help
|
|
./configure
|
|
|
|
# NOTE: when you run make as suggested on the next line, you may
|
|
# encounter a make error that halts the build IF you run make
|
|
# from outside X. The program $QTDIR/bin/uic (the User Interface Compiler)
|
|
# may Segmentation Fault when run from a Linux console. You can run
|
|
# "startx" and use the twm (tiny window manager) and xterm (or whatever you
|
|
# might have setup for X) to run the rest of the Qt build. If for some
|
|
# reason twm is not even available, then you can run "XFree86 &", use
|
|
# "CTRL-ALT-F1" to get to a console, start an xterm as
|
|
# "xterm -display localhost:0.0 &", then switch back to X with "ALT-F7".
|
|
|
|
make
|
|
|
|
# Only for old versions of Qt before 2.1.0 or so ...
|
|
# compile the opengl extension
|
|
# Note that in qt 2.2.0 on, the OpenGL support has been moved out of extensions
|
|
# and is now a standard part of the library that is installed if configure
|
|
# finds OpenGL installed on your system. If you were to not want OpenGL
|
|
# support in Qt, you'd have to pass the -no-opengl option to configure.
|
|
cd extensions/opengl/src
|
|
# Check the Makefile and ensure there are not Mesa references.
|
|
make
|
|
|
|
|
|
ldconfig
|
|
cd ../examples
|
|
# Try compiling and running the examples.
|
|
</screen>
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="instglut">
|
|
<title>Install GLUT 3.7 Distribution (optional)</title>
|
|
|
|
<para>
|
|
If you installed the MesaDemos/MesaLib package, then you
|
|
have already installed GLUT 3.7 since it is included with MesaDemos.
|
|
However, you may be interested in installing the GLUT manpages and you
|
|
can skip right to the "Install GLUT manual pages", below ...
|
|
</para>
|
|
|
|
<para>
|
|
Installing GLUT is a bit tricky. I'm not too familiar with <command>imake</command>, the
|
|
program that it uses to manage the Makefiles, and didn't quite see how to
|
|
get GLUT to install to where I wanted it
|
|
(<filename class="directory">/usr/lib</filename>, but MesaDemos will do this
|
|
without any trouble though). It can be done manually anyhow:
|
|
</para>
|
|
|
|
<para>
|
|
<screen>
|
|
|
|
cd /usr/src
|
|
tar -xvzf glut-3.7.tar.gz
|
|
cd glut-3.7
|
|
|
|
Read the file: README.linux
|
|
cd linux
|
|
READ the file: README
|
|
cp Glut.cf ..
|
|
cd ..
|
|
Edit Glut.cf: remove any Mesa references.
|
|
Replace any -lMesaGL -lMesaGLU with -lGL -lGLU if needed.
|
|
In particular, replace:
|
|
OPENGL = $(TOP)/../lib/libMesaGL.so
|
|
GLU = $(TOP)/../lib/libMesaGLU.so
|
|
with:
|
|
OPENGL = -lGL
|
|
GLU = -lGLU
|
|
|
|
./mkmkfiles.imake
|
|
cd lib/glut
|
|
cp /usr/src/glut-3.7/linux/Makefile .
|
|
Edit the Makefile: remove any Mesa references.
|
|
Replace any -lMesaGL -lMesaGLU with -lGL -lGLU if needed.
|
|
In particular, replace:
|
|
OPENGL = $(TOP)/../lib/libMesaGL.so
|
|
GLU = $(TOP)/../lib/libMesaGLU.so
|
|
with:
|
|
OPENGL = -lGL
|
|
GLU = -lGLU
|
|
|
|
make
|
|
ln -s libglut.so.3.7 libglut.so
|
|
ln -s libglut.so.3.7 libglut.so.3
|
|
cp -d libglut.* /usr/lib
|
|
cd ..
|
|
cd gle
|
|
# make a shared lib for libgle
|
|
make
|
|
gcc -shared -o libgle.so.3.7 *.o
|
|
ln -s libgle.so.3.7 libgle.so
|
|
ln -s libgle.so.3.7 libgle.so.3
|
|
cp -d libgle.* /usr/lib
|
|
cd ..
|
|
cd mui
|
|
# make a shared lib for libmui
|
|
make
|
|
gcc -shared -o libmui.so.3.7 *.o
|
|
ln -s libmui.so.3.7 libmui.so
|
|
ln -s libmui.so.3.7 libmui.so.3
|
|
cp -d libmui.* /usr/lib
|
|
|
|
# Install the GLUT manual pages (not included with MesaDemos)
|
|
cd /usr/src/glut-3.7
|
|
make SUBDIRS=man Makefile
|
|
cd man/glut
|
|
make install.man
|
|
ldconfig
|
|
|
|
cd ../../progs/demos/ideas
|
|
# edit the Makefile, change OPENGL = -lGL and GLU = -lGLU
|
|
make
|
|
./ideas
|
|
# test compiling some demos
|
|
# take a look at which libraries have to be linked (-lX11 ...) in
|
|
# the Makefiles. Qt's tmake program available at www.troll.no
|
|
# is a quick way to make a Makefile but you have to edit it
|
|
# and add the -l needed.
|
|
</screen>
|
|
</para>
|
|
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="instjava">
|
|
<title>Install Java 3D (optional)</title>
|
|
|
|
<para>
|
|
If you already have a Java Software Development Kit (JSDK) or Java Runtime Environment
|
|
(JRE) installed, then you can skip parts of this section. If you are using a JRE only,
|
|
you'll have to get the JRE version of the Java 3D package and adapt these instructions.
|
|
</para>
|
|
|
|
<para>
|
|
It is recommended that you have the lastest version of Netscape, which at this time of
|
|
writing is 6.2.1, if you plan to install the Java PlugIn for <command>netscape</command>.
|
|
It works, but you may (or may not) experience Segmentation Faults when leaving a page
|
|
that contained a Java 3D applet. KDE <ulink url="http://www.konqueror.org/">Konqueror</ulink>
|
|
can also be used to view Java 3D applets.
|
|
</para>
|
|
|
|
<para>
|
|
If you have not installed the Java SDK yet, you should have downloaded it already at least.
|
|
Installing the JSDK is simple. You should follow the instructions that comes with it
|
|
or follow my example below, based on using the Sun download.
|
|
<screen>
|
|
# The Sun download is a type of binary shell archive (man shar).
|
|
# Make it executable and run it to unpack its contents
|
|
chmod 744 j2sdk-1_3_1_02-linux-i386.bin
|
|
./j2sdk-1_3_1_02-linux-i386.bin
|
|
mv jdk1.3.1_02 /usr/local
|
|
cd /usr/local
|
|
ln -s jdk1.3.1_02 jdk
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
Next is to unpack Java 3D and finish setting up the environment
|
|
for the Java SDK.
|
|
<screen>
|
|
cd jdk
|
|
tar -xvyf ~/java3d-1.2.1_01-fcs-linux-i386-sdk.tar.bz2
|
|
cd jre/lib/ext
|
|
cp j3d* ..
|
|
cp vecmath.jar ..
|
|
cd /usr/local
|
|
chown -R root:root jdk1.3.1_02
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
Edit <filename>/etc/profile</filename> or, as on many systems,
|
|
you can add a new file like <filename>java.sh</filename> to
|
|
the directory <filename>/etc/profile.d/</filename>.
|
|
To either file, add:
|
|
<screen>
|
|
JAVA_HOME=/usr/local/jdk
|
|
PATH=$PATH:$JAVA_HOME/bin
|
|
MANPATH=$MANPATH:$JAVA_HOME/man
|
|
export JAVA_HOME PATH MANPATH
|
|
</screen>
|
|
If you used a separate file <filename>java.sh</filename>, remember to make it
|
|
executable. Start a new login terminal for these changes to take affect.
|
|
</para>
|
|
|
|
<para>
|
|
This completes the installation of the Java 2 SDK, which includes the JRE and the
|
|
Java 3D extension.
|
|
</para>
|
|
|
|
<para>
|
|
You can install the Java PlugIn for <command>netscape</command>:
|
|
<screen>
|
|
# go to where netscape is installed
|
|
cd $MOZILLA_HOME
|
|
cd plugins
|
|
ln -s /usr/local/jdk/jre/plugin/i386/ns600/libjavaplugin_oji.so libjavaplugin_oji.so
|
|
# This installs it globally for all users
|
|
# Each user can run ControlPanel to customize the Java Plugin preferences.
|
|
ControlPanel
|
|
# Then try it out:
|
|
netscape &
|
|
</screen>
|
|
When netscape loads, go to
|
|
<menuchoice><guimenu>Edit</guimenu><guimenu>Preferences</guimenu>
|
|
<guimenuitem>Advanced</guimenuitem></menuchoice> and Enable Java and Enable Java Plugin, then
|
|
exit Netscape.
|
|
</para>
|
|
|
|
<para>
|
|
Test Java 3D demos:
|
|
<screen>
|
|
|
|
cd $JAVA_HOME/demo/java3d/GearTest
|
|
java GearBox &
|
|
# runs as normal java application
|
|
netscape GearBox_plugin.html &
|
|
# runs in netscape as an applet
|
|
</screen>
|
|
</para>
|
|
|
|
<para>
|
|
If you experience trouble with Java, you can try deleting <filename>~/.java</filename>
|
|
and related files in your home directory, then try again. These files left over from
|
|
a prior Java installation can cause problems.
|
|
</para>
|
|
|
|
<para>
|
|
If all works well, you should have a complete Java Developement and Runtime Environment for
|
|
both normal apps and high-performance 3D apps.
|
|
See <ulink url="http://java.sun.com/">http://java.sun.com/</ulink> for further information
|
|
about Java and the Java 3D extension.
|
|
</para>
|
|
</sect1>
|
|
</chapter>
|
|
|
|
<chapter id="fincomm">
|
|
<title>Final Comments</title>
|
|
|
|
<para>
|
|
I believe that is about it! At this point you should have a fully functioning
|
|
OpenGL system for running and developing OpenGL apps.
|
|
</para>
|
|
|
|
<para>
|
|
You can try building the demos in
|
|
<filename class="directory">/usr/src/Mesa-4.0.1/{demos,xdemos}</filename> by using the
|
|
<filename>Makefile.X11</filename> as <filename>Makefile</filename>
|
|
and running "<command>make targets</command>" or "<command>make teapot</command>"
|
|
etc. They should build and link with the hardware accelerated libGL and run very fast!
|
|
Qt has a OpenGL example in <filename class="directory">$QTDIR/examples/gear</filename>,
|
|
that you should be able to run as simply as "<command>make;./gear</command>".
|
|
</para>
|
|
|
|
<para>
|
|
Just about any standard GL/GLX/GLU/glut app should run fine, such as WolfGL, GLQuake,
|
|
<command>glqwcl.glx</command> (GLQuakeWorld), <command>quake2</command>,
|
|
and of course ... <command>quake3</command>!!!
|
|
</para>
|
|
|
|
<para>
|
|
HAVE FUN!
|
|
</para>
|
|
|
|
</chapter>
|
|
|
|
<appendix id="gfdl">
|
|
<title>GNU Free Documentation License</title>
|
|
<sect1 id="gfdlcr">
|
|
<title>GNU FDL Version, and Copyright Notice</title>
|
|
<para>Version 1.1, March 2000</para>
|
|
|
|
<blockquote>
|
|
<para>Copyright (C) 2000 Free Software Foundation, Inc.
|
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
Everyone is permitted to copy and distribute verbatim copies
|
|
of this license document, but changing it is not allowed.</para>
|
|
</blockquote>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlpreamble">
|
|
<title>PREAMBLE</title>
|
|
|
|
<para>The purpose of this License is to make a manual, textbook,
|
|
or other written document "free" in the sense of freedom: to
|
|
assure everyone the effective freedom to copy and redistribute it,
|
|
with or without modifying it, either commercially or
|
|
noncommercially. Secondarily, this License preserves for the
|
|
author and publisher a way to get credit for their work, while not
|
|
being considered responsible for modifications made by
|
|
others.</para>
|
|
|
|
<para>This License is a kind of "copyleft", which means that
|
|
derivative works of the document must themselves be free in the
|
|
same sense. It complements the GNU General Public License, which
|
|
is a copyleft license designed for free software.</para>
|
|
|
|
<para>We have designed this License in order to use it for manuals
|
|
for free software, because free software needs free documentation:
|
|
a free program should come with manuals providing the same
|
|
freedoms that the software does. But this License is not limited
|
|
to software manuals; it can be used for any textual work,
|
|
regardless of subject matter or whether it is published as a
|
|
printed book. We recommend this License principally for works
|
|
whose purpose is instruction or reference.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlaad">
|
|
<title>APPLICABILITY AND DEFINITIONS</title>
|
|
|
|
<para>This License applies to any manual or other work that
|
|
contains a notice placed by the copyright holder saying it can be
|
|
distributed under the terms of this License. The "Document",
|
|
below, refers to any such manual or work. Any member of the
|
|
public is a licensee, and is addressed as "you".</para>
|
|
|
|
<para>A "Modified Version" of the Document means any work
|
|
containing the Document or a portion of it, either copied
|
|
verbatim, or with modifications and/or translated into another
|
|
language.</para>
|
|
|
|
<para>A "Secondary Section" is a named appendix or a front-matter
|
|
section of the Document that deals exclusively with the
|
|
relationship of the publishers or authors of the Document to the
|
|
Document's overall subject (or to related matters) and contains
|
|
nothing that could fall directly within that overall subject.
|
|
(For example, if the Document is in part a textbook of
|
|
mathematics, a Secondary Section may not explain any mathematics.)
|
|
The relationship could be a matter of historical connection with
|
|
the subject or with related matters, or of legal, commercial,
|
|
philosophical, ethical or political position regarding
|
|
them.</para>
|
|
|
|
<para>The "Invariant Sections" are certain Secondary Sections
|
|
whose titles are designated, as being those of Invariant Sections,
|
|
in the notice that says that the Document is released under this
|
|
License.</para>
|
|
|
|
<para>The "Cover Texts" are certain short passages of text that
|
|
are listed, as Front-Cover Texts or Back-Cover Texts, in the
|
|
notice that says that the Document is released under this
|
|
License.</para>
|
|
|
|
<para>A "Transparent" copy of the Document means a
|
|
machine-readable copy, represented in a format whose specification
|
|
is available to the general public, whose contents can be viewed
|
|
and edited directly and straightforwardly with generic text
|
|
editors or (for images composed of pixels) generic paint programs
|
|
or (for drawings) some widely available drawing editor, and that
|
|
is suitable for input to text formatters or for automatic
|
|
translation to a variety of formats suitable for input to text
|
|
formatters. A copy made in an otherwise Transparent file format
|
|
whose markup has been designed to thwart or discourage subsequent
|
|
modification by readers is not Transparent. A copy that is not
|
|
"Transparent" is called "Opaque".</para>
|
|
|
|
<para>Examples of suitable formats for Transparent copies include
|
|
plain ASCII without markup, Texinfo input format, LaTeX input
|
|
format, SGML or XML using a publicly available DTD, and
|
|
standard-conforming simple HTML designed for human modification.
|
|
Opaque formats include PostScript, PDF, proprietary formats that
|
|
can be read and edited only by proprietary word processors, SGML
|
|
or XML for which the DTD and/or processing tools are not generally
|
|
available, and the machine-generated HTML produced by some word
|
|
processors for output purposes only.</para>
|
|
|
|
<para>The "Title Page" means, for a printed book, the title page
|
|
itself, plus such following pages as are needed to hold, legibly,
|
|
the material this License requires to appear in the title page.
|
|
For works in formats which do not have any title page as such,
|
|
"Title Page" means the text near the most prominent appearance of
|
|
the work's title, preceding the beginning of the body of the
|
|
text.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlcopying">
|
|
<title>VERBATIM COPYING</title>
|
|
|
|
<para>You may copy and distribute the Document in any medium,
|
|
either commercially or noncommercially, provided that this
|
|
License, the copyright notices, and the license notice saying this
|
|
License applies to the Document are reproduced in all copies, and
|
|
that you add no other conditions whatsoever to those of this
|
|
License. You may not use technical measures to obstruct or
|
|
control the reading or further copying of the copies you make or
|
|
distribute. However, you may accept compensation in exchange for
|
|
copies. If you distribute a large enough number of copies you
|
|
must also follow the conditions in section 3.</para>
|
|
|
|
<para>You may also lend copies, under the same conditions stated
|
|
above, and you may publicly display copies.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlcopyingq">
|
|
<title>COPYING IN QUANTITY</title>
|
|
|
|
<para>If you publish printed copies of the Document numbering more
|
|
than 100, and the Document's license notice requires Cover Texts,
|
|
you must enclose the copies in covers that carry, clearly and
|
|
legibly, all these Cover Texts: Front-Cover Texts on the front
|
|
cover, and Back-Cover Texts on the back cover. Both covers must
|
|
also clearly and legibly identify you as the publisher of these
|
|
copies. The front cover must present the full title with all
|
|
words of the title equally prominent and visible. You may add
|
|
other material on the covers in addition. Copying with changes
|
|
limited to the covers, as long as they preserve the title of the
|
|
Document and satisfy these conditions, can be treated as verbatim
|
|
copying in other respects.</para>
|
|
|
|
<para>If the required texts for either cover are too voluminous to
|
|
fit legibly, you should put the first ones listed (as many as fit
|
|
reasonably) on the actual cover, and continue the rest onto
|
|
adjacent pages.</para>
|
|
|
|
<para>If you publish or distribute Opaque copies of the Document
|
|
numbering more than 100, you must either include a
|
|
machine-readable Transparent copy along with each Opaque copy, or
|
|
state in or with each Opaque copy a publicly-accessible
|
|
computer-network location containing a complete Transparent copy
|
|
of the Document, free of added material, which the general
|
|
network-using public has access to download anonymously at no
|
|
charge using public-standard network protocols. If you use the
|
|
latter option, you must take reasonably prudent steps, when you
|
|
begin distribution of Opaque copies in quantity, to ensure that
|
|
this Transparent copy will remain thus accessible at the stated
|
|
location until at least one year after the last time you
|
|
distribute an Opaque copy (directly or through your agents or
|
|
retailers) of that edition to the public.</para>
|
|
|
|
<para>It is requested, but not required, that you contact the
|
|
authors of the Document well before redistributing any large
|
|
number of copies, to give them a chance to provide you with an
|
|
updated version of the Document.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlmods">
|
|
<title>MODIFICATIONS</title>
|
|
|
|
<para>You may copy and distribute a Modified Version of the
|
|
Document under the conditions of sections 2 and 3 above, provided
|
|
that you release the Modified Version under precisely this
|
|
License, with the Modified Version filling the role of the
|
|
Document, thus licensing distribution and modification of the
|
|
Modified Version to whoever possesses a copy of it. In addition,
|
|
you must do these things in the Modified Version:</para>
|
|
|
|
<orderedlist numeration="upperalpha">
|
|
<listitem><para>Use in the Title Page
|
|
(and on the covers, if any) a title distinct from that of the
|
|
Document, and from those of previous versions (which should, if
|
|
there were any, be listed in the History section of the
|
|
Document). You may use the same title as a previous version if
|
|
the original publisher of that version gives permission.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>List on the Title Page,
|
|
as authors, one or more persons or entities responsible for
|
|
authorship of the modifications in the Modified Version,
|
|
together with at least five of the principal authors of the
|
|
Document (all of its principal authors, if it has less than
|
|
five).</para>
|
|
</listitem>
|
|
|
|
<listitem><para>State on the Title page
|
|
the name of the publisher of the Modified Version, as the
|
|
publisher.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Preserve all the
|
|
copyright notices of the Document.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Add an appropriate
|
|
copyright notice for your modifications adjacent to the other
|
|
copyright notices.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Include, immediately
|
|
after the copyright notices, a license notice giving the public
|
|
permission to use the Modified Version under the terms of this
|
|
License, in the form shown in the Addendum below.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Preserve in that license
|
|
notice the full lists of Invariant Sections and required Cover
|
|
Texts given in the Document's license notice.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Include an unaltered
|
|
copy of this License.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Preserve the section
|
|
entitled "History", and its title, and add to it an item stating
|
|
at least the title, year, new authors, and publisher of the
|
|
Modified Version as given on the Title Page. If there is no
|
|
section entitled "History" in the Document, create one stating
|
|
the title, year, authors, and publisher of the Document as given
|
|
on its Title Page, then add an item describing the Modified
|
|
Version as stated in the previous sentence.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Preserve the network
|
|
location, if any, given in the Document for public access to a
|
|
Transparent copy of the Document, and likewise the network
|
|
locations given in the Document for previous versions it was
|
|
based on. These may be placed in the "History" section. You
|
|
may omit a network location for a work that was published at
|
|
least four years before the Document itself, or if the original
|
|
publisher of the version it refers to gives permission.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>In any section entitled
|
|
"Acknowledgements" or "Dedications", preserve the section's
|
|
title, and preserve in the section all the substance and tone of
|
|
each of the contributor acknowledgements and/or dedications
|
|
given therein.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Preserve all the
|
|
Invariant Sections of the Document, unaltered in their text and
|
|
in their titles. Section numbers or the equivalent are not
|
|
considered part of the section titles.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Delete any section
|
|
entitled "Endorsements". Such a section may not be included in
|
|
the Modified Version.</para>
|
|
</listitem>
|
|
|
|
<listitem><para>Do not retitle any
|
|
existing section as "Endorsements" or to conflict in title with
|
|
any Invariant Section.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
|
|
<para>If the Modified Version includes new front-matter sections
|
|
or appendices that qualify as Secondary Sections and contain no
|
|
material copied from the Document, you may at your option
|
|
designate some or all of these sections as invariant. To do this,
|
|
add their titles to the list of Invariant Sections in the Modified
|
|
Version's license notice. These titles must be distinct from any
|
|
other section titles.</para>
|
|
|
|
<para>You may add a section entitled "Endorsements", provided it
|
|
contains nothing but endorsements of your Modified Version by
|
|
various parties--for example, statements of peer review or that
|
|
the text has been approved by an organization as the authoritative
|
|
definition of a standard.</para>
|
|
|
|
<para>You may add a passage of up to five words as a Front-Cover
|
|
Text, and a passage of up to 25 words as a Back-Cover Text, to the
|
|
end of the list of Cover Texts in the Modified Version. Only one
|
|
passage of Front-Cover Text and one of Back-Cover Text may be
|
|
added by (or through arrangements made by) any one entity. If the
|
|
Document already includes a cover text for the same cover,
|
|
previously added by you or by arrangement made by the same entity
|
|
you are acting on behalf of, you may not add another; but you may
|
|
replace the old one, on explicit permission from the previous
|
|
publisher that added the old one.</para>
|
|
|
|
<para>The author(s) and publisher(s) of the Document do not by
|
|
this License give permission to use their names for publicity for
|
|
or to assert or imply endorsement of any Modified Version.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlcombdocs">
|
|
<title>COMBINING DOCUMENTS</title>
|
|
|
|
<para>You may combine the Document with other documents released
|
|
under this License, under the terms defined in section 4 above for
|
|
modified versions, provided that you include in the combination
|
|
all of the Invariant Sections of all of the original documents,
|
|
unmodified, and list them all as Invariant Sections of your
|
|
combined work in its license notice.</para>
|
|
|
|
<para>The combined work need only contain one copy of this
|
|
License, and multiple identical Invariant Sections may be replaced
|
|
with a single copy. If there are multiple Invariant Sections with
|
|
the same name but different contents, make the title of each such
|
|
section unique by adding at the end of it, in parentheses, the
|
|
name of the original author or publisher of that section if known,
|
|
or else a unique number. Make the same adjustment to the section
|
|
titles in the list of Invariant Sections in the license notice of
|
|
the combined work.</para>
|
|
|
|
<para>In the combination, you must combine any sections entitled
|
|
"History" in the various original documents, forming one section
|
|
entitled "History"; likewise combine any sections entitled
|
|
"Acknowledgements", and any sections entitled "Dedications". You
|
|
must delete all sections entitled "Endorsements."</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlcolldocs">
|
|
<title>COLLECTIONS OF DOCUMENTS</title>
|
|
|
|
<para>You may make a collection consisting of the Document and
|
|
other documents released under this License, and replace the
|
|
individual copies of this License in the various documents with a
|
|
single copy that is included in the collection, provided that you
|
|
follow the rules of this License for verbatim copying of each of
|
|
the documents in all other respects.</para>
|
|
|
|
<para>You may extract a single document from such a collection,
|
|
and distribute it individually under this License, provided you
|
|
insert a copy of this License into the extracted document, and
|
|
follow this License in all other respects regarding verbatim
|
|
copying of that document.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlaggworks">
|
|
<title>AGGREGATION WITH INDEPENDENT WORKS</title>
|
|
|
|
<para>A compilation of the Document or its derivatives with other
|
|
separate and independent documents or works, in or on a volume of
|
|
a storage or distribution medium, does not as a whole count as a
|
|
Modified Version of the Document, provided no compilation
|
|
copyright is claimed for the compilation. Such a compilation is
|
|
called an "aggregate", and this License does not apply to the
|
|
other self-contained works thus compiled with the Document, on
|
|
account of their being thus compiled, if they are not themselves
|
|
derivative works of the Document.</para>
|
|
|
|
<para>If the Cover Text requirement of section 3 is applicable to
|
|
these copies of the Document, then if the Document is less than
|
|
one quarter of the entire aggregate, the Document's Cover Texts
|
|
may be placed on covers that surround only the Document within the
|
|
aggregate. Otherwise they must appear on covers around the whole
|
|
aggregate.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdltrans">
|
|
<title>TRANSLATION</title>
|
|
|
|
<para>Translation is considered a kind of modification, so you may
|
|
distribute translations of the Document under the terms of section
|
|
4. Replacing Invariant Sections with translations requires
|
|
special permission from their copyright holders, but you may
|
|
include translations of some or all Invariant Sections in addition
|
|
to the original versions of these Invariant Sections. You may
|
|
include a translation of this License provided that you also
|
|
include the original English version of this License. In case of
|
|
a disagreement between the translation and the original English
|
|
version of this License, the original English version will
|
|
prevail.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlterm">
|
|
<title>TERMINATION</title>
|
|
|
|
<para>You may not copy, modify, sublicense, or distribute the
|
|
Document except as expressly provided for under this License. Any
|
|
other attempt to copy, modify, sublicense or distribute the
|
|
Document is void, and will automatically terminate your rights
|
|
under this License. However, parties who have received copies, or
|
|
rights, from you under this License will not have their licenses
|
|
terminated so long as such parties remain in full
|
|
compliance.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlrevlic">
|
|
<title>FUTURE REVISIONS OF THIS LICENSE</title>
|
|
|
|
<para>The Free Software Foundation may publish new, revised
|
|
versions of the GNU Free Documentation License from time to time.
|
|
Such new versions will be similar in spirit to the present
|
|
version, but may differ in detail to address new problems or
|
|
concerns. See <ulink
|
|
url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
|
|
|
|
<para>Each version of the License is given a distinguishing
|
|
version number. If the Document specifies that a particular
|
|
numbered version of this License "or any later version" applies to
|
|
it, you have the option of following the terms and conditions
|
|
either of that specified version or of any later version that has
|
|
been published (not as a draft) by the Free Software Foundation.
|
|
If the Document does not specify a version number of this License,
|
|
you may choose any version ever published (not as a draft) by the
|
|
Free Software Foundation.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="gfdlhowto">
|
|
<title>How to use this License for your documents</title>
|
|
|
|
<para>To use this License in a document you have written, include
|
|
a copy of the License in the document and put the following
|
|
copyright and license notices just after the title page:</para>
|
|
|
|
<blockquote><para>
|
|
Copyright (c) YEAR YOUR NAME.
|
|
Permission is granted to copy, distribute and/or modify this document
|
|
under the terms of the GNU Free Documentation License, Version 1.1
|
|
or any later version published by the Free Software Foundation;
|
|
with the Invariant Sections being LIST THEIR TITLES, with the
|
|
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
|
A copy of the license is included in the section entitled "GNU
|
|
Free Documentation License".
|
|
</para></blockquote>
|
|
|
|
<para>If you have no Invariant Sections, write "with no Invariant
|
|
Sections" instead of saying which ones are invariant. If you have
|
|
no Front-Cover Texts, write "no Front-Cover Texts" instead of
|
|
"Front-Cover Texts being LIST"; likewise for Back-Cover
|
|
Texts.</para>
|
|
|
|
<para>If your document contains nontrivial examples of program
|
|
code, we recommend releasing these examples in parallel under your
|
|
choice of free software license, such as the GNU General Public
|
|
License, to permit their use in free software.</para>
|
|
</sect1>
|
|
|
|
</appendix>
|
|
|
|
</book>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:nil
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:2
|
|
sgml-parent-document: ("referenz.sgml" "appendix")
|
|
sgml-exposed-tags:nil
|
|
sgml-local-ecat-files:nil
|
|
sgml-local-catalogs: CATALOG
|
|
sgml-validate-command: "nsgmls -s referenz.sgml"
|
|
ispell-skip-sgml: t
|
|
End:
|
|
-->
|