OSS/Linux Sound Drivers

Summary:
These non-free drivers have saved me TONS of time. $20 USD well spent.

Find them at: http://www.opensound.com/

The Details:

Like many people, when I first got into linux years ago, configuring soundcards was a black art. I spent endless hours checking settings, rebooting, trying modprobes, recompiling kernels till hell would not have it. About two years ago I happened on the 4front Technologies/OpenSound website.

I downloaded the free eval of their OSS package to see if my OPTi 925 sound card would ever work in Linux.  Its a reasonably sized 747Kbyte download.  Its a simple gzipped tar file that you extract and then run the resulting binary.  Its a binary that self extracts itself, and by default installs into /usr/lib/oss.  Its very similar to the netscape install, where the program requires you to su to  root and then does everything else automagically. My expected ./configure; make; make install; sequence is not required. Its a fairly intuitive text-based menu interface.  Works fine in rxvt/xterm as well as the console.

By default, the installation program tries to do a hardware autodetect.  To their credit, the install program warn you twice that it may crash your machine. It never has anywhere I ever tried it.  Then again neither has isapnp and its brothers.

The primary magic of this software is its hardware autodetection. It handles PNP and ISA sound devices with ease.  I've used it successfully with several versions of linux, several distribuitions on three separate machines.  In each it works flawlessly.  So well, in fact, when the demo period ran out, I paid my $20, so I would not have to try to get sound working in linux proper.

One of the things I love about Linux is loadable device drivers.  I've had 2.0.36 up for weeks and just tried 2.1.129.  Once it was up and I was satisfied, I downloaded the new tar file, ran the installer, and typed soundon, and viola, sound worked, no reboots. (try that Micro$haft).

One caveat:  Compile your kernel with NO sound options configured at all. They apparently confuse OSS/linux.  It warns you if you did.

In order,
I first tried it on an No-name Intel VX motherboard/Opti925 PNP  no-name card, and a Cyrix 150+ cpu.
Slackware 3.0 then later a Redhat 4.2 distro. 2.0.13 -> 2.0.21 kernel versions.

Hardware detection was dead on, installation took 3 minutes.

Then I upgraded that machine to an AcerLabs TXPro motherboard with an Intel P200MMx and a Yamaha OPL3+ PNP card.  Slack 4.2, 5.0 and later 5.1 distro. 2.0.21->36 kernels.
Again perfect, including the SoftOSS wave table synth driver.

Lastly I tried it with my AcerLabs TXPro motherboard with an Cyrix M2/PR 200 and a  real Non PNP soundblaster 16 card. Redhat 5.1, 5.2 distros.  Kernel version 2.0.34 -> 36 and 2.1.129.

Again perfect.

The runtime configuration of the card is quite good as well :
Essentially it installs a script in /usr/local/bin that starts everthing up
So you need only call that in rc.local and you are away to the races.
The output of /dev/sndstat is interesting.  A lot of devices here:

[root@adamant /root]# cat /dev/sndstat
OSS/Linux 3.9.1i (C) 4Front Technologies 1996-1998

License serial number: N02622991
Options:
This copy of OSS is licensed to Jay Thorne

Kernel: Linux adamant.kesoftware.com 2.1.129 #3 Mon Nov 23 14:01:46 PST 1998 i686
Build: 2.1.129-UP

Card config:
SoundBlaster 16 at 0x220 irq 5 drq 1,5
SB MPU-401 at 0x330 irq 5
OPL-2/OPL-3 FM at 0x388
Software mixing (audio)

Audio devices:
0: Sound Blaster 16 (4.13) (DUPLEX)
1: SB secondary device (DUPLEX)

Synth devices:
0: Yamaha OPL-3
1: SoftOSS v1.2

Midi devices:
0: Sound Blaster 16

Timers:
0: System clock
1: SoftOSS

Mixers:
0: Sound Blaster
1: SoftOSS
[root@adamant /root]#

Same with /proc/modules

softsynth              68576   0
audiobuf               10376   0 [softsynth]
opl3                   12980   0
sb                     31592   0
uart401                 6464   0 [sb]
midi                   26728   0 [softsynth opl3 sb uart401]
soundbase             478496   0 [softsynth audiobuf opl3 sb uart401 midi]
sndshield               2200   0 [softsynth audiobuf opl3 sb uart401 midi soundbase]
tulip                  18928   1 (autoclean)

So the system is dramatically bigger than the standard linux sound drivers.  This is the price you pay.  Not for low memory
machines.

All in all, a stunningly easy to install universal driver for sound cards. For $20 USD.  Not bad, in my opinion.