He estado teniendo serios problemas con el sonido en Ubuntu. Intentaba tocar algún mp3 con mpg123 y recibía un error bastante feo de ALSA. También sucedía con OSS. Pensé que podría estar mala mi tarjeta de sonido. Deshabilité la tarjeta y configuré el sonido on-board que tiene el chipset de mi placa madre. Funcionó bien hasta que volví a tener el problema.
Averiguando un poco descubrí que la tarjeta de TV (módulo saa7134) crea un dispositivo de audio y a veces (parece ser aleatorio) queda en /dev/dsp y otras en /dev/dsp1, quedando mi tarjeta de sonido como principal.
Primero intenté agregando al módulo saa7134 las opciones oss=1 alsa=1 en la configuración de modprobe, pero no tuve buenos resultados.
Entonces recordé udev y pensé que podría crear una regla... y creé esta:
# TV
KERNEL=="dsp*", ID=="0000:00:0a.0", NAME="dsp-tv"
KERNEL=="mixer*", ID=="0000:00:0a.0", NAME="mixer-tv"
# Via
KERNEL=="dsp*", ID=="0000:00:11.5", NAME="dsp"
KERNEL=="mixer*", ID=="0000:00:11.5", NAME="mixer"
Esto permite asignar estáticamente el nombre a cada dispositivo. Y ya no tengo problemas.. ¿habrá una solución más simple?...