Knowledge Base

Dell Nvidia Accelerated Video Driver for Red Hat Linux with FAQ



This article provides information on Dell Nvidia Accelerated Video Driver for Red Hat Linux and FAQ

Overview of the RPM

The Dell-NVidia RPM is distributed to install the Nvidia OpenGL video driver and to provide a mechanism for automatic rebuild of the video driver for new kernels. During installation the RPM performs the following tasks:

  1. Copies the NVIDIA-Linux-x86-1.0-xxxx.run installer to the /usr/src/video directory, where –xxxx.run refers to the version number listed in the file name.
  2. Writes the /etc/X11/XF86Config file that sets the resolution to 1024x768 and sets generic monitor scan rates.
  3. Copies this README file to the /dell/video directory.
  4. Creates the buildmodules service in /etc/rc.d/init.d, and copies the module rebuild script, build_nvidia.sh, to /etc/modulescripts/video.
  5. Executes the build_nvidia.sh script to build the Nvidia drivers for the current kernel.

Since the Nvidia OpenGl driver provides a kernel module, this module must be built from source for each kernel. To simplify this process, Dell created the buildmodules service. The buildmodules service starts during the boot process for each kernel, and runs all of the scripts in the /etc/modulescripts directory. For the Nvidia OpenGL drivers, the /etc/modulescripts/video/build_nvidia.sh script executes. This script reads the install.xxxx.log file to detect the kernels available for the nvidia module. If the driver has not been built for the booting kernel, it builds and installs the module, and then records the kernel version in the install.xxxx.log.

In order for the buildmodules service to build the nvidia.o module for new kernels, the kernel source must be installed for the new kernel. If the kernel source is not installed, the module will fail to load.

Editing the XF86Config file

To edit the XF86 configuration file, first verify the correct configuration file, then modify the configuration file to use the nVidia driver.

Verify the configuration file

To verify the correct XFree86 configuration file, read the file /var/log/XFree86.0.log file and locate the line: (==) Using config file:"configfile", where configfile is the full path to the XFree86 configuration file.

Modify the configuration file

To modify the configuration file to use the nVidia driver, follow these steps:

  1. Open the configuration file in a text editor.
  2. Locate the section labeled: Section "Device".
  3. Modify the line Driver "currentdriver" to read Driver "nvidia".
  4. Locate the section labeled: Section "Module".
  5. Add the line: Load "glx".
  6. Remove the lines: Load "dri" and Load "GLcore".
  7. Save changes and exit the text editor.
  8. restart X and begin using the accelerated OpenGL libraries.

Creating a configuration file

If a working XF86Config file is not present:

  • Use the sample config file included with the NVIDIA driver package installed in /usr/share/doc/NVIDIA_GLX-1.0/ by the RPM. Copy this file to /etc/X11/XF86Config and follow the preceding steps to modify the file for use.
  • To use the Red Hat XFree86 configuration utility, type redhat-config-xfree86 at the command line and press the key. This launches a configuration program to generate an XF86Config file.

For more information on XF86Config file syntax, refer to the manual pages. At the command line type man XF86Config and press the <Enter> key.


Frequently Asked Questions - FAQ

Listed below are some of the more frequent issues that may occur when installing the NVidia module.

The information contained in the above article consists of excerpts from nVidia Knowledge Base. The technical information and troubleshooting described herein are for informational purposes only. For additional information or the complete article, go to the nVidia support Web site at http://www.nvidia.com and search the nVidia Knowledge Base.

Where should I start when diagnosing display problems?

One of the most useful tools for diagnosing problems is the /var/log/XFree86.num.log, where num is the server number. When reviewing the logs, lines that begin with (II) are information, (WW) are warnings, and (EE) are errors.

Check the /var/log/XFree86.num.log for the following items:

  • Ensure that the correct configuration file is being used by verifying the file that was edited matches the (==) Using config file:"configfile" line.
  • Ensure the NVIDIA driver is being used by checking for the line (II) LoadModule: "nvidia" and multiple lines that start with (II) NVIDIA(0) from the NVidia drivers. If the lines are not present the driver is not being used.

How can I increase the amount of data printed in the XFree86 log file?

By default, the NVIDIA X driver prints relatively few messages to stderr and the XFree86 log file. To troubleshoot, enable more verbose output by using the XFree86 command line options "-verbose" and "-logverbose" which can be used to set the verbosity level for the stderr and log file messages, respectively. XFree86 defaults to verbosity level 1 for stderr and level 3 for the log file. The NVIDIA X driver will output more messages when the verbosity level is at or above 5. To enable verbose messaging from the NVIDIA X driver to both the log file and stderr type, at a command line, startx -- -verbose 5 logverbose 5 and press the key.

My X server fails to start, and my XFree86 log file contains the error (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module!

There is a problem with the NVIDIA kernel module. This causes the X server to fail.

View /etc/modulescripts/video/install.xxxx.log, to see if the module was built for kernel that you are currently running. To force a rebuild of the nvidia.o module, remove the install log by typing rm –f /etc/modulescripts/video/install.xxxx.log at the command line prompt and press . Then type sh /etc/modulescripts/video/build_nvidia.sh and press the key to rebuild the driver. To run the installer manually by type sh /usr/src/video/ NVIDIA-Linux-x86-1.0-xxxx.run and press the key.

To check that the module is loaded type lsmod and press the key. This displays a list of the loaded modules and nvidia should be listed. If it is not loaded, try loading it explicitly with the insmod or modprobe command. If errors occur concerning unresolved symbols when attempting a manual load of the module, then the kernel module has most likely been built using header files for a different kernel revision than what is running. To explicitly control what kernel header files are used when building the NVIDIA kernel module use the —kernel-include-dir option.

Installing the NVIDIA kernel module gives one of these error messages:
  • #error Modules should never use kernel-headers system headers.
  • #error but headers from an appropriate kernel-source.

The kernel source code is missing or incorrect. Install the source for the Linux kernel.

The kernel module isn''t loaded dynamically when X starts; I always have to ‘modprobe nvidia’ first. What’s wrong?

Make sure the line alias char-major-195 nvidia appears in your module configuration file, generally found in one these files /etc/conf.modules, /etc/modules.conf or /etc/modutils/alias. Consult the documentation that came with your Linux distribution for details.

I can’t build the NVIDIA kernel module, or I can build the NVIDIA kernel module, but modprobe/insmod fails to load the module into my kernel. What’s wrong?

These problems are generally caused by the build using the wrong kernel header files. The convention used to be that kernel header files should be stored in /usr/include/linux/, but that is deprecated in favor of /lib/modules/‘uname -r‘/build/include. The nvidia-installer 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 using the —kernel-include-dir option. Obviously, for this to work, you need the appropriate kernel header files installed on your system. Consult the documentation that came with your distribution; some distributions don’t install the kernel header files by default, or they install headers that don’t coincide properly with the kernel you are running.

I recently updated various libraries on my system using my Linux distributor’s update utility, and the NVIDIA graphics driver no longer works. What’s wrong?

Conflicting libraries may have been installed by your distribution’s update utility; First remove the install log (rm /etc/modulescripts/video/install.xxxx.log) and then run the etc/modulescripts/video/build_nvidia.sh script.

How do I tell if I have my kernel sources installed?

On a distribution that uses RPM (Red Hat, Mandrake, SuSE, etc), then use RPM to determine the kernel sources installed. At a shell prompt, type: rpm -qa | grep kernel and look at the output. A package that corresponds to the kernel (often named something like kernel-2.4.18-3) and a kernel source package with the same version (often named something like kernel-source-2.4.18-3) should display. If none of the lines seem to correspond to a source package, then install it. If the versions listed mismatch (ex: kernel-2.4.18-10 vs. kernel-source-2.4.18-3), then update the kernel-source package to match the installed kernel. If you have multiple kernels installed, install the kernel-source package that corresponds to the running kernel (or make sure the installed source package matches the running kernel). View the output of uname -r and match versions.

Why am I unable to load the NVIDIA kernel module that I compiled for the Red Hat Linux 7.3 2.4.18-3bigmem kernel?

The kernel header files Red Hat Linux distributes for Red Hat Linux 7.3 2.4.18-3bigmem kernel are misconfigured. NVIDIA’s precompiled kernel module for this kernel can be loaded, but in order to compile the NVIDIA kernel interface files for this kernel, then type the following lines at a command line, pressing the key after each line:

cd /lib/modules/‘uname -r‘/build/
cp configs/kernel-2.4.18-i686-bigmem.config .config
make mrproper oldconfig dep
Red Hat Linux ships kernel header files that are simultaneously configured for ALL of their kernels for a particular distribution version. A header file generated at boot time sets up a few parameters that select the correct configuration. Rebuilding the kernel headers with the above commands will create header files suitable for the Red Hat Linux 7.3 2.4.18-3bigmem kernel configuration only, thus trashing the header files for the other configurations.
X takes a long time to start. What can I do?

Most of the startx delay problems are caused by incorrect data in the video BIOS about what display devices are possibly connected or what i2c port should be used for detection. You can work around these problems by adding the IgnoreDisplayDevices option line to the XF86Config file.

Some OpenGL applications crash when I start them on Red Hat Linux 9.

This is because some versions of the glibc package shipped by Red Hat that support TLS do not properly handle using dlopen() to access shared libraries which utilize some TLS models. To resolve this, obtain the update glibc-2.3.2-11.9, or newer, from Red Hat.

I’ve installed the driver, but my Enable 3D Acceleration checkbox is still grayed out. What did I do wrong?

Most distribution-provided configuration applets do not detect the NVIDIA accelerated driver, and consequently do not update when the driver is installed.

Where can I find the tarballs?

ftp://download.nvidia.com/XFree86/1.0-4363/.

Where can I find older driver versions?

ftp://download.nvidia.com/XFree86_40/.

For more information, consult this article at the nVidia website: http://www.nvidia.com/view.asp?IO=linux_display_ia32_1.0-4363





Article ID: SLN85746

Last Date Modified: 09/22/2015 06:30 AM


Rate this article

Accurate
Useful
Easy to understand
Was this article helpful?
Yes No
Send us feedback
Comments cannot contain these special characters: <>()\
Sorry, our feedback system is currently down. Please try again later.

Thank you for your feedback.