Audio: OSS emulation issues
I'm working on a debootstrap installed etch amd64 system; 2.6 kernel, udev
etc. Audio (snd_emu10k1 module, SBLive! card) hasn't been working
consistently - some applications are fine, one gave a warning message, and
one crashed out altogether.
I've worked out that this is all about ALSA vs. OSS: mplayer warned that
/dev/dsp was missing before reverting to ALSA, and flite (text to speech)
failed for that reason. I then found the linux-sound-base package, which
is configured to ALSA, but as that's the recommended setting, I thought
I'd better leave it there.
I should probably submit bug reports for flite and (to a lesser degree)
mplayer. I suppose, ideally, flite would depend on alsa-oss, and
transparently wrap itself when necessary, so the user wouldn't have to
worry about such things. For now, though, I'd just like to get my own
I found a suggestion on the web that I should add a few lines to
/etc/modprobe.conf; as Debian uses modprobe.d instead, I put them in the
new file /etc/modprobe.d/oss-emulation, as follows:
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
I then rebooted, but still got the same issues. When I 'modprobe
snd-pcm-oss' manually, things work OK.
I think what is happening is this: the kernel is waiting for an attempted
access to /dev/dsp etc. in order to load the snd-pcm-oss module; however,
udev is waiting for the module to be created before allowing /dev/dsp etc.
to appear. Because there is no file /dev/dsp, there can be no attempted
access to the appropriate kernel device.
Presumably I need to do something in the udev setup to fix this - either
that, or have the snd-*-oss modules loaded automatically at boot-time.
Where do I put the names to have them loaded automatically?
Unfortunately, the article I read (with the above alias lines) was not
udev-aware, as it told me to mknod the device under /dev (I presume this
doesn't work with udev mounted on /dev, or at least would need to be
redone at every reboot).
Can anyone point me in the right direction to get this set up properly?
Or, indeed, does Debian have one of its usual neat and automatic setup
tricks for this, and have I just missed it?