ALSA

ALSA
Información sobre la plantilla
Alsbba1.png
Arquitectura de Sonido Avanzada para Linux (más conocido por el acrónimo ALSA de sus siglás en inglés Advanced Linux Sound Architecture).Tiene licencia GPL y es, quizás, uno de los sistemas de sonido más usado en los sistemas GNU/Linux.
CreadorJaroslav Kysela
DesarrolladorEquipo de ALSA
Fecha de Creación1998
Última versión estable1.0.25 / 16 de octubre del 2007
GéneroServidor de sonido
Sistemas Operativos compatiblesGNU/Linux
IdiomaEspañol
LicenciaLicencia pública general de GNU
Sitio web
www.alsa-project.org


La Arquitectura Avanzada para el Sonido en Linux (conocido con el acrónimo ALSA) es un componente del kernel destinado a sustituir el original Open Sound System (Open OSSv3) para proporcionar controladores de dispositivos para las tarjetas de sonido. Además de los controladores de dispositivos de sonido, ALSA también pone a disposición una amplia biblioteca en el espacio de usuario para los desarrolladores de aplicaciones que quieran utilizar las funciones del controlador mediante un API de alto nivel con una interacción directa con los controladores del kernel.

Historia

Dirigido por Jaroslav Kysela, que inició en el año 1998 el proyecto para un controlador de dispositivo de Linux para la tarjeta de sonido Gravis Ultrasound, y fue desarrollado por separado del núcleo Linux hasta que se introdujo en la serie 2.5 en el año 2002. En la versión 2.6 de Linux, ALSA reemplazó a OSS v3, aunque existe una capa de compatibilidad con este último.

Caracteristicas

El módulo de Arquitectura de Sonido Avanzada para Linux (más conocido por el acrónimo ALSA de sus siglas en inglés Advanced Linux Sound Architecture). Licenciado bajo GPL. En su origen (año 1998) fue un driver totalmente independiente del núcleo de Linux, y en 2002 fue incluido en la rama de desarrollo 2.5, pasando a ser el sistema oficial de sonido de Linux para la rama 2.6.

Actualmente ha reemplazado a la antigua implementación de OSS (versión 3.x) pero la compañía 4Front Technologies ha liberado la versión 4.x es una real mejora en todos los aspectos, OSS4 tiene una implementación en diferentes sistemas (linux, freebsd, etc) a diferencia de ALSA que solo tiene implementación para Linux. ALSA fue diseñado con algunas características que en tiempos de OSS no había soporte alguno:

  • Sintesís de MIDI basada en hardware
  • Mezclado de múltiples canales en hardware
  • Operación Full-duplex
  • Buen Soporte multiprocesador

Instalación

ALSA está incluido en el kernel de Arch por defecto como un conjunto de módulos, por lo que no es necesaria su instalación explícitamente. udev explorará automáticamente el hardware en el arranque, cargando el módulo del kernel correcto para la tarjeta de sonido encontrada. Por lo tanto, el sonido debería estar funcionando desde el inicio, pero, ha de tener en cuenta que su configuración viene, por defecto, con todos los canales de audio silenciados.

Los usuarios con un inicio de sesión local (en una terminal virtual o un gestor de pantalla) tienen habilitados los permisos para reproducir sonido y cambiar los niveles del mezclador. Para permitir esto en un inicio de sesión remoto, el usuario tiene que ser añadido al grupo de audio.

La calidad de miembro del grupo de audio también permite el acceso directo a los dispositivos, lo que puede conducir a que se graben exclusivamente las salidas de las aplicaciones (rompiendo el software de mezcla) y frustrar el rápido intercambio entre usuarios, y multisede. Por lo tanto, la adición de un usuario al grupo de audio no es recomendable, a menos que se necesite específicamente.

Utilidades en el espacio de usuario

Instale el paquete alsa-utils desde los repositorios oficiales que contienen la herrameinta alsamixer para el espacio de usuario, que permite la configuración de los dispositivos de sonido desde la consola o terminal. Instale también el paquete alsa-plugins si desea remuestreo en alta calidad, upmixing/downmixing y otras características avanzadas. Si desea que las aplicaciones de OSS funcionen mediante dmix (software de mezcla), instale también el paquete alsa-oss. Cargue los módulos del kernel snd_seq_oss, snd_pcm_oss y snd_mixer_oss para activar los módulos de emulación de OSS.

Abrir los canales de audio

La versión actual de ALSA se instala con todos los canales silenciados por defecto. Será necesario revertir manualmente el enmudecimiento de los canales. Lo más cómodo es utilizar la interfaz gráfica alsamixer para hacer esto: $ alsamixer Como alternativa, puede usar amixer desde la línea de comandos: $ amixer sset Master unmute La etiqueta MM, por debajo de un canal, indica que el canal está silenciado, y 00 indica que está abierto.

El procedimiento a seguir es el siguiente:

Desplácese hasta los canales Master y PCM con las teclas y , y retire el silencio pulsando la tecla m. Utilice la tecla ↑ para aumentar el volumen y obtener un «dB gain» con valor 0. El valor «gain» se puede encontrar en la parte superior izquierda junto al campo Item:. Los valores más altos de «gain» producirán sonido distorsionado. Para obtener un verdadero sonido envolvente (surround) 5.1 o 7.1 es probable que tenga que activar otros canales como Front, Surround, Center, LFE (subwoofer) y Side (estos son los nombres de los canales para el módulo Intel HD Audio, y pueden variar según el hardware).

Tenga en cuenta que esto no se logrará automáticamente con Upmix para las fuentes de sonido estéreo (como, por ejemplo, la música). Con el fin de lograrlo, consulte Upmixing/Downmixing.

Salga de alsamixer pulsando Esc.

Se puede ahora comprobar si el sonido funciona: $ speaker-test -c 2 Modifique el valor -c para ajustar la configuración de los altavoces. Por ejemplo, use -c 8 para 7.1: $ speaker-test -c 8 Si esto no funciona, vaya a configuración o consulte la sección sobre solución de problemas. El paquete alsa-utils incluye alsa-restore.service y alsa-store.service, que están preconfigurados para hacer funcionar el arranque y la parada, respectivamente.

Configuración

Para configurar correctamente nuestra tarjeta de sonido, ejecutamos la herramienta de configuración de ALSA: $ sudo alsaconf Nos aparecerá una pantalla en modo semigráfico, donde indicaremos todos los datos referentes a nuestra tarjeta de sonido para configurarla correctamente.

Si aún no nos funciona el sonido, ejecutamos alsamixer: $ sudo alsamixer Y aumentamos el volumen de todas las salidas de audio. También podemos cambiar la salida digital ahí mismo. Para salir, presionamos la tecla Escape.

Arranque

Una vez instalado el entramado de ALSA, hay que ajustar los ficheros de configuración para que estén acordes con nuestros dispositivos. En los núcleos de la rama 2.6, ya no se utiliza /etc/modules.conf sino /etc/modprobe.conf para cargar los módulos al arrancar la máquina. La configuración de los módulos que necesitan ser cargados para cada tarjeta se puede encontrar en ALSA Soundcard Matrix, así como otros parámetros dependientes de la tarjeta. Para la mía en concreto, la configuración es:

  1. ALSA portion

alias char-major-116 snd alias snd-card-0 snd-intel8x0

  1. module options should go here
  1. OSS/Free portion

alias char-major-14 soundcore alias sound-slot-0 snd-card-0

  1. card #1

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

Problemas y soluciones

Primero conviene mirar la última información disponible tanto en la FAQ del proyecto Alsa, como en las AlsaTips. Además, es bueno trabajar con la última versión estable disponible. A continuación se presenta una lista con problemas típicos:

  • Problemas de permisos (ejecutar como superusuario):

% chmod 666 /dev/snd/* Para los drivers de OSS: % chmod 666 /dev/mixer* /dev/midi* /dev/dsp* /dev/sequencer*

  • Diagnóstico general.

Existe un script llamado aadebug que muestra información necesaria sobre Alsa y en caso de fallo, el motivo del mismo con el objetivo de facilitar su solución. Más infromación en la página de Aadebug. Básicamente se trata de copiar el script a un fichero de texto y hacerlo ejecutable. Si tenemos el fichero de texto llamado aadebug con el script en cuestión: % chmod +x aadebug % ./aadebug

Fuentes