Configurar Linux para que soporte sonido implica los siguientes pasos:
La siguiente sección cubre cada uno de estos pasos en detalle.
Sigue las instrucciones del fabricante para instalar el hardware o encárgaselo a tu vendedor.
Cuando inicialmente instalas Linux, estás usando el núcleo precompilado. estos núcleos generalmente no soportan sonido. Lo mejor es recompilar el núcleo con los drivers que necesites. También puedes queres recompilar el núcleo para actualizar hacia una nueva versión o para liberar recursos de memoria minimizando el tamaño del mismo.
El Linux Kernel HOWTO 
Linux Kernel HOWTO
puede ser consultado para más detalles en la construcción del núcleo. Sólo
mencionaré los aspectos que son específicos a las tarjetas de sonido.
Si nunca has configurado el núcleo para soporte de sonido, es una buena
idea leer todos los ficheros Readme incluidos con los drivers de sonido
del núcleo, particularmente aquellos que se refieren a tu tipo de tarjeta.
Los siguientes ficheros de documentación se pueden encontrar en el directorio
de sonido del núcleo, generalmente instalado en
/usr/src/linux/drivers/sound:
CHANGELOG       - Descripción de los cambios en cada versión.
COPYING         - Restricciones de copia y copyright.
Readme          - Últimas y más importantes noticias.
Readme.aedsp16  - Información sobre la tarjeta Audio Excel DSP 16.
Readme.cards    - Notas de configuración de tarjetas específicas.
Readme.linux    - Notas de instalación separada de drivers de sonido.
Readme.modules  - Cómo construir un driver como un módulo del núcleo cargable.
Readme.v30      - Nuevas características de la versión 3.0 del driver de sonido.
experimental.txt- Notas de características experimentales.
Sigue el procedimiento usual de construcción del núcleo. Hay tres formas de
ejecutar el proceso de configuración. Un interfase gráfico de usuario que
se ejecuta bajo X11 puede ser llamado usando make xconfig. Un sistema
basado en menús que sólo requiere un display de texto está disponible como
make menuconfig. Yo asumiré que usas el proceso tradicional de configuración
de línea de comando usando la llamada make config, aunque el proceso
es similar en cada caso.
También es posible construir el driver de sonido como un módulo cargable del núcleo. Yo recomiendo construir el driver dentro del núcleo. Una vez que está comprobado y que funciona tú puedes probar usando la opción de módulo del núcleo.
Cuando ejecutes make config, activa el soporte de sonido contestado "y" a la
pregunta
      Sound card support (CONFIG_SOUND) [M/n/y/?]
Al final de las preguntas de configuración un programa de configuración de sonido será compilado, ejecutado y te preguntará qué opciones de sonido quieres. Ten cuidado cuando contestes a estas preguntas, ya que si contestas incorrectamente a alguna, repercutirá en preguntas posteriores. Por ejemplo, no contestes "yes" (sí) a la primera pregunta (PAS16) si realmente no tienes una PAS16. No actives más tarjetas de las que realmente tienes, ya que consumen memoria. Además algunos drivers (como el MPU401) pueden entrar en conflicto con el controlador SCSI e impedir la inicialización del núcleo.
Aquí listo una pequeña descripción de cada una de las opciones del diálogo de configuración. Contesta "y" (sí) o "n" (no) en cada pregunta. La respuesta por defecto es mostrada en primer lugar y en mayúsculas, de tal forma que "Y/n/? significa "y" (sí) por defecto, y "N/y/? significa "n" (no). Para usar el valor por defecto basta con pulsar return, pero hay que recordar que el valor por defecto no significa que sea necesariamente correcto.
Si introduces como respuesta una interrogación (?) saldrá un corto mensaje describiéndote esa opción de configuración.
Notar que no todas las preguntas serán respondidas. El programa de configuración desactivará algunas preguntas dependiendo de las anteriores respuestas. Además él también elegirá algunas opciones automáticamente.
      Old configuration exists in /etc/soundconf. Use it Y/n/?
      ProAudioSpectrum 16 support Y/n/?
      SoundBlaster support Y/n/?
      Gravis Ultrasound support Y/n/?
      MPU-401 support (NOT for SB16) Y/n/?
      6850 UART Midi support Y/n/?
      PSS (ECHO-ADI2111) support Y/n/?
      16 bit sampling option of GUS (not GUS MAX) Y/n/?
      GUS MAX support Y/n/?
      Microsoft Sound System support Y/n/?
      Ensoniq Soundscape support Y/n/?
      MediaTriX AudioTriX Pro support Y/n/?
      Support for MAD16 and/or Mozart based cards?
      Support for Crystal CS4232 based (PnP) cards Y/n/?
      Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers
      SoundBlaster Pro support Y/n/?
      SoundBlaster 16 support Y/n/?
      Audio Excel DSP 16 initialization support Y/n/?
Después el programa de configuración hace algunas preguntas de servicios de alto nivel. La contestación recomendada es "y" (sí) para cada una de las preguntas. Contesta "n" (no) solamente si sabes que no vas a utilizar esa opción.
      /dev/dsp and /dev/audio support (usually required) Y/n/?
      MIDI interface support Y/n/?
      FM synthesizer (YM3812/OPL-3) support Y/n/?
     /dev/sequencer support Y/n/?
     Do you want support for the mixer of SG NX Pro ?
     Do you want support for the MV Jazz16 (ProSonic etc.) ?
     Do you have a Logitech SoundMan Games Y/n/?
Después de las preguntas anteriores, el programa de configuración pregunta
por la información específica de la tarjeta. Generalmente es ajustar la
dirección I/O, IRQ y el DMA. Con algunas tarjetas el programa pregunta por los
ficheros que van a ser usados durante la inicialización de la tarjeta. Son
las tarjetas que tienen un chip o un microprocesador DSP el cual debe ser
inicializado bajando un programa (microcódigo) a la tarjeta. En algunos casos
este fichero es escrito a un fichero de cabecera .h por el programa de
configuración y ya es incluido en el driver durante la compilación. Lee de nuevo
la información concerniente a tu tarjeta en el fichero Readme.cards.
Por último serás preguntado:
     The sound driver is now configured.
     Save copy of this configuration to /etc/soundconf [Y/n/?]
Si estás actualizando un driver anterior de sonido, asegúrate de que los
ficheros /usr/include/sys/soundcard.h y /usr/include/sys/ultrasound.h tienen
enlaces simbólicos a los ficheros correspondientes en /usr/include/linux o
que simplemente contiene las líneas #include <linux/soundcard.h> y #include
<linux/ultrasound.h>, respectivamente.
Ahora estás preparado para compilar e instalar el nuevo núcleo.
La primera vez que el driver de sonido del núcleo es configurado necesitas
crear los ficheros del dispositivo del sonido. La forma más fácil de hacer
esto es cortar el script que viene al final del fichero Readme.linux en el
directorio /usr/src/linux/drivers/sound y ejercutarlo como root.
Si tus entradas de dispositivo ya existen, debes asegurarte que son correctas. Si no lo son o si no estas seguro, ejecuta el anterior script y el reemplazará las entradas existentes por las correctas.
Algunas distribuciones antiguas de Linux incorporaban scripts que creaban
ficheros de dispositivo incorrectos. Debes tener el script /dev/MAKEDEV para
crear los ficheros de dispositivo. Usando el script incluído con el driver de
sonido del núcleo es lo mejor ya que siempre estará actualizado con los
últimos dispositivos de sonido soportado.
Después de ejecutar el script los ficheros de dispositivo de sonido deben parecerse a lo siguiente:
lrwxrwxrwx   1 root        11 Aug 22 00:01 audio -> /dev/audio0
crw-rw-rw-   1 root   14,   4 Aug 22 00:01 audio0
crw-rw-rw-   1 root   14,  20 Aug 22 00:01 audio1
lrwxrwxrwx   1 root         9 Aug 22 00:01 dsp -> /dev/dsp0
crw-rw-rw-   1 root   14,   3 Aug 22 00:01 dsp0
crw-rw-rw-   1 root   14,  19 Aug 22 00:01 dsp1
crw-rw-rw-   1 root   14,   2 Aug 22 00:01 midi00
crw-rw-rw-   1 root   14,  18 Aug 22 00:01 midi01
crw-rw-rw-   1 root   14,  34 Aug 22 00:01 midi02
crw-rw-rw-   1 root   14,  50 Aug 22 00:01 midi03
crw-rw-rw-   1 root   14,   0 Aug 22 00:01 mixer
crw-rw-rw-   1 root   14,  16 Aug 22 00:01 mixer1
crw-rw-rw-   1 root   14,   8 Aug 22 00:01 music
crw-rw-rw-   1 root   14,  17 Aug 22 00:01 patmgr0
crw-rw-rw-   1 root   14,  33 Aug 22 00:01 patmgr1
crw-rw-rw-   1 root   14,   1 Aug 22 00:01 sequencer
lrwxrwxrwx   1 root        10 Aug 22 00:01 sequencer2 -> /dev/music
crw-rw-rw-   1 root   14,   6 Aug 22 00:01 sndstat
Presta particular atención a los nombres de dispositivo y al mayor y menor número de dispositivo listado en la cuarta y quinta columnas.
Si estas usando el driver del altavoz del PC, lee la documentación que lee con el paquete para determinar qué ficheros de dispositivo crear.
Normalmente la configuración que usantes cuando construirte el núcleo será
válida para el driver de la tarjeta de sonido. También es posible pasar
parámetros al núcleo en la línea de comandos (por ejemplo desde LILO) para
configurar el driver de sonido. Esto está definido en el fichero Readme.linux.
Raras veces será necesario usarlo. La principal razón de esto es para
que los desarrolladores de discos de arranque de linux puedan crear un
núcleo que soporte varias tarjetas de sonido.
Ahora debes estar preparado para inicializar el núcleo y comprobar los drivers de sonido. Sigue el procedimiento habitual para instalar y reinicializar el nuevo núcleo (por supuesto ten a mano el anterior núcleo por si hay problemas)
Durante la inicialización, comprueba un mensaje como el siguiente cuando
emerja el texto (si las líneas aparecen muy rápido y no las puedes leer,
utiliza el comando dmesg):
   snd2 <SoundBlaster Pro 3.2> at 0x220 irq 5 drq 1
   snd1 <Yamaha OPL-3 FM> at 0x388 irq 0 drq 0
Éste debe coincidir con el tipo de tu tarjeta de sonido y con los parámetros que ella tenga (si es que tiene alguno).
El driver también puede visualizar mensajes de error y advertencias durante el inicio. Estate atento para ver alguno cuando inicies por primera vez después de haber configurado el driver de sonido.
Lo siguiente que debes comprobar es el fichero de dispositivo /dev/sndstat.
Si lees el estado del driver de sonido del fichero de dispositivo te
proporcionará información adicional sobre si el driver de la tarjeta de sonido a
sido inicializado correctamente. Un ejemplo de salida puede ser este:
   % cat /dev/sndstat
   Sound Driver:3.5.2-960330 (Tue  4 16:31:10 EDT 1996 root,
   Linux fizzbin 2.0.0 #1 Mon Jun 3 16:59:37 EDT 1996 i386)
   Kernel: Linux fizzbin 2.0.0 #1 Tue Jun 4 16:57:55 EDT 1996 i386
   Config options: a80002
   
   Installed drivers:
   Type 1: OPL-2/OPL-3 FM
   Type 2: SoundBlaster
   Type 6: SoundBlaster 16bit
   Type 7: SB MPU
   
   Card config:
   SoundBlaster at 0x220 irq 5 drq 1,5
   OPL-2/OPL-3 FM at 0x388 irq 0 drq 0
   
   Audio devices:
   0: SoundBlaster Pro 3.2
   
   Synth devices:
   0: Yamaha OPL-3
   
   Midi devices:
   0: SoundBlaster
   
   Timers:
   0: System clock
   
   Mixers:
   0: SoundBlaster
   
Ahora debes estar preparado para reproducir un fichero de sonido. Coge un fichero de ejemplo y envíalo al dispositivo de sonido para comprobar la salida de sonido. Por ejemplo:
   % cat endoftheworld >/dev/dsp
   % cat crash.au >/dev/audio
   
(Asegúrate de que no te olvidas el ">")
Algunos ficheros de sonido se pueden obtener de: ftp://tsx-11.mit.edu
Ahora puedes comprobar la grabación de sonido. Si tienes capacidad de entrada de sonido, puedes hacer un test rápido con el siguiente comando.
# record 4 seconds of audio from microphone
EDT% dd bs=8k count=4 < /dev/audio > sample.au
4+0 records in
4+0 records out
# play back sound
% cat sample.au > /dev/audio
Obviamente para que esto funcione necesitas un micrófono conectado a la tarjeta de sonido. También necesitas un programa mezclador (mixer) para seleccionar al micrófono como dispositivo de entrada y ajustar el nivel de grabación.
Si pasas el test, puedes pensar razonablemente que el hardware y el software D/A y A/D funciona. Si tienes problemas, mira la siguiente sección de este documento.
Si todavía tienes problemas después de seguir las instrucciones del HOWTO, aquí hay algunas cosas que debes comprobar. Las comprobaciones están listadas en orden ascendente de complejidad. Si una comprobación falla, resuelve el problema antes de pasar al siguiente punto.
Puedes comprobar la fecha del núcleo para ver si estás ejecutando el que has
compilado con el soporte de sonido. Puedes hacer esto con el comando uname
   % uname -a
   Linux fizzbin 2.0.0 #1 Tue Jun 4 16:57:55 EDT 1996 i386
   
o bien visualizando el fichero /proc/version:
   % cat /proc/version
   Linux version 2.0.0 (root@fizzbin) (gcc version 2.7.0) #1 Tue Jun 4 16:57:55 EDT 1996
   
Si la fecha no corresponde con la que era cuando compilaste el núcleo,
entonces estas ejecutando el anterior núcleo. ¿Reinicializaste? Si usas el
LILO, ¿lo reinstalaste? (ejecuta /etc/lilo/install). Si inicias desde
disquete, ¿creaste un nuevo disco de inicio antes de iniciar la sesión?.
Puedes ver qué drivers están compilados mirando el /proc/devices:
   % cat /proc/devices
   Character devices:
    1 mem
    4 tty
    5 cua
    6 lp
   14 sound
   15 Joystick
   
   Block devices:
    2 fd
    3 hd
   25 sbpcd
   
Lo que estamos buscando es el dispositivo 14, llamado sound. Si el
dispositivo de sonido no es listado entonces algo se hizo mal en la
configuración del núcleo o en su construcción. Comienza el proceso de
instalación comenzando otra vez la configuración y construyendo el núcleo.
Asegúrate de que la tarjeta de sonido fue detectada cuando inicializaste.
Deberías haber visto un mensaje. Si el mensaje apareció fuera de pantalla,
puedes revisarlo usando el comando dmesg
% dmesg
o
% tail /var/adm/messages
Si tu tarjeta de sonido no fue encontrada entonces algo está mal. Asegúrate de que está bien instalada. Si la tarjeta de sonido funciona bajo DOS entonces puedes asegurar de que no es debido al hardware por lo que seguramente el problema esté en la configuración del núcleo. Quizá configuraste tu tarjeta con un tipo equivocado o con parámetros equivocados, o quizás tu tarjeta no es compatible con los drivers de tarjeta de sonido del núcleo de Linux.
Una posibilidad es que tu tarjeta sea una del tipo "compatible" que requiere
inicialización por el driver del DOS. Intenta iniciar una sesión de DOS
y cargar el driver suministrado por el vendedor de la tarjeta de sonido.
Después inicia una sesión de linux pulsando control-alt-delete. Asegúrate
de que la dirección I/O, el DMA y el IRQ para Linux son los mismos que los
usados bajo DOS. Lee el fichero Readme.cards para configurar tu tipo de
tarjeta.
Si tú tarjeta de sonido no está listada en este documento, es posible que los drivers de Linux no la soporten. Como ayuda, comprueba las referencias listadas al final de este documento.
dsp?Intenta leer desde el dispositivo /dev/audio usando el comando dd
listado anteriormente en este documento. El comando se debe ejecutar sin errores.
Si esto no va bien, es posible que la causa sea el fichero del dispositivo.
Asegúrate que los ficheros de dispositivo del directorio /dev tienen
los números mayor y menor listados anteriormente. Comprueba que los permisos
del fichero de dispositivo permiten lectura y escritura.
Una posibilidad remota es que sea problema del hardware. Intenta comprobar el driver bajo DOS, si es posible, para determinar si ésta puede ser la causa.
Si todavía tienes problemas, te sugerimos que intentes las siguientes cosas:
emacs y pulsa Esc-x doctor.