- These Contents
- Overview
- Package Availability
- Minimum Requirements
- Licensing
- What The Installer Contains
- What The Installer Does
- Installation
- Configuration
- Module Parameters
- Audio Control Panel
- Troubleshooting
- Frequently Asked
Questions
(FAQ)
- Acknowledgments
- Change List
The nForce chipset contains a number of hardware devices that can
be run
under Linux. Along with a display processor, the chipset includes a
network
device (MAC), audio hardware, storage controllers (IDE and SATA), and
an OHCI USB
controller.
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
Please be sure read the TroubleShooting section first.
Make sure to include nforce-bug-report.log in the bug report by
running nforce-bug-report.sh.
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.
At the current time, the nForce drivers require a 2.4 or 2.6 series
kernel.
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:
--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 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.
After
the installation of the drivers, make sure the following
lines are in the modules configuration file (it will be named
/etc/modules.conf
on most current distributions that provide a 2.4 series kernel, and
/etc/modprobe.conf on most current distributions that provide a 2.6
series kernel):
- alias eth0 nvnet
- alias sound-slot-0 nvsound (may be snd-card-0 on some
distributions)
If there is an entry for the i810_audio, snd-intel8x0, or nvaudio
driver (an
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')
Module Parameters
nvnet Module Parameters
The nForce network driver supports the following optional parameters:
- hardware offload mode
- optimization
- negotiation mode
- speed and duplex
- media
- max TX packets
- max RX packets
- MTU
- 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:
- hwmode=0 - off
- hwmode=1 - on
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.
The default hardware offload mode will depend on the network
controller. The hardware offload mode can be specified by
supplying the module parameter "hwmode".
Optimization
The nForce network driver supports two optimization modes:
- optimization=0 - Throughput optimization
- optimization=1 - CPU optimization
CPU optimization mode reduces the CPU utilization by using interrupt
moderation.
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
"optimization".
Negotiation Mode
The nForce network driver supports two negotiation modes:
- autonegotiate=0 - disabled
- autonegotiate=1 - enabled
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.
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:
- 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 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 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
duplex.
Media
The "media" module parameter can be used to specify the interface
media. This module parameter supports the following values:
- media=0 - auto
- media=1 - RGMII
- media=2 - MII
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.
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
will
be used.
MTU
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.
Poll Interval
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.
Segmentation Offload
The nForce network driver supports two modes for segmentation offload:
- seg_offload=0 - disabled
- seg_offload=1 - enabled
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).
TX checksum Offload
The nForce network driver supports two modes for TX checksum offload:
- tx_checksum_offload=0 - disabled
- tx_checksum_offload_offload=1 - enabled
If hwmode=0 (disabled), the "tx_checksum_offload" module parameter
defaults to
0 (disabled). If hwmode=1 (enabled), the "tx_checksum_offload"
module
parameter defaults to 1 (enabled).
RX checksum Offload
The nForce network driver supports two modes for RX checksum offload:
- rx_checksum_offload=0 - disabled
- rx_checksum_offload_offload=1 - enabled
If hwmode=0 (disabled), the "rx_checksum_offload" module parameter
defaults to
0 (disabled). If hwmode=1 (enabled), the "rx_checksum_offload"
module
parameter defaults to 1 (enabled).
nvsound Module Parameters
There are currently no nvsound module parameters.
Configuration
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
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"
Audio Control Panel
A control panel application is included with the audio driver to
control the features of the nForce audio driver. These features
include:
- Speaker setup
- Master volume control
- Per channel volume control / mute
- Input source selection
- Analog and digital output control
- SoundStorm HW mixing
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.
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
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,
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.
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
unbootable.
Installer FAQ
- 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
nvsound/main
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
utility?
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:
ftp://download.nvidia.com/XFree86/nvidia-installer/
Driver FAQ
- Q: My IDE hard drive is running very slowly, how can I enable
DMA mode?
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
the final
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:
example% su
Password: ******
example# hdparm -d 1 /dev/hdX
Where /dev/hdX is the IDE device you wish to enable DMA for.
You must
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
devices?
A: The USB and USB2.0 devices use the industry standard OHCI
and EHCI
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
kernel.
- 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
prompt, type:
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
kernel
- Q: Does NVIDIA have a Linux driver for 1394 on nForce2?
A: The Linux 1394 driver supports the nForce2 1394 controller
in
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
nForce hardware?
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.
Acknowledgments
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:
(http://www.lokigames.com/development/loki_update.php3).
The self-extracting archive (aka ".run file") is generated using
makeself.sh: (http://www.megastep.org/makeself/).
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
channel
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
i810_audio driver.
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
independent.
- Changed code to compile properly with gcc3.X and gcc2.X
Added support for Mandrake9.0 and Redhat8.0
nForce2 support for network driver