Re: soundblaster problems in 2.1.74 and 2.1.75

kwrohrer@enteract.com
Mon, 22 Dec 1997 23:07:31 -0600 (CST)


And lo, Russell Coker - mailing lists account saith unto me:
> >When I try to load the sb.o module, I get the following output.
> >/lib/modules/2.1.75/misc/sb.o: init_module: Device or resource busy sound:
> >Device or resource busy
> Run "modprobe sb io=0x220 irq=7 dma=1 dma16=5"
At least gus.o is genteel enough to say you have to specify the irq etc.
on the insmod line. Note that building the Ultrasound support into the
kernel doesn't activate the gus support (forgot to check the values compiled
in?)--cat /dev/sndstat doesn't note any drivers whatsoever.

Once I got gus.o loaded and working, players still hang; strace says
the close command isn't returning (until I control-C the player, e.g.
mpg123); top says they're in the "S" (sleeping) state. Any clues as to
this, or is it known-broken-we're-working-on-it?

In any case, here's what I had to do; feel free to make this complete
and/or prepend it to drivers/sound/Readme.modules; I think that's the
most sensible spot, though it deserves mention somewhere more prominent,
like Documentation/Changes...

-----------------------------------------------------------------------------

Using a loadable sound driver
=============================
As of kernel 2.1.74 or so, the sound driver's behavior as a module has
changed radically. sound.o is now a common utility module, rather than
the container for all compiled sound support. To get my Gravis Ultrasound
working with 2.1.75, I had to:

1) Configure the kernel to build the sound driver, including the GUS support,
as a module. (I didn't try 'Y' for sound and 'M' for GUS.) For other
relevant stuff to do, see the "Building" section, below...

2) Specify options for your soundcard-specific driver in /etc/conf.modules
(or /etc/modules.conf if you've got one of those instead). This saves you
from having to retype them correctly every time you modprobe your sound
support. For example, I added:

options gus io=0x220 irq=12 dma=6

This is what I use; those of you with different cards or different settings
will need to name the right module and specify the right settings.

3) For use with kerneld (a Good Thing(TM)), also add:

alias char-major-14 sound
alias char-major-14 gus

This will make kerneld install the gus module as well as the main sound
module; without it, kerneld just installed basic sound support, which is
useless without a specific card driver (unless you just wanted to cat
/dev/sndstat for the version number)... You might be able to get away
without the first alias, since gus.o does depend on sound.o, but it's nice
to have a working sound driver while you debug depmod problems. And again,
don't forget to change out "gus" for your sound card module of choice.

New (and Reconditioned) Parameters
----------------------------------
The sound card modules, and the parameters they take, are known to include:
gus Gravis Ultrasound &c
io=0x220 irq=15 dma=6
(I don't know the keyword for the second DMA channel; there
is only the one IRQ needed under these drivers AFAIK)

sb true Creative Labs Sound Blaster hardware-compatibles
io=0x220 irq=7 dma=1 dma16=5
(thanks to Russell Coker, though these values may be
non-default)

FIXME ...

Questions about my experiences, and blame for this documentation, can
be attributed to Keith Rohrer (kwrohrer@enteract.com). All rights
reversed, all disclaimers made, etc... Someone else wrote the following,
which apparently nobody updated:

-------------------------------------------------------------------------------

Keith