Ekuliak |
02-15-2006 11:16 PM |
No Sound, NFORCE Drivers, Firefox?
Ok... This whole issue seems a bit complicated. I tried installing NForce drivers today. That seemed to fail. Now I have no sound.
The reason I tried installing the drivers is because firefox rarely ever gives me sound. It will usually give me sound when I first boot up until I run Amarok or Kaffine or some other program with sound. I also had issues running UT2k4 (same thing, sound rarely works).
I'm hoping to be able to listen to both (and just pause AmaroK when I need to). I'm hoping installing the audio drivers for my mobo will work.
It's NForce 3 250.
I'm using Mandriva 2006.
Here's the "Release Notes" for NForce. I tried following those, but I might have missed something.
Code:
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:
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
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.
For distributions based on a 2.4 series kernel, the module configuration file is typically called /etc/modules.conf.
For distributions based on a 2.6 series kernel, the module configuration file is typically called /etc/modprobe.conf. Some distributions use a subdirectory, /etc/modprobe.d/ , to hold individual configuration files for sound modules, etc.
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 3, Red 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 3, Red 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:
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 mode. The nForce network driver supports two hardware modes:
hwmode=1 - off
hwmode=2 - on
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:
optimization=0 - Network throughput optimization
optimization=1 - CPU load optimization
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:
autonegotiate=0 - disabled
autonegotiate=1 - enabled
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:
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 "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:
media=0 - auto
media=1 - RGMII
media=2 - MII
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:
seg_offload=0 - disabled
seg_offload=1 - enabled
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:
tx_checksum_offload=0 - disabled
tx_checksum_offload=1 - enabled
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:
rx_checksum_offload=0 - disabled
rx_checksum_offload=1 - enabled
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:
Speaker setup
Master volume control
Per channel volume control / mute
Input source selection
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:
Download and install Qt 3.1 or later libraries for your Linux distribution, so that the pre-built nvmixer application works correctly.
Download the source code for nvmixer from NVIDIA and build it using a Qt version that is readily available for your Linux distribution (3.1 or later is required). The nvmixer source code package is available for download via anonymous FTP at:
ftp://download.nvidia.com/linux/nforce/nvmixer/nvmixer.tgz
Pre-requisites and instructions for building nvmixer are included in the source code package.
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.
Here's my etc/modprobe.conf file they had me edit:
Code:
alias eth0 eth1394
# alias sound-slot-0 snd-intel8x0
install scsi_hostadapter /sbin/modprobe sata_nv; /sbin/modprobe it821x; /sbin/modprobe sata_sil; /bin/true
remove snd-intel8x0 /sbin/modprobe -r snd-pcm-oss; /sbin/modprobe --first-time -r --ignore-remove snd-intel8x0
install snd-intel8x0 /sbin/modprobe --first-time --ignore-install snd-intel8x0 && { /sbin/modprobe snd-pcm-oss; /bin/true; }
install usb-interface /sbin/modprobe ohci-hcd; /sbin/modprobe ehci-hcd; /bin/true
alias ieee1394-controller ohci1394
alias eth1 sk98lin
alias sound-slot-0 nvsound
alias snd-intel8x0 off
alias i810_audio off blacklist audio
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 nvsoundblacklist audio
|