- These Contents
- Package Availability
- Minimum Requirements
- What The Installer Contains
- What The Installer Does
- Module Parameters
- Audio Control Panel
- Frequently Asked
- Change List
The nForce chipset contains a number of hardware devices that can
under Linux. Along with a display processor, the chipset includes a
device (MAC), audio hardware, storage controllers (IDE and SATA), and
an OHCI USB
Many of the components of the nForce chipset use industry standard
thus, not all components require custom drivers to be used on Linux.
Bug reports and installation questions may be directed to:
Please be sure read the TroubleShooting section first.
Make sure to include nforce-bug-report.log in the bug report by
This package can be found at the NVIDIA web site:
We strongly urge you to only use software obtained from this
a trusted Linux distribution for your nForce hardware.
At the current time, the nForce drivers require a 2.4 or 2.6 series
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.
The package contains the following items:
- This Installation Guide
- The NVIDIA license for the network driver software
- Pre-built kernel library for the nForce audio driver
- Pre-built kernel library for the nForce network driver
- Audio control panel binary
- Pre-built kernel interface binaries for major distributions
- Source for the kernel interface portion of the audio driver
- Source for the kernel interface portion of the network driver
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.
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'.
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:
Print embedded info about the .run file and exit.
Check integrity of the archive and exit.
Extract the contents of the .run file, but do not run
Print usage information for the common command line options and exit.
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
You might want to check the BIOS configuration on your system to
ensure that the audio and networking devices will be detected. See the
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.
The installer will not update configuration files. To
configure the system for using the installed drivers use the
distribution's built-in configuration mechanisms for networking and
sound, or edit the required files manually. The configuration files
are different for 2.4 and 2.6 series kernels. The configuration files
may also be handled differently per distribution.
the installation of the drivers, make sure the following
lines are in the modules configuration file (it will be named
on most current distributions that provide a 2.4 series kernel, and
/etc/modprobe.conf on most current distributions that provide a 2.6
- alias eth0 nvnet
- alias sound-slot-0 nvsound (may be snd-card-0 on some
If there is an entry for the i810_audio, snd-intel8x0, or nvaudio
open-source audio driver that supports the nForce audio controller),
that entry needs to be commented out or removed.
Similarly, if there is an entry for the forcedeth driver (an
open-source network driver that supports the nForce network
controller), that entry needs to be commented out or removed.
The installer may or may not leave the new modules loaded after the
installation, depending on the existing configuration. Driver load
requires a reboot after configuration or
you can load the drivers manually using insmod or modprobe.
(USAGE: 'insmod modulename' or 'modprobe modulename')
nvnet Module Parameters
The nForce network driver supports the following optional parameters:
- hardware offload mode
- negotiation mode
- speed and duplex
- max TX packets
- max RX packets
- poll interval
- segmentation offload
- TX checksum offload
- RX checksum offload
Hardware Offload Mode
This parameter controls the hardware offload mode. The nForce
network driver supports two hardware offload modes:
When hardware offload mode is on, TX checksum offload, RX checksum
offload, segmentation offload, and RGMII (Reduced Gigabit Media
Independent Interface) is used, and the MTU can be set to a non-default
value. When hardware offload mode is off, these offload modes are
turned off and MII (Media Independent Interface) is used, and the MTU
parameter is ignored.
- hwmode=0 - off
- hwmode=1 - on
The default hardware offload mode will depend on the network
controller. The hardware offload mode can be specified by
supplying the module parameter "hwmode".
The nForce network driver supports two optimization modes:
CPU optimization mode reduces the CPU utilization by using interrupt
- optimization=0 - Throughput optimization
- optimization=1 - CPU optimization
Throughput optimization mode maximizes the throughput. This mode
has higher CPU consumption.
By default, the driver runs in throughput optimization mode. The
optimization mode can be specified by supplying the module parameter
The nForce network driver supports two negotiation modes:
When negotiation mode is enabled, the controller will negotiate for the
desired speed and duplex. If negotiation mode is disabled, the
controller will force the speed and duplex setting without negotiation.
- autonegotiate=0 - disabled
- autonegotiate=1 - enabled
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.
- force_speed_duplex=0 - autonegotiate
- force_speed_duplex=1 - 10Mbps half duplex
- force_speed_duplex=2 - 10Mbps full duplex
- force_speed_duplex=3 - 100Mbps half duplex
- force_speed_duplex=4 - 100Mbps full duplex
- force_speed_duplex=5 - autonegotiate for 10Mbps half duplex
- force_speed_duplex=6 - autonegotiate for 10Mbps full duplex
- force_speed_duplex=7 - autonegotiate for 100Mbps half duplex
- force_speed_duplex=8 - autonegotiate for 100Mbps full duplex
- force_speed_duplex=9 - autonegotiate for 1000Mbps full duplex
If a value between 1 and 4, inclusive, is set for this parameter, then
negotiation behavior will depend on the value of the autonegotiate
module parameter. If autonegotiate is enabled, the controller
will negotiate for the desired speed and duplex. If autonegotiate
is disabled, the controller will set the speed and duplex of the
controller without negotiation.
If a value between 5 and 9, inclusive, is set for this parameter, then
the controller will negotiate for the desired speed and duplex.
In this case, the autonegotiate module parameter is implicitly enabled.
By default, the controller will autonegotiate for the optimum speed and
The "media" module parameter can be used to specify the interface
media. This module parameter supports the following values:
The default value of this parameter depends on whether hardware offload
mode is enabled or disabled. If hardware offload mode is enabled,
RGMII is the default. If hardware offload mode is disabled, MII
is the default.
- media=0 - auto
- media=1 - RGMII
- media=2 - MII
Max TX packets
The "max_tx_packets" module parameter controls the maximum number of
outstanding 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
outstanding RX (receive) packets. This parameter takes a value
between 32 and 1024, inclusive. By default, 64 maximum RX packets
The "mtu" module parameter controls the MTU size in bytes. This
parameter takes a value between 1500 and 9202, inclusive. By
default, a 1500 byte MTU is used. This parameter is only relevant
when hardware offload mode is turned on.
The "poll_interval_in_us" module parameter is used to control the rate
at which hardware events are polled, 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, and defaults to 0.
The nForce network driver supports two modes for segmentation offload:
If hwmode=0 (disabled), the "seg_offload" module parameter defaults to
0 (disabled). If hwmode=1 (enabled), the "seg_offload" module
parameter defaults to 1 (enabled).
- seg_offload=0 - disabled
- seg_offload=1 - enabled
TX checksum Offload
The nForce network driver supports two modes for TX checksum offload:
If hwmode=0 (disabled), the "tx_checksum_offload" module parameter
0 (disabled). If hwmode=1 (enabled), the "tx_checksum_offload"
parameter defaults to 1 (enabled).
- tx_checksum_offload=0 - disabled
- tx_checksum_offload_offload=1 - enabled
RX checksum Offload
The nForce network driver supports two modes for RX checksum offload:
If hwmode=0 (disabled), the "rx_checksum_offload" module parameter
0 (disabled). If hwmode=1 (enabled), the "rx_checksum_offload"
parameter defaults to 1 (enabled).
- rx_checksum_offload=0 - disabled
- rx_checksum_offload_offload=1 - enabled
nvsound Module Parameters
There are currently no nvsound module parameters.
Module parameters can be specified either on the command line when
loading the module, or in the module configuration file
(/etc/modules.conf). For example to have the nForce ethernet
driver use throughput optimized mode, add the following to the module
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"
Audio Control Panel
A control panel application is included with the audio driver to
control the features of the nForce audio driver. These features
The audio control panel may be invoked by typing "nvmixer" at the
- Speaker setup
- Master volume control
- Per channel volume control / mute
- Input source selection
- Analog and digital output control
- SoundStorm HW mixing
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
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
the problem may be your System BIOS's plug and play configuration. If
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.
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,
through the menus to find OS Type, and chose "Other". The exact details
System BIOS configuration vary with BIOS vendor, so the screens may not
exactly the same.
Warning: You should write down the original configuration of the
BIOS before changing it. Changing your system BIOS configuration may
adversely affect the operation of the system, and even make it
- Q: How do I extract the contents of the .run file without
actually installing the driver?
A: Run the installer with the --extract-only command line option.
This will create a directory which contains the uncompressed contents
of the .run file.
- Q: How can I see the source code to the kernel interface layer?
A: Kernel interface layer source files for the audio driver are in the
directory of the extracted .run file. The kernel interface layer
source files for the network driver are in the nvnet directory of the
extracted .run file.
- Q: I just upgraded my kernel, and now the NVIDIA kernel module
will not load. What is wrong?
A: The kernel interface layer of the NVIDIA kernel module must be
compiled specifically for the configuration and version of your
kernel. If you upgrade your kernel, then the simplest solution is
to reinstall the driver.
ADVANCED: You can install the NVIDIA kernel module for a non running
kernel (for example: in the situation where you just built and
installed a new kernel, but have not rebooted yet) with the command
line option --kernel-name='KERNEL_NAME', where KERNEL_NAME is what
'uname -r' would report if the target kernel were running.
- Q: Why does NVIDIA not provide RPMs anymore?
A: Not every Linux distribution uses RPM, and NVIDIA wanted a single
solution that would work across all Linux distributions. As
indicated in the NVIDIA Software License, Linux distributions are
welcome to repackage and redistribute the NVIDIA Linux driver in
whatever package format they wish.
- Q: nforce-installer does not work on my computer. How can I
install the driver contained within the .run file?
A: To install the NVIDIA driver contained within the .run file without
using nforce-installer, you can use the included makefile that is
extracted with the --extract-only command-line option. The
makefile for the audio driver is in the nvsound/main directory of the
extracted .run file, and the makefile for the network driver is in the
nvnet directory of the extracted .run file. This
method of installation is not recommended, and is only provided as a
last resort, should nforce-installer not work correctly on your system.
- Q: Can I add my own precompiled kernel interfaces to a .run file?
A: Yes, the "--add-this-kernel" .run file option will unpack the .run
file, build a precompiled kernel interface for the currently running
kernel, and repackage the .run file, appending "-custom" to the file
name. This may be useful, for example, if you administer multiple
Linux machines, each running the same kernel.
- Q: Where can I find the source code for the nforce-installer
A: The nforce-installer utility for the nForce drivers is derived from
the nvidia-installer utility used for the NVIDIA video drivers.
The NVIDIA video driver nvidia-installer utility is released under the
GPL. The latest source code for it is available at:
- Q: My IDE hard drive is running very slowly, how can I enable
A: A kernel patch was added in kernel 2.4.21pre3-ac1 which
enables DMA for the nForce2 IDE controller and should be available in
released 2.4.21 kernel. An alternative to upgrading your kernel is to
use the "hdparm" utility to enable DMA for your hard drive. For
example# hdparm -d 1 /dev/hdX
Where /dev/hdX is the IDE device you wish to enable DMA for.
do this every time you reboot, or add it to an rc script. Some
distributions have a file "/etc/sysconfig/harddisks" where you can
enable this for all hard drives on system boot.
- Q: Does NVIDIA supply a Linux driver for the USB and USB2.0
A: The USB and USB2.0 devices use the industry standard OHCI
interfaces, and will work with the standard Linux USB drivers.
- Q: I've rebuilt the Nforce driver, but when I try to insert
it, I get a message telling me I have unresolved symbols.
A. Unresolved symbols are most often caused by a mismatch
between your kernel sources and your running kernel. They must match
for the nForce driver modules to build correctly. Please make sure your
kernel sources are installed and configured to match your running
- Q: How do I tell if I have my kernel sources installed?
A: If you're running on a distro that uses RPM (Red Hat,
Mandrake, SuSE, etc), then you can use RPM to tell you. At a shell
example% rpm -qa | grep kernel
and look at the output. You should see a package that
corresponds to your 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). If none of the lines seem to
correspond to a source package, then you'll probably need to install
it. If the versions listed mismatch (ex: kernel-2.4.18-10 vs.
kernel-source-2.4.18-3), then you'll need to update the kernel-source
package to match the installed kernel. If you have multiple kernels
installed, you need to install the kernel-source package that
corresponds to your running kernel (or make sure your installed
source package matches
the running kernel). You can do this by looking at the output of "uname
-r" and matching versions.
- Q: When I try to build, I get a message telling me that I
should never try to use system headers. What's wrong?
A: You need to install the sources for your kernel. Please
download and install the appropriate kernel-source package for your
- Q: Does NVIDIA have a Linux driver for 1394 on nForce2?
A: The Linux 1394 driver supports the nForce2 1394 controller
kernel versions 2.4.21 and newer.
- Q: Is the nForce3 IDE controller supported by Linux?
A: nForce3 IDE
controller will exist in kernel 2.4.23 and later
- Q: Are there open source networking and audio drivers for
A: For audio you can use the i810 audio driver. For networking,
it depends on the version of the kernel you are working with. Some
versions of the kernel will have a driver called forcedeth. Older
versions of the driver only support nForce2 while later versions of the
driver will also support nForce3 gigabit Ethernet.
The nforce-installer for the nForce drivers is derived from the
nvidia-installer used for the NVIDIA video drivers. The video
driver nvidia-installer was inspired by the loki_update tool:
The self-extracting archive (aka ".run file") is generated using
Most recent changes at top of list. Each bullet indicates a public
release on NVIDIA web site.
- Changed installation method to use the new self-extracting
installer instead of RPM or tarball
Added support for SoundStorm (Hardware Mixing supported)
Added AC3 pass-through
Added support for ethernet driver statistics and configuration
information through procfs
Added support for 2.6 series kernels
Audio control panel executable is now "nvmixer", not "nvaudio"
- Fixed performance problem in network driver that was causing
stuttering in audio playback
Added support for nForce3 platforms
Added support for x86-64 architecture
Added binary RPMs for SuSE Enterprise Server 8 x86-64
Added audio control panel application
Added 6 channel output, audio input selection, speaker selection, per
volume control, and analog / digital enable to audio driver.
Added GART patch for kernel 2.4.21
- Added kernel patch to support nForce GART
Added "spdif_status" module parameter to audio driver to enable/disable
S/PDIF support for compatability
Fixed bug in audio driver that was causing MSI nForce board to only
use 2 channels
Fixed mmap bug in audio driver causing Quake III to hang.
Fixed RedHat 9 build issue with remap_page_range().
Fixed problem with rebuilding SRPM on RedHat 9.
Added RedHat 9 and Mandrake 9.1 binary RPMs.
- Fixed problem with compiler arguments between gcc3.X and gcc2.X
Changed installation script to use lowest available number when
enumerating network and audio devices in modles.conf
Changed audio driver to be self contained source file based off
Added SPDIF support to audio driver
Updated binary packages for latest releases of RedHat kernels.
Added FAQ section to release notes.
- Added PCI ID support for MCP2 and MCP2 to the i810_audio driver.
Some cleanup of spec file and Makefiles
SRPMs and tar files now use local system's i810_audio.c file,
and complain if it's not there; this makes them more distro
- Changed code to compile properly with gcc3.X and gcc2.X
Added support for Mandrake9.0 and Redhat8.0
nForce2 support for network driver