[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Audio: OSS emulation issues



Hi,

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 machine working.

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?

Cheers,

Nikhil.



Reply to: