The three components of the motherboard that you are likely to need special (usually binary) drivers from outside the kernel for are graphics, network and sound. These are described in more detail below. MattBrown has a Gigabyte GA-7N400Pro motherboard and CraigBox has a Soltek 75-FRN-RL and this page is based mostly on experiences with those.
First of all download the most recent nvidia driver package from NVIDIA's NForce driver archive.
You need NVIDIA AGPGART support, and you get this by using 2.4.22+ or 2.6.3+ Some people have experienced performance issues with 8x AGP using kernels before 2.6.3. See RadeonNotes for more on getting an ATI card to work.
To get an nvidia card working, see their http://www.nvidia.com/ site for their latest graphics driver (currently 1.0-5336 as of March 6, 2004).
The ForcedEth, driver is a reverse engineered, open source ethernet driver for the onboard NVIDIA lan. It's very stable and comes with 2.4.24+ and 2.6.3+ kernels. This means you do not need to patch your kernel if you are running one of these kernels!
If you want to use nvidia's binary driver, it's called nvnet and is supplied by nvidia in the package above. This seems to work fine and gives reasonable performance. Sometimes you'll notice, when doing large transfers over your LAN, that your CPU usage goes through the roof and eth0 generates up to 500,000 interrupts a second. The nvnet driver is to blame; you can either load the module with 'optimizations=1' to optimize for CPU usage instead of throughput (interestingly, this doesn't seem to affect throughput at all)
If you're using kernel 2.6, you will have to patch the NVidia source to make nvnet run.
The nvnet driver claims to support WOL, but doesn't. The forcedeth driver supports WOL, but seems to disable it by default. You need a program called ethtool to set the WOL status each time you boot. See WakeOnLanNotes for more details.
Provided you have your motherboard correctly setup (see below) you should be able to use the kernel supplied OSS i810_audio module to get sound using the nvidia chipset. You can get better facility out of the nvaudio module but it's hard to get going.
If you're using ALSA, you might want something like this (/etc/modprobe.conf in Linux 2.6):
# ALSA portion alias char-major-116 snd alias snd-card-0 snd-intel8x0 # module options should go here # OSS/Free portion alias char-major-14 soundcore alias sound-slot-0 snd-card-0 alias sound-slot-1 snd-card-0 # card #1 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss options snd-intel8x0 mpu_port=0x330
You can either be using an analog speaker setup, or a digital speaker setup. While the above configuration is sufficient for analog speakers, the following additional notes are applicable to a digital speaker setup.
The digital setup will be using the motherboard's S/PDIF output. The ALSA card 0, device 0 (playback) provides the analog outputs. However, the ALSA card 0, device 2 (playback) provides the S/PDIF (i.e. IEC958) output.
You will want to direct ALSA's OSS emulation device 0 (/dev/dsp0, /dev/adsp0, etal) to ALSA device 2, so that applications using the OSS API will send their sounds to your nifty digital speaker system. To accomplish this mapping of OSS device 0 to ALSA device 2, add the following to your modules.conf (modprobe.conf in Linux 2.6) file:
options snd-pcm-oss dsp_map=2 adsp_map=2
In addition, you might want to configure alsa-lib to provide software mixing and rate conversion, with the following /etc/asound.conf file:
### /etc/asound.conf for nforce2 apu ### (analog out, from http://www.wlug.org.nz/NForce2Notes) pcm.!default { type plug slave.pcm "nforce" } pcm.nforce { type dmix ipc_key 1024 slave { pcm "hw:0,0" period_time 0 period_size 1024 buffer_size 4096 rate 48000 } }
### /etc/asound.conf for nforce2 apu ### (digital out, from http://www.wlug.org.nz/NForce2Notes) pcm.nforce-hw { type hw card 0 } pcm.!default { type plug slave.pcm "nforce" } pcm.nforce { type dmix ipc_key 1234 slave { pcm "hw:0,2" period_time 0 period_size 1024 buffer_size 32768 rate 44100 } }
While the above alsa-lib "nforce" device is limited to 2 channels, it does provide software audio mixing. This nicely handles the mixing of audio from multiple applications.
In addition to the above configuration notes, here are a few usage notes to keep in mind:
With the above /etc/asound.conf xmms (1.2.8) will happily use its alsa-xmms (0.9.12) output plugin when its configured to use the "nforce" device instead of its default ALSA device. Similarly, by using the alsa9:nforce audio device mplayer (0.92) will also happily generate downmixed stereo S/PDIF output.
These nforce2 S/PDIF ALSA usage notes are current as of ALSA 1.0.2 (circa Feb/2004). The above config was tested with an unpatched linux kernel 2.6.3 (alsa-driver 1.0.2c) on an ABIT NF7-S rev2 optically S/PDIF connected to a Cambridge Sound Works DTT3500 Digital Home Speaker System.
I found these invaluable files within ALSA's Documentation directory: ALSA-Configuration.txt and OSS-Emulation.txt.
If you're running Linux 2.6, you will want to use the ohci-hcd USB module, in a stanza in modprobe.conf like so:
alias usb-controller ohci-hcd alias usb-controller1 ehci-hcd
The ATA100 support for nforce2 boards is mature in kernel versions 2.4.24 and 2.6.3. Just be sure to enable the kernel's nforce2 IDE driver.
The 2.4.25 and 2.6.3 kernels support nforce2 boards' ACPI (Advanced Configuration & Power Interface) implementation. With ACPI and its thermal zone support enabled, userspace programs (e.g. gkrellm) can display the temperature of the CPU die.
The 2.4.25 and 2.6.3 kernels support nforce2 boards' APIC. However, due to a confusing hardware? bug (the C1 disconnect bug) most nforce2 boards frequently freeze when the kernel's APIC/APIC-IO support is enabled. Here is a website that provides some more details: http://atlas.et.tudelft.nl/verwei90/nforce2/index.html
The word on the linux kernel mailing list is that shuttle's nforce2 boards have a recent BIOS update that addresses their APIC freeze issue. While recent progress seems to be happening, my ABIT NF7-S (rev2) board still freezes with kernel 2.6.3
10-May/2004; kernel 2.6.6 was released and contained fixes for the C1 disconnect (APIC) freeze and for the mapping of the timer interrupt.
The GA-7N400 is a Gigabyte Socket A motherboard based on the nForce2 chipset. I had a few things catch me out as I got it working with linux.
Other than that it seems to be a fairly good motherboard. The nForce chipset was a little bit more work to get going under linux that I would have liked, but it was not hassle free to set it up under windows either. I guess you get what you pay for.
2 pages link to NForce2Notes:
lib/blame.php:177: Warning: Invalid argument supplied for foreach() (...repeated 4 times)
lib/plugin/WlugLicense.php:99: Warning: Invalid argument supplied for foreach()
lib/plugin/WlugLicense.php:111: Notice: Undefined variable: ignore_authors