Installing SoundBlaster 16 PCI on FreeBSD 3.2?

Mark Ovens marko at
Sat Sep 23 11:36:17 BST 2000

On Sat, Sep 23, 2000 at 11:04:54AM +0100, David Marsh wrote:
> On 23-Sep-00 Mark Ovens wrote:
> > On Sat, Sep 23, 2000 at 01:50:27AM +0100, David Marsh wrote:
> >> 
> > 
> > I can't be certain that this is OK for 3.2, but make sure you have
> > 
> >   device pcm
> > 
> > in your kernel config file and comment out all the sb* stuff, rebuild
> > your kernel, and let us know how you get on.
> /usr/sbin/config gives a syntax error when I include 'device pcm' just
> by itself.

Ah yes, ``device pcm'' on its own only works in 4.x. Here's something I
found in the -questions mail archives that might help you:

---- begin included message ----------

From: bill at (T. William Wells)
To: freebsd-questions at
Subject: SB16 config for 3.2
Message-ID: <7n1ba7$26au$1 at>
Date: Tue, 20 Jul 1999 04:18:01 -0400
Sender: owner-freebsd-questions at FreeBSD.ORG
Precedence: bulk
X-Loop: FreeBSD.ORG

In my last message, I had said "ViBRA16C". That was a mistake. The
'C is the *old* SB16 card, for which things should work without
anything special. The 'X, which is what I *actually* have, is
different. There are two basic differences between the cards. The
old card uses two DMA channels, one 8 bit and one 16 bit. The new
card also can use two DMA channels, but both are 8 bit. On the old
card, the microphone is evidently turned "up" by default; the new
card, you have to turn it up yourself. The pcm driver docs also
say that the new card won't do full duplex but I haven't tested

There are plenty of other descriptions of configuring the old SB16
card, so I won't be describing that here. However, here is what I
did for the new one:

In my kernel configuration:

device pcm0 at isa? port? tty irq 5 drq 1 flags 0xB

Note the flags at the end. They're saying that I'm using DMA
channel 3 as the secondary DMA channel.

In /boot/kernel.conf

pnp 1 0 os enable port0 0x220 port1 0x300 port2 0x388 irq0 5 drq0 1 drq1 3

I'm using port 0x300 instead of the default 0x330. That's because
I also have an Adaptec 1540 SCSI controller in my machine. If
0x330 is free, you might as well use it.

You also need to set up the devices in /dev. As root, cd to /dev
and enter "./MAKEDEV snd1". Yes, 1. The pcm driver starts
numbering from 1, for reasons unclear to me.

Finally, after your system is booted, run the command
"/usr/sbin/mixer mic 100". That turns up the microphone. To run it
automatically at boot, put the command into a file in
/usr/local/etc/rc.d, say, "" (and be sure to make it

I have had my system hang with this configuration. This occured
when I was reading from /dev/audio for a long time. My guess is
that it screwed up the DMA for my SCSI controller. I'll be looking
into this when I have some spare minutes....

---- end included message ----------

		4.4 - The number of the Beastie
51.44°N  FreeBSD - The Power To Serve
2.057°W  My Webpage
mailto:marko at      

More information about the Ukfreebsd mailing list