44 12345
发新话题
打印

NVIDIA Accelerated Linux Graphics Driver README and Installation Guide

本主题由 chinakr 于 2008-1-3 00:37 加入精华

NVIDIA Accelerated Linux Graphics Driver README and Installation Guide

来源:点击进入
转载日期:2008-01-02

NVIDIA Accelerated Linux Graphics Driver README and Installation Guide

NVIDIA Corporation

ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, "MATERIALS") ARE BEING PROVIDED "AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication or otherwise under any patent or patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. NVIDIA Corporation products are not authorized for use as critical components in life support devices or systems without express written approval of NVIDIA Corporation.

NVIDIA, the NVIDIA logo, NVIDIA nForce, GeForce, NVIDIA Quadro, Vanta, TNT2, TNT, RIVA, RIVA TNT, Quincunx Antialiasing, and TwinView are registered trademarks or trademarks of NVIDIA Corporation in the United States and/or other countries.

Linux is a registered trademark of Linus Torvalds. Fedora and RedHat are trademarks of Red Hat, Inc. SuSE is a registered trademark of SuSE AG. Mandrake is a registered trademark of Mandrakesoft SA. Intel and Pentium are registered trademarks of Intel Corporation. Athlon is a registered trademark of Advanced Micro Devices. OpenGL is a registered trademark of Silicon Graphics Inc. PCI Express is a registered trademarks and/or service marks of PCI-SIG. Windows is a registered trademark of Microsoft Corporation in the United States and other countries. Other company and product names may be trademarks or registered trademarks of the respective owners with which they are associated.



清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn
清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn

Chapter 1. Introduction

About the NVIDIA Accelerated Linux Graphics Driver

The NVIDIA Accelerated Linux Graphics Driver brings accelerated 2D functionality and high-performance OpenGL support to Linux x86 with the use of NVIDIA graphics processing units (GPUs).

These drivers provide optimized hardware acceleration for OpenGL and X applications and support nearly all recent NVIDIA GPU products (see Appendix A, Supported NVIDIA GPU Products for a complete list of supported GPUs). TwinView, TV-Out and flat panel displays are also supported.

About this Document

This document provides instructions for the installation and use of the NVIDIA Accelerated Linux Graphics Driver. Chapter 3, Selecting and Downloading the NVIDIA Packages for Your System, Chapter 4, Installing the NVIDIA Driver and Chapter 6, Configuring X for the NVIDIA Driver walk the user through the process of downloading, installing and configuring the driver. Chapter 7, Frequently Asked Questions addresses frequently asked questions about the installation process, and Chapter 8, Common Problems provides solutions to common problems. The remaining chapters include details on different features of the NVIDIA Linux Driver. Frequently asked questions about specific tasks are included in the relevant chapters. These pages are posted on NVIDIA's web site (http://www.nvidia.com), and are installed in /usr/share/doc/NVIDIA_GLX-1.0/.

About the Audience

It is assumed that the user and reader of this document has at least a basic understanding of Linux techniques and terminology. However, new Linux users can refer to Appendix H, Tips for New Linux Users for details on parts of the installation process.

Additional Information

In case additional information is required, Chapter 28, NVIDIA Contact Info and Additional Resources provides contact information for NVIDIA Linux driver resources, as well as a brief listing of external resources.

清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn

Chapter 2. Minimum Software Requirements

Software Element Min Requirement Check With...
Linux kernel 2.4.7 cat /proc/version
XFree86/X.Org 4.0.1/6.7 XFree86 -version/Xorg -version
Kernel modutils 2.1.121 insmod -v

If you need to build the NVIDIA kernel module:

Software Element Min Requirement Check With...
binutils 2.9.5 size --version
GNU make 3.77 make --version
gcc 2.91.66 gcc --version
glibc 2.0 ls /lib/libc.so.* > 6

If you build from source RPMs:

Required Software Element Check With...
spec-helper rpm rpm -qi spec-helper

All official stable kernel releases from 2.4.0 and up are supported; "prerelease" versions such as "2.4.3-pre2" are not supported, nor are development series kernels such as 2.3.x or 2.5.x. The Linux kernel can be downloaded from http://www.kernel.org or one of its mirrors.

binutils and gcc can be retrieved from http://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 and must upgrade.

If you are setting up XFree86 4.x for the first time, it is often easier to begin with one of the open source drivers that ships with XFree86 (either "nv", "vga" or "vesa"). Once XFree86 is operating properly with the open source driver, you may then switch to the NVIDIA driver.

Note that newer NVIDIA GPUs may not work with older versions of the "nv" driver shipped with XFree86. For example, the "nv" driver that shipped with XFree86 version 4.0.1 did not recognize the GeForce2 family and the Quadro2 MXR GPUs. This was fixed in XFree86 version 4.0.2. XFree86 can be retrieved from http://www.xfree86.org.

These software packages may also be available through your Linux distributor.

清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn

Chapter 3. Selecting and Downloading the NVIDIA Packages for Your System

NVIDIA drivers can be downloaded from the NVIDIA website (http://www.nvidia.com).

The NVIDIA driver follows a Unified Architecture Model in which a single graphics driver is used for all supported NVIDIA GPU products (see Appendix A, Supported NVIDIA GPU Products for a list of supported GPUs). The burden of selecting the correct driver is removed from the user, and the graphics driver is downloaded as a single file named

    NVIDIA-Linux-x86-169.07-pkg1.run

The package suffix (-pkg#) is used to distinguish between packages containing the same driver, but with different precompiled kernel interfaces. The file with the highest package number is suitable for most installations.

Support for "legacy" GPUs has been removed from the unified driver. These legacy GPUs will continue to be maintained through special legacy GPU driver releases. See Appendix A, Supported NVIDIA GPU Products for a list of legacy GPUs.

The downloaded file is a self-extracting installer, and you may place it anywhere on your system.

清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn

Chapter 4. Installing the NVIDIA Driver

This chapter provides instructions for installing the NVIDIA driver. Note that after installation, but prior to using the driver, you must complete the steps described in Chapter 6, Configuring X for the NVIDIA Driver. Additional details that may be helpful for the new Linux user are provided in Appendix H, Tips for New Linux Users.

Before you Begin

Before you begin the installation, exit the X server and terminate all OpenGL applications (note that it is possible that some OpenGL applications persist even after the X server has stopped). You should also set the default run level on your system such that it will boot to a VGA console, and not directly to X. Doing so will make it easier to recover if there is a problem during the installation process. See Appendix H, Tips for New Linux Users for details.

清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn

Starting the Installer

After you have downloaded the file NVIDIA-Linux-x86-169.07-pkg#.run, change to the directory containing the downloaded file, and as the root user run the executable:

    # cd yourdirectory
# sh NVIDIA-Linux-x86-169.07-pkg#.run

The .run file is a self-extracting archive. When executed, it extracts the contents of the archive and runs the contained nvidia-installer utility, which provides an interactive interface to walk you through the installation.

nvidia-installer will also install itself to /usr/bin/nvidia-installer, which may be used at some later time to uninstall drivers, auto-download updated drivers, etc. The use of this utility is detailed later in this chapter.

You may also supply command line options to the .run file. Some of the more common options are listed below.

Common .run Options

--info

Print embedded info about the .run file and exit.

--check

Check integrity of the archive and exit.

--extract-only

Extract the contents of ./NVIDIA-Linux-x86-169.07.run, but do not run nvidia-installer.

--help

Print usage information for the common commandline options and exit.

--advanced-options

Print usage information for common command line options as well as the advanced options, and then exit.

清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn

Installing the Kernel Interface

The NVIDIA kernel module has a kernel interface layer that must be compiled specifically for each kernel. NVIDIA distributes the source code to this kernel interface layer, as well as precompiled versions for many of the kernels provided by popular Linux distributions.

When the installer is run, it will determine if it has a precompiled kernel interface for the kernel you are running. If it does not have one, it will check if there is one on the NVIDIA FTP site (assuming you have an Internet connection), and download it. If one cannot be downloaded, either because the FTP site cannot be reached or because one is not provided, the installer will check your system for the required kernel sources and compile the interface for you. You must have the source code for your kernel installed for compilation to work. On most systems, this means that you will need to locate and install the correct kernel-source, kernel-headers, or kernel-devel package; on some distributions, no additional packages are required (e.g. Fedora Core 3, Red Hat Enterprise Linux 4).

After the correct kernel interface has been identified (either included in the .run file, downloaded, or compiled from source code), the kernel interface will be linked with the closed-source portion of the NVIDIA kernel module. This requires that you have a linker installed on your system. The linker, usually /usr/bin/ld, is part of the binutils package. You must have a linker installed prior to installing the NVIDIA driver.

清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn

Features of the Installer

Without options, the .run file executes the installer after unpacking it. The installer can be run as a separate step in the process, or can be run at a later time to get updates, etc. Some of the more important commandline options of nvidia-installer are:

nvidia-installer options

--uninstall

During installation, the installer will make backups of any conflicting files and record the installation of new files. The uninstall option undoes an install, restoring the system to its pre-install state.

--latest

Connect to NVIDIA's FTP site, and report the latest driver version and the url to the latest driver file.

--update

Connect to NVIDIA's FTP site, download the most recent driver file, and install it.

--ui=none

The installer uses an ncurses-based user interface if it is able to locate the correct ncurses library. Otherwise, it will fall back to a simple commandline user interface. This option disables the use of the ncurses library.

Note that, as suggested by the options, the installer has the ability to download updated precompiled kernel interfaces from the NVIDIA FTP site (for kernels that were released after the NVIDIA driver release).

清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn

Chapter 5. Listing of Installed Components

The NVIDIA Accelerated Linux Graphics Driver consists of the following components (filenames in parenthesis are the full names of the components after installation; "x.y.z" denotes the current version. In these cases appropriate symlinks are created during installation):

  • An X driver (/usr/X11R6/lib/modules/drivers/nvidia_drv.so); this driver is needed by the X server to use your NVIDIA hardware.

  • A GLX extension module for X (/usr/X11R6/lib/modules/extensions/libglx.so.x.y.z); this module is used by the X server to provide server-side GLX support.

  • An X module for wrapped software rendering (/usr/X11R6/lib/modules/libnvidia-wfb.so.x.y.z and optionally, /usr/X11R6/lib/modules/libwfb.so); this module is used by the X driver to perform software rendering on GeForce 8 series GPUs. If libwfb.so already exists, nvidia-installer will not overwrite it. Otherwise, it will create a symbolic link from libwfb.so to libnvidia-wfb.so.x.y.z.

  • 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.

  • 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 X config file -- that is taken care of by libglx.

  • Two XvMC (X-Video Motion Compensation) libraries: a static library and a shared library (/usr/X11R6/lib/libXvMCNVIDIA.a, /usr/X11R6/lib/libXvMCNVIDIA.so.x.y.z); see Appendix G, XvMC Support for details.

  • A kernel module (/lib/modules/`uname -r`/video/nvidia.o or /lib/modules/`uname -r`/kernel/drivers/video/nvidia.o); 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 X driver and OpenGL. nvidia.o 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 the X server, 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.

  • OpenGL and GLX header files (/usr/include/GL/gl.h, /usr/include/GL/glext.h, /usr/include/GL/glx.h, and /usr/include/GL/glext.h); these are also installed in /usr/share/doc/NVIDIA_GLX-1.0/include/GL/. You can request that these files not be included in /usr/include/GL/ by passing the "--no-opengl-headers" option to the .run file during installation.

  • The nvidia-tls libraries (/usr/lib/libnvidia-tls.so.x.y.z and /usr/lib/tls/libnvidia-tls.so.x.y.z); these files provide thread local storage support for the NVIDIA OpenGL libraries (libGL, libGLcore, and libglx). Each nvidia-tls library provides support for a particular thread local storage model (such as ELF TLS), and the one appropriate for your system will be loaded at run time.

  • The application nvidia-installer (/usr/bin/nvidia-installer) is NVIDIA's tool for installing and updating NVIDIA drivers. See Chapter 4, Installing the NVIDIA Driver for a more thorough description.

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 Graphics Driver, as well as their symlinks):

    /usr/X11R6/lib/modules/drivers/nvidia_drv.so

/usr/X11R6/lib/modules/extensions/libglx.so.x.y.z
/usr/X11R6/lib/modules/extensions/libglx.so -> libglx.so.x.y.z

(may also be in /usr/lib/modules or /usr/lib/xorg/modules)

/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/`uname -r`/video/nvidia.o, or
/lib/modules/`uname -r`/kernel/drivers/video/nvidia.o

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 conflicting libraries (be sure to rename clashing libraries to something that ldconfig will not look at -- we have found that prepending "XXX" to a library name generally does the trick), 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 appear to be correct, then verify that the application is using the correct libraries. For example, to check that the application /usr/X11R6/bin/glxgears is using the NVIDIA libraries, run:

    % ldd /usr/X11R6/bin/glxgears
linux-gate.so.1 => (0xffffe000)
libGL.so.1 => /usr/lib/libGL.so.1 (0xb7ed3000)
libXp.so.6 => /usr/lib/libXp.so.6 (0xb7eca000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb7eb9000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb7dd4000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7d82000)
libm.so.6 => /lib/libm.so.6 (0xb7d5f000)
libc.so.6 => /lib/libc.so.6 (0xb7c47000)
libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0xb6c2f000)
libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0xb6c2d000)
libdl.so.2 => /lib/libdl.so.2 (0xb6c29000)
/lib/ld-linux.so.2 (0xb7fb2000)

Check 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 using the LD_LIBRARY_PATH environment variable. You may want to consult the man pages for ldconfig and ldd.

清北,追求完美用户体验——品质驱动 诚信导航 服务至上 技术领先
清北服务网站  http://QuickBest.com.cn
 44 12345
发新话题