From the ALSA wiki
|The FAQs have been reorganized. The new location of this question is FAQ#I configured dmix but still get unable to open slave or Device or resource busy|
I configured dmix but still get "unable to open slave" or "Device or resource busy"
If you get something similar
ALSA lib pcm_dmix.c:864:(snd_pcm_dmix_open) unable to open slave snd_pcm_open: Device or resource busy (default)
and you believe that you have DmixPlugin active (or you have a recent ALSA driver which activates is automagically) then it is possible that some program uses your /dev/dsp exclusively. The Alsa kernel level OSS emu does not provide mixing in software.
Another reason might be an ALSA program using a "hw" device directly. One can override the default device to use DMIX (which recent ALSA distributions do), but every program can still again override this default setup and use devices exclusively (one prominent example is jackd which does it on purpose. There's many more programs though that do this, due to programming errors and laziness of the authors coupled with moderately bad ALSA documentation).
For example under Debian/GNU Linux it is possible that you have installed ESD for /dev/dsp instead of ALSA; replace libesd0 with libesd-alsa0.