sound works, but how?

Chuck Robey chuckr at
Wed Jan 9 11:44:10 PST 2008

Hash: SHA1

Stuart Barkley wrote:
> On Tue, 8 Jan 2008 at 18:39 -0500, Chuck Robey wrote:
>> Anyhow, I have a Motherboard with a AD1988b sound chip (it's
>> hda/Azalia). I have both the sound, snd_hda, and the oss sound kld'd
>> in. and an ossinfo seems to like things,
> Are you trying to use the FreeBSD sound system or the OSS sound system
> (  It sounds like you might be using the OSS
> drivers (from the later reference to /dev/oss/hdaudio0/pcm0).

This is going to sound like I'm being cute, but believe me, I'm not ... I
don't know what it means to use the snd_hda, I mean, when I run this alone,
I see no sound devices pop up for me to vector sound in/out to.  Because of
that, I went ahead and also ran oss.  If you can tell me how to run the
snd_hda alone, I will try it immediately.

>> As a GUI, I run gnome, and things like all the various gnome beeps,
>> blips and moans come out as designed, so I think that a lot of sound
>> works.
> Some of the GUIs will grab /dev/dsp preventing other applications from
> using it at the same time.  Is esound (esd) running?  Does anything
> have /dev/dsp (or /dev/oss/hdaudio0/pcm0) open?  You might try:
>     # lsof | egrep -i "dsp|pcm"

OK.  lsof gave me the return:
gam_serve 28160 chuckr  390r    VREG        0,104       2255 2008768

I think that's not opening pcm or dsp directly, but I found the process
owned by gam_server, and sent it a HUP, but that only resulted in 3
gam_server processes.  Trying to kill them gave me 5 gam_servers, after
which I abandoned that strategy.  Anyhow, lsof didn't show anything opening
 pcm or dsp directly.

> The FreeBSD drivers now support virtual channels which really helps
> deal with multiple applications all wanting to bleep and groan.  I put
> the following in /etc/sysctl.conf:
>     hw.snd.maxautovchans=8
>     hw.snd.targetirqrate=30
>     hw.snd.verbose=2

Man, I really hate to play with things that I don't know how they work.
The only docs I have been able to find on any of the vchan stuff is that
section 7.2.3 of the manual, which is a whole long way from being complete.
 Even giving a really complete discription of the sysctl oids inside hw.snd
would be helpful.  Like, I just tried doing "sysctl -a | grep hw.snd" and
sysctl tells me it hasn't got any such oid.  Great.

I have no docs, and sysctl tells me it hasnt' any such oid.  I'm afraid if
I just experiment blindly in /etc/sysctl with what you're showing me, I
might be blowing things up, but I don't see a lot of choice.

You know, when I tried running sound and snd_hda alone, I found no sound
type devices in /dev.  the snd_hda man page doesn't tell me which ones to
look for, could yo umaybe offer me some help in that direction?  I begin to
wonder if I shouldn't be runnig snd_hda and oss together.

Maybe, I am going to have to sit and read all the code.

> I don't know if the OSS drivers support this functionality.
>> My problem is, no other sound playing works now.  For instance, I
>> used to be able to play mp3's with either xmms or mpg123, but now,
>> they neither of them work. I've experimented with a pretty wide
>> array of sound tools, nothing works.  The errors come in two flavors
>> ... mostly, they complain that they weren't able to open the
>> /dev/dsp0 which seems fine, it's a softlink here to
>> /dev/oss/hdaudio0/pcm0,
> Without virtual channel support this is the type of message you will
> see if something already has the sound device open (under any of its
> various names).
>> [...]
>> Am I using the right device, which is that dsp0 link, which is
>> created by the oss driver? is that device able to be opened by both
>> the GUI and othjer progs at the same time?
> In general the best device to try is /dev/dsp (even if it doesn't show
> as a file in /dev).
> Without the FreeBSD virtual channel support the FreeBSD drivers will
> only allow a single application to open the device at a time.
>> Seems stupid not to allow the GUI to share the device, right?
> It takes something to mediate the various sample rates, data bit
> depths and mixing the digital data streams from multiple applications.
> Audiophiles may not like the simple sample rate conversion performed
> and many prefer not having that behavior on their high end devices.
> FreeBSD virtual channels does this and doesn't require special support
> in every application.  I've been a much happier camper since this
> support has stabilized.
> esound is another thing which attempts to do this, but all
> applications need to be built against it.  It's possible you built
> some ports before you built gnome and that they didn't all get rebuilt
> with esound support.
>> Am I right to run both snd_hda and the oss hda modules both at the
>> same time?  Or should I use oss alone?
> I suspect you should only be using one or the other.  I have not
> recently tried the OSS drivers.
>> I've tried this both as a regular user and as root, to get past the
>> permission problem (I wasn't sure) but could it still, somehow, be a
>> permission problem?
> You should also try without any GUI running.  Either run from a
> console window or ssh into the system from another system.  mpg123
> will run from the command line.  With the virtual channel support you
> should be able to run mpg123 in two different terminal sessions
> playing two different files.
> Stuart Barkley

Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla -


More information about the freebsd-multimedia mailing list