# Nforce2 + Alsa 0.90r6 Patch

## SQLBoy

This isn't that great of a tutorial but to get Alsa working with your Nforce2 card you need to add the PCI ID information into the intel8x0.c file.

patch the  alsa-driver-0.9.0rc6/alsa-kernel/pci/intel8x0.c file with this patch.

```

+++ intel8x0.c  2002-12-28 15:41:55.000000000 -0500

@@ -53,6 +53,7 @@

                "{Intel,MX440},"

                "{SiS,SI7012},"

                "{NVidia,NForce Audio},"

+               "{NVidia,NForce2 Audio},"

                "{AMD,AMD768},"

                "{AMD,AMD8111},"

                "{ALI,M5455}}");

@@ -127,6 +128,10 @@

 #ifndef PCI_DEVICE_ID_NVIDIA_MCP_AUDIO

 #define PCI_DEVICE_ID_NVIDIA_MCP_AUDIO 0x01b1

 #endif

+#ifndef PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO

+#define PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO        0x006a

+#endif

+

 enum { DEVICE_INTEL, DEVICE_INTEL_ICH4, DEVICE_SIS, DEVICE_ALI };

@@ -383,6 +388,7 @@

        { 0x8086, 0x7195, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 440MX */

        { 0x1039, 0x7012, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_SIS },   /* SI7012 */

        { 0x10de, 0x01b1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* NFORCE */

+       { 0x10de, 0x006a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* NFORCE2 */

        { 0x1022, 0x746d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD8111 */

        { 0x1022, 0x7445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* AMD768 */

        { 0x10b9, 0x5455, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALI },   /* Ali5455 */

@@ -2298,6 +2304,7 @@

        { PCI_DEVICE_ID_INTEL_ICH4, "Intel 82801DB-ICH4" },

        { PCI_DEVICE_ID_SI_7012, "SiS SI7012" },

        { PCI_DEVICE_ID_NVIDIA_MCP_AUDIO, "NVidia NForce" },

+       { PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO, "NVidia NForce2" },

        { 0x746d, "AMD AMD8111" },

        { 0x7445, "AMD AMD768" },

        { 0x5455, "ALi M5455" },

```

now, recompile Alsa-driver and modprobe snd-intel8x0, walla, Alsa sound. The nvaudio driver is a total waste of time. I can't play any game for more than 5 minutes without a hard lockup.  This solved that problem.

With that patch and the latest nvnet driver your Nforce2 board should be good to go.   I updated from an A7V133 to this board with two OCZ 512 cas2 EL DDR sticks.  Its bad ass.

----------

## taskara

cool.. wanna provide a step by step for others ? that would be sweet.. maybe put it in docs and tips  :Very Happy: 

----------

## SQLBoy

```

man patch

```

thats how I learned...but if you don't want to learn how to use the gnu patch tool, the patch file itself is pretty easy to figure out.

Anytime you see a + as the first character, that means that thats a line you have to add.  All the stuff around is just so the + gets put in the right place.  So you could just go searching though the file and cutting and pasting the additions.

To compile I edited the alsa-driver ebuild to point to the new alsa-driver package I made then emerged it.

----------

## dwende

I saw your suggestion for getting alsa up and running with nforce.

It's a bit beyond me though (still a bit of a newbie with gentoo).

I have Epox 8RDA+ motherboard and assume the driver should

be (snd-)intel8x0

I emerged alsa-drivers and tried to modinfo and modprobe

the above driver but got:

 modinfo snd-intel8x0:

 modinfo snd-intel8x0

filename:    /lib/modules/2.4.20/kernel/sound/pci/snd-intel8x0.o

description: "Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; SiS 7012; Ali 5455"

author:      "Jaroslav Kysela <perex@suse.cz>"

license:     "GPL"

parm:        index int array (min = 1, max =  :Cool: , description "Index value for Intel i8x0 soundcard."

parm:        id string array (min = 1, max =  :Cool: , description "ID string for Intel i8x0 soundcard."

parm:        enable int array (min = 1, max =  :Cool: , description "Enable Intel i8x0 soundcard."

parm:        ac97_clock int array (min = 1, max =  :Cool: , description "AC'97 codec clock (0 = auto-detect)."

parm:        joystick_port int array (min = 1, max =  :Cool: , description "Joystick port address for Intel i8x0 soundcard. (0 = disabled)"

parm:        mpu_port int array (min = 1, max =  :Cool: , description "MPU401 port # for Intel i8x0 driver."

and modprobe returned:

/lib/modules/2.4.20/kernel/sound/pci/snd-intel8x0.o: init_module: No such device

Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.

      You may find more information in syslog or the output from dmesg

/lib/modules/2.4.20/kernel/sound/pci/snd-intel8x0.o: insmod /lib/modules/2.4.20/kernel/sound/pci/snd-intel8x0.o failed

/lib/modules/2.4.20/kernel/sound/pci/snd-intel8x0.o: insmod snd-intel8x0 failed

I do not know where the file is that you recommend to patch?

Is there any easier way 

 :Very Happy: 

thanks[/list][/quote]

----------

## SQLBoy

Well, I wouldn't bother actually.  Now that I've tested the ALSA i180 driver with the nforce2 for a couple days.  I get strange lockups with sound with games and xmms and stuff.  Plus, the sound quality sucks ass.  Their might be some other places in ALSA code where the Nforce2 needs to be configured.  I don't know.

What I ended up doing was buying an i810 driver from http://www.opensound.com/ for $15.00.  The quality is so much better than anything I've ever heard from ALSA or from the linux kernel drivers, plus, its stable.  I haven't had a lockup or crash in a game since I started using it.  $15.00 is nothing compared to the frustration of bad drivers.

----------

## dwende

Thanks for the tip regarding oss driver.

Just downloaded trial version and if it works

then it's definitely worth the $$.

----------

## SQLBoy

I just released that since I already owned OSS from back when I had an AWE64, it cost me $15 to buy the i810 driver.  If you don't already own an OSS license, its $35.  $20 for OSS, $15 or more for specific drivers.

But, really, its still worth it.  the one thing I enjoy about commercial apps is the support and the OSS people have kick ass support.  Its free.  Plus you get free upgrades till like 2006.  They have answered every single one of my emails in like 8 hours or less.  I had a problem getting UT2003 to work and I emailed them my config file late last night after work and when I came in today they had a fix for me.

----------

## taskara

can you play sounds from multiple sources ? ie be playing music through xmms and then still get sound when you play ut2003 at the same time ?

----------

## SQLBoy

The OSS driver comes with some virtual mixer thingy...sorta like extra software sound cards that act just like physical sound cards.  So with the nforce you get dsp0, dsp1 anyway then you get dsp2,3,4,5 which have mixer2,3,4,5 as well. 

So...basically.  I play games with /dev/dsp1 and artsd runs on /dev/dsp0.   Xmms is configured to use /dev/dsp2 and /dev/mixer2.

So, its possible to play UT2003 and a CD at the same time, no problem.

----------

## bart

Thanks, this works perfectly!

----------

## taskara

I am trying this sound driver, and I have lag when playing ut2003.

I didn't have lag when I was using nvidia's driver..

I'll try alsa again..

----------

## SQLBoy

If you have lag with the OSS driver and Ut2003. its a known problem with ut2003 and OSS.

To fix it.

cd /dev

rm dsp

ln -s dsp1 dsp

no start Ut2003, problem solved.

----------

## Forge

ALSA 0.9r6 (cvs), no issues, 5.1, free (speech and beer), no UT2K3 problems.

----------

