NVIDIA nForce Linux Drivers

Contents

  1. These Contents
  2. Overview
  3. Package Availability
  4. Minimum Requirements
  5. Licensing
  6. What The Installer Contains
  7. What The Installer Does
  8. Installation
  9. Configuration
  10. Loading The Drivers
  11. Module Parameters 
  12. Audio Control Panel
  13. Troubleshooting
  14. Frequently Asked Questions (FAQ)
  15. Acknowledgments
  16. Change List

Overview

The nForce chipset contains a number of hardware devices that can be run under Linux; a network device (MAC), audio hardware, storage controllers (IDE and SATA), and OHCI/EHCI USB controllers. Many of the components of the nForce chipset use industry standard interfaces; thus, not all components require custom drivers to be used on Linux.

Bug reports and installation questions may be directed to:

linux-nforce-bugs@nvidia.com

Before submitting a bug report, please read the Troubleshooting and FAQ sections first, and review the Known Problems list for the driver version you are using. This can be found at NVIDIA's web site, on the release page for the driver version.

If you decide to submit a bug report, make sure to run nforce-bug-report.sh, which will create the file nforce-bug-report.log in the current directory, and include this log file with the bug report. (The nforce-bug-report.sh script is normally installed in /usr/bin/ when you run the driver installer.)

Package Availability

This package can be found at the NVIDIA web site:

http://www.nvidia.com/content/drivers/drivers.asp

We strongly urge you to only use software obtained from this website or a trusted Linux distribution for your nForce hardware.

Minimum Requirements

At the current time, the nForce drivers require a 2.4 or 2.6 series kernel running on 32- or 64-bit AMD CPUs.

NVIDIA's audio driver is an OSS driver, and requires OSS sound support in the kernel. NVIDIA's audio control panel is a Qt-based application, and requires Qt run-time libraries in order to run.

Licensing

The network and audio driver provided by NVIDIA is subject to the NVIDIA software license; the license is available on the NVIDIA website, and is included in this package. By using this software, you are agreeing to the terms of the license.

What the Installer Contains

The package contains the following items:

  1. This Installation Guide
  2. The NVIDIA license for the network driver software
  3. Pre-built kernel library for the nForce audio driver
  4. Pre-built kernel library for the nForce network driver
  5. Audio control panel binary
  6. Pre-built kernel interface binaries for major distributions
  7. Source for the kernel interface portion of the audio driver
  8. Source for the kernel interface portion of the network driver

What the Installer Does

This installer will prepare a network driver and an audio driver, then place them in the appropriate locations for loadable kernel modules.  The network and audio drivers are from NVIDIA.  If the audio driver is installed, the installer will also install the audio control panel application.

Installation

Nvidia has provided a self-extracting installer that will prepare the drivers and install them into the appropriate location for your kernel's module tree.  Note that there is a 32-bit installer as well as a 64-bit installer.  The 64-bit installer is required for x86_64 kernels.  You can check what kind of machine you are currently running on by checking the output of uname -m. If the output reports x86_64, you are running a 64-bit kernel and should use the 64-bit installer.

To install the drivers, simply run the installer binary under a shell with root privileges, and follow the onscreen instructions.

The .run file accepts many command line options.  Here are a few of the more common 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 the .run file, but do not run 'nforce-installer'.

--help
Print usage information for the common command line options and exit.

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

The installer will use an ncurses-based user interface if it can find the correct ncurses library.  Otherwise, it will fall back to a simple interactive text interface.  To disable use of the ncurses user interface, use the option '--ui=none'.

The installer contains pre-built drivers for major Linux distributions.  In the event that the installer cannot find a pre-built driver for your kernel, the installer will attempt to build the driver.  In this case, it is necessary to install the kernel source corresponding to the kernel for which the driver will be installed for.

You might want to check the BIOS configuration on your system to ensure that the audio and networking devices will be detected. See the System BIOS Configuration description in the Troubleshooting section.

NOTE that for network driver updates, you must first deactivate the NVIDIA network device prior to running the installer. Otherwise the module count for that device will not be zero and installation of network driver will fail.

Configuration

The installer does not update configuration files.  After installing the drivers, configure the system to use the drivers by using the distribution's built-in configuration mechanisms for networking and sound, or edit the required files manually.

Module Configuration File Location

Module configuration files are different for 2.4 and 2.6 series kernels. The various Linux distributions also differ in how they handle module configuration.

Configuring the network driver

SuSE

For SuSE Linux Enterprise Server 9, use YaST to configure the network driver. YaST may be started in text mode by using the command "yast", or in graphical mode by using the command "yast2". Within the YaST UI, select "Network Devices", then select "Network Card". This should bring up the "Network cards configuration" dialog.

Select "Other (not detected)", then select the "Configure" button. In the "Kernel Module" section, set "Module Name" to "nvnet", then select the "Next" button. Configure the interface parameters as required, select the "Next" button to return to the card configuration dialog, and select "Finish".

Red Hat

For Red Hat Enterprise Linux version 3Red Hat 8, Red Hat 9 and Fedora Core 1, follow the instructions in other distributions to edit the configuration file /etc/modules.conf. For Red Hat Enterprise Linux version 4, Fedora Core 2 and later, follow the instructions in other distributions to edit the configuration file /etc/modprobe.conf.

Once the configuration file has been edited, configure the network interface parameters using the Network Configuration tool on the System Settings menu. The configuration tool can also be launched directly as "neat". (To launch neat in text mode, use "neat-tui".)

Mandrake / Mandriva

For Mandrake 10, use Mandrake Control Center (available via the mcc command) to configure the network driver. Select "Network & Internet", then select "New Connection". Select "LAN  Connection", select  "Next", then select "Manual Choice".  From the list of available network drivers, select "nvnet", then select "Next". and select "autoprobe". At this point, the driver will be configured and a new interface made availabe; select the newly-added interface to configure IP address settings, etc.

For earlier Mandrake distributions, follow the instructions in other distributions to edit the configuration file /etc/modules.conf. Once this is done, Mandrake Control Center can be used to configure IP address settings, etc., on the network interface supported by nvnet.

Other distributions

If the distribution you are using provides a configuration mechanism for network drivers, use it to select the nvnet driver module for use with the nForce ethernet device, and to set the networking parameters (IP address, etc.) for the interface. Otherwise, manually edit the module configuration file.

If your configuration file already contains an entry for the forcedeth driver (an open-source network driver that supports the nForce network controller), that entry needs to be commented out with a # or removed:

# alias eth0 forcedeth

Add the following lines to the configuration file:

alias eth0 nvnet
alias forcedeth off


If your system has multiple ethernet interfaces, you may need to use 'eth1'  or higher in place of 'eth0'.

Configuring the audio driver

SuSE

For SuSE Linux Enterprise Server 9,  at the time of writing it isn't possible to use YaST to configure the nvsound audio driver. Following the instructions in other distributions to edit the configuration file /etc/modprobe.d/sound.

Red Hat

For Red Hat Enterprise Linux version 3Red Hat 8, Red Hat 9 and Fedora Core 1, follow the instructions in other distributions to edit the configuration file /etc/modules.conf.

For Fedora Core 2 and later, follow the instructions in other distributions to edit the configuration file /etc/modprobe.conf.

Mandrake / Mandriva

At the time of writing, it isn't possible to use Mandrake Control Center to configure the nvsound audio driver.

Follow the instructions in other distributions to manually edit the configuration file. For Mandrake 10 or other Mandrake distributions running 2.6 kernels, the configuration file is  /etc/modprobe.conf. For earlier distributions that run 2.4 kernels, the configuration file is /etc/modules.conf.

Other distributions

If the distribution you are using provides a configuration mechanism for audio drivers, use it to select the nvsound driver module for use with the nForce audio device. Otherwise, manually edit the module configuration file.

If your configuration file already contains an entry for the i810_audio or snd-intel8x0 drivers (open-source audio drivers that supports the nForce audio controller), that entry needs to be commented out with a # or removed:

# alias sound-slot-0 i810_audio

Add the following lines to the configuration file:

alias sound-slot-0 nvsound
alias snd-intel8x0 off
alias i810_audio off


On some distributions, you may need to replace sound-slot-0 with snd-card-0.

If you wish to have nvmixer audio settings automatically restored each time the nvsound driver loads, add the following lines to the configuration file for 2.4 kernels:

post-install nvsound sleep 1; /usr/bin/nvmix-reg -f /etc/nvmixrc -L >/dev/null 2>&1 ||:
pre-remove nvsound /usr/bin/nvmix-reg -f /etc/nvmixrc -S >/dev/null 2>&1 ||:

For 2.6 kernels:

install nvsound /sbin/modprobe --ignore-install nvsound ; sleep 1; /usr/bin/nvmix-reg -f /etc/nvmixrc -L >/dev/null 2>&1 || :
remove nvsound { /usr/bin/nvmix-reg -f /etc/nvmixrc -S >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove nvsound

For both 2.4 and 2.6 kernels, you should add the following code to /etc/rc.d/init.d/halt, or /etc/init.d/halt.local on SuSE distributions. On Mandriva distributions, add the code at the end of function stop_mixer() in /etc/rc.d/init.d/sound.

if grep -q "\(nvsound\)" /proc/modules && [ -x /usr/bin/nvmix-reg ]; then
/usr/bin/nvmix-reg -f /etc/nvmixrc -S >/dev/null 2>&1
fi

(In /etc/rc.d/init.d/halt, this code is best located next to any existing code that saves ALSA mixer settings.)

For Red Hat Enterprise Linux 4, Fedora Core 3 and later, add the following line in /etc/rc.local:

/usr/bin/nvmix-reg -f /etc/nvmixrc -L >/dev/null 2>&1


Loading The Drivers

The installer may or may not leave the new modules loaded after the installation, depending on the existing configuration. You can force the module to be loaded using insmod or modprobe :

insmod <modulename>

or

modprobe <modulename>

On subsequent reboots, the modules should load automatically.

Module Parameters

The run-time behavior of NVIDIA drivers may be configured by use of module parameters. These  can be specified either on the command line when loading the module, or in the module configuration file (such as /etc/modules.conf). For example, to have the nForce ethernet driver use CPU optimized mode, add the following to the module configuration file:

options nvnet optimization=1

Or if loading the module manually from the command line:

modprobe nvnet optimization=1

The module parameters for the ethernet driver can be verified using the command:

modinfo -p nvnet

The following sections contain descriptions of all driver module parameters.

nvnet Module Parameters

The nForce network driver supports the following optional parameters:
  1. hardware offload mode
  2. optimization
  3. negotiation mode
  4. speed and duplex
  5. media
  6. max TX packets
  7. max RX packets
  8. MTU
  9. poll interval
  10. segmentation offload
  11. TX checksum offload
  12. RX checksum offload

Hardware Offload Mode

This parameter controls the hardware mode.  The nForce network driver supports two hardware modes:
In hardware mode 2, TX checksum offload, RX checksum offload, segmentation offload, and RGMII (Reduced Gigabit Media Independent Interface) are used, and the MTU size can be set with the "mtu" driver parameter.   In hardware mode 1, these offload modes are turned off, MII (Media Independent Interface) is used, and the "mtu" driver parameter is ignored.

The default hardware mode will depend on the network controller.

Optimization

The nForce network driver's optimization mode can be specified with the module parameter "optimization".   The driver supports two optimization modes:
CPU-load optimization mode reduces the CPU utilization by reducing the frequency of interrupts.

Network-throughput optimization mode maximizes the network throughput at the expense of higher CPU consumption.

By default, the driver runs in network-throughput optimization mode.

Negotiation Mode

The nForce network driver supports two negotiation modes:
When negotiation mode is enabled, the controller will negotiate for the speed and duplexspecified with the "force_speed_duplex" parameter.  If negotiation mode is disabled, the controller will not negotiate, but will force the speed and duplex specified with "force_speed_duplex".

By default, autonegotiate is enabled.

Speed and Duplex

The "force_speed_duplex" module parameter can be used set the interface speed and duplex of the ethernet controller.  The following values are supported:
If a value of 0 (autonegotiate) is used, the controller will negotiate for the optimum speed and duplex.

If a value between 1 and 4, inclusive, is set for this parameter, then negotiation behavior will depend on the value of the "auto_negotiate" module parameter. If "auto_negotiate" is enabled, the controller will negotiate for the speed and duplex specified in "force_speed_duplex". If "auto_negotiate" is disabled, the controller will be set to the speed and duplex specified, without negotiation.

If a value between 5 and 9, inclusive, is set for this parameter, then the controller will always negotiate for the speed and duplex specified. In this case, the "auto_negotiate" module parameter is ignored.

By default, the controller will autonegotiate for the optimum speed and duplex.

Media

The default value of this parameter depends on whether the driver is using hardware mode 1 or 2. If hardware mode 2 is being used, RGMII is the default. If hardware mode 1 is being used, MII is the default." The "media" module parameter can be used to specify the media interface.  This module parameter supports the following values:
The default value of this parameter depends on whether the driver is using hardware mode 1 or 2.   If hardware mode 2 is being used, RGMII is the default.   If hardware mode 1 is being used, MII is the default.

Max TX packets

The "max_tx_packets" module parameter controls the maximum number of queued TX (transmit) packets.  This parameter takes a value between 32 and 1024, inclusive.  By default, 64 maximum TX packets will be used.

Max RX packets

The "max_rx_packets" module parameter controls the maximum number of queued RX (receive) packets.  This parameter takes a value between 32 and 1024, inclusive.  By default, 64 maximum RX packets will be used.

MTU

The "mtu" module parameter controls the MTU size in bytes.  This parameter takes a value between 576 and 9202, inclusive.  By default, a 1500 byte MTU is used.  This parameter is only relevant when hardware offload mode is turned on.

Poll Interval

The "poll_interval_in_us" module parameter is used to control the rate at which hardware interrupts are generated, and is only relevant when running in CPU optimization mode.  This parameter is ignored in throughput optimization mode.  This parameter takes a microsecond value between 0 and 2000.

Segmentation Offload

This feature allows the hardware to divide a single buffer (whose length is greater then the TCP segment size) into multple TCP segments.   The nForce network driver supports two modes for segmentation offload:
In hwmode 1, the "seg_offload" module parameter defaults to 0 (disabled).  In hwmode 2, the "seg_offload" module parameter defaults to 1 (enabled).

TX checksum Offload

Checksum offloads perform the TCP/IP checksum calculation in hardware to reduce CPU.   The nForce network driver supports two modes for TX checksum offload:
In hwmode 1, the "tx_checksum_offload" module parameter defaults to 0 (disabled).  In hwmode 2, the "tx_checksum_offload" module parameter defaults to 1 (enabled).

RX checksum Offload

Checksum offloads perform the TCP/IP checksum calculation in hardware to reduce CPU.   The nForce network driver supports two modes for RX checksum offload:
In hwmode 1, the "rx_checksum_offload" module parameter defaults to 0 (disabled).  In hwmode 2, the "rx_checksum_offload" module parameter defaults to 1 (enabled).

nvsound Module Parameters

There are currently no nvsound module parameters.


Audio Control Panel

A control panel application, nvmixer,  is included with the audio driver to control the features of the nForce audio driver.  These features include:

Usage

On installation nvmixer is getting copied to /usr/bin. This application need X for running.
The audio control panel may be invoked by typing "nvmixer" at the command line:
example% nvmixer
For those that are migrating from an existing NVIDIA audio driver, note that the old "nvaudio" control panel will not work with the new audio driver.

System Requirements

The nvmixer application uses the Qt graphical user interface toolkit. The pre-built nvmixer shipped with this release is built using Qt version 3.1, and requires Qt 3.1 or later run-time libraries to be present on your system in order to run.

If your system does not have Qt 3.1 or later libraries installed, you will most likely receive an "relocation error: ... undefined symbol" error message when you try to run nvmixer. If this occurs, there are two ways to solve this problem:

Troubleshooting

This section covers problems that commonly occur when installing nForce drivers on Linux. If you encounter problems, please read this section and the FAQ , and review the Known Problems list for the driver version you are using. This can be found at NVIDIA's web site, on the release page for the driver version.

If you decide to submit a bug report, make sure to include nforce-bug-report.log in the bug report by running nforce-bug-report.sh.

Bug reports and installation questions may be directed to:

linux-nforce-bugs@nvidia.com

System BIOS Configuration

Since the audio and network drivers work on the nForce chipset, these devices along with other motherboard devices are controlled by the System BIOS. If the installed drivers don't recognize hardware on your system, the problem may be your System BIOS's plug and play configuration. If your audio or network devices are disabled in the BIOS, or the system BIOS expects the operating system to configure hardware devices, and your Linux kernel doesn't support ACPI-style configuration, you'll need to change your BIOS settings.

Warning: You should make a note of the original BIOS configuration settings before changing them. Changing your system BIOS configuration may adversely affect the operation of the system, and even make it unbootable.

To view or change an Award-style system BIOS, reboot the machine, and press the Delete key. When you get a configuration screen, select "PnP/PCI Configurations" in that screen if "PNP OS Installed []" Has "Yes" chosen, change the selection to "No".

If your BIOS is Phoenix-style, use the F2 key instead of Delete, and scroll through the menus to find OS Type, and chose "Other". The exact details of System BIOS configuration vary with BIOS vendor, so the screens may not be exactly the same.

Installer

Audio driver

Network driver