sábado, 5 de noviembre de 2011

Alsamixer: No se pueden cargar los controles del mezclador

Situación:

Ordenador ajeno. Windows va un poco lento y tengo un DVD de Molinux 6.0 "Zoraida", la distro del Gobierno de la Comunidad de Castilla-La Mancha, basada en ubuntu 10.04.

Lo usaré en modo Live. Unos minutos después... Oh NOOO! ¡No funciona el sonido!

Abro una terminal y ejecuto:

$ alsamixer

Con la esperanza de que todo sea cosa de subir algún nivel o de activar algún canal. Pero aparece este mensaje:
no se pueden cargar los controles del mezclador: Argumento inválido

Lo primero que hago es mirar si realmente tengo una tarjeta de sonido:

$ lspci |grep -i audio

Que me devuelve:

00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)

También echo un vistazo a /proc/asound/...

$ cat /proc/asound/cards /proc/asound/modules

0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xfdff8000 irq 16
0 snd_hda_intel

¿Entonces, qué es lo que falla? La verdad es que snd-hda-intel soporta muchas tarjetas de audio parecidas pero diferentes. Voy a buscar el codec:

$ cat /proc/asound/card0/codec* |grep -i codec

Que me da:

Codec: Realtek ALC887

Y encuentro dos sitios donde se da la solución:

https://answers.launchpad.net/ubuntu/+source/alsa-driver/+question/150750 (comentario #2)
https://lists.ubuntu.com/archives/ubuntu-es/2011-March/046654.html

que consiste en agregar la línea

options snd-hda-intel model=generic

en el archivo /etc/modprobe.d/alsa-base.conf

Genial, pero ¿Qué hago yo con un Live CD? No puedo guardar ese archivo. ¿Cómo pasar esa opción al módulo snd-hda-intel sin reiniciar?

Pues lo primero es descargarlo:

$ sudo rmmod snd-hda-intel

Y ahora lo volvemos a cargar con la opción añadida al final:

$ sudo modprobe snd-hda-intel model=generic

Pulseaudio se queda medio-atontado con la operación: Si vamos a las preferencias de sonido nos aparece un dispositivo de salida bobo ("dummy").

Debido a la característica de "autospawn" de pulseaudio, matarlo es como reiniciarlo. Con k de kill:

$ pulseaudio -k

Y ahora sí:

$ speaker-test -c 2 -t wav

front left... front right... front left... front right... música para mis oídos.