tranter@pobox.com Traducción: Sergio Alonso Manzanedo sa.manzanedo@vll.servicom.es David Marín Carreño davefx@bigfoot.com

El Cómo del sonido en Linux

v1.19, 23 de Enero de 1998. Traducción 11 de Junio de 1998.

Este documento describe el soporte de sonido para Linux. Enumera el hardware de sonido soportado, describe cómo configurar los controladores del núcleo y contesta a las preguntas más frecuentes. Intenta enseñar más rápido a los nuevos usuarios y reducir el gran tráfico en las listas de correo y grupos de noticias de Usenet.

Contents

1 Introducción. 3 1.1 Reconocimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Historial de Versiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Nuevas versiones de este documento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Sugerencias, críticas y comentarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.5 Política de distribución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Tecnología de la tarjeta de sonido. 6

3 Hardware soportado. 7 3.1 Tarjetas de sonido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Controladores de sonido alternativos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3 Altavoz del PC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.4 Puerto paralelo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4 Instalación. 11 4.1 Instalar la tarjeta de sonido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2 Configurar el núcleo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.3 Creando los ficheros de dispositivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.4 Inicializando Linux y comprobando la instalación. . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.5 Resolución de problemas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.5.1 Punto 1: Asegúrese de que realmente está ejecutando el núcleo compilado con soporte

para sonido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.5.2 Punto 2: Asegúrese de que los controladores de sonido del núcleo están compilados en

él. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.5.3 Punto 3: ¿Detectó el núcleo su tarjeta de sonido durante la inicialización? . . . . . . . 18 4.5.4 Punto 4: ¿Puede leer datos desde el dispositivo dsp? . . . . . . . . . . . . . . . . . . . 19 4.5.5 Punto 5: Cuando todo falla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5 Aplicaciones que soporten sonido. 20

6 6. Respuestas a Preguntas Usualmente Formuladas (PUF). 20 6.1 ¿Cuáles son los ficheros de dispositivo de sonido? . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.2 ¿Cómo puedo reproducir una muestra de sonido? . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.3 ¿Cómo puedo grabar una muestra? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.4 ¿Puedo tener más de una tarjeta de sonido? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.5 Error: No such file or directory for sound devices . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.6 Error: No such device for sound devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.7 Error: No space left on device for sound devices . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.8 Error: Device busy for sound devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.9 ¡Todavía tengo errores de dispositivo ocupado (device busy)! . . . . . . . . . . . . . . . . . . . 23 6.10 Reproducción parcial de un fichero de sonido digitalizado. . . . . . . . . . . . . . . . . . . . . 24 6.11 Hay pausas cuando reproduzco ficheros MOD. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.12 Errores de compilación al compilar aplicaciones de sonido. . . . . . . . . . . . . . . . . . . . . 24 6.13 Obtengo SEGV al ejecutar programas de sonido que antes funcionaban. . . . . . . . . . . . . 24 6.14 ¿Dónde está la documentación del controlador de sonido, ioctlz(), etc..? Estos están doc-

umentados parcialmente en la Hacker’s Guide to VoxWare, disponible en formato borrador en la actualidad. La última versión es el borrador 2, y puede encontrarse en ftp: //nic.funet.fi/pub/Linux/ALPHA/sound/ . Hay que señalar que este directorio está "escondido" y no aparece en los listados de directorios. Si usted hace un "cd" al directorio y usa el comando FTP "dir", los ficheros están ahí. En el momento de escribir estas líneas, se puso disponible nueva documentación en la Página Web de 4Front Technologies. Otra fuente de información es la Guía Linux Multimedia, descrita en la sección Referencias. . . . . . . . . . . 25

6.15 ¿Cúales son los recursos de la CPU necesarios para reproducir o grabar sin pausas? . . . . . . 25 6.16 Problemas con una PAS16 y una controladora SCSI Adaptec 1542. . . . . . . . . . . . . . . . 25 6.17 ¿Es posible leer y escribir muestras simultáneamente? . . . . . . . . . . . . . . . . . . . . . . 26 6.18 Mi SB16 está puesta con un IRQ 2, pero la configuración no me deja usar este valor. . . . . . 26 6.19 ¿Están soportadas la SoundBlaster AWE32 o la SoundBlaster16 ASP? . . . . . . . . . . . . . 26 6.20 Si estoy en Linux y después inicio una sesión de DOS, tengo errores y/o las aplicaciones de

sonido no funcionan correctamente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.21 Problemas ejecutando DOOM bajo Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.22 ¿Cómo puedo reducir el ruido recogido por mi tarjeta de sonido? . . . . . . . . . . . . . . . . 27 6.23 Puedo reproducir sonido, pero no puedo grabar. . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.24 Mi tarjeta de sonido "compatible" sólo funciona si primero la inicializo bajo MS-DOS. . . . . 28 6.25 Mi tarjeta de sonido "compatible" SoundBlaster 16-bit sólo funciona en el modo 8-bit bajo

Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.26 ¿Dónde puedo encontrar aplicaciones de sonido para Linux? . . . . . . . . . . . . . . . . . . . 28 6.27 ¿Puede el controlador de sonido ser compilado como módulo cargable? . . . . . . . . . . . . . 28 6.28 ¿Puedo usar la tarjeta de sonido para sustituir el pitido de la consola del sistema? . . . . . . 29 6.29 ¿Qué es VoxWare? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.30 ¿Están soportadas las tarjetas de sonido Plug-and-Play? . . . . . . . . . . . . . . . . . . . . . 29 6.31 Sox/Play/Vplay saca el mensaje "invalid block size 1024" . . . . . . . . . . . . . . . . . . . . 30 6.32 ¿Por qué el controlador de sonido tiene su propio programa de configuración? . . . . . . . . . 30 6.33 Las opciones del mezclador son borradas cuando cargo el módulo del controlador de sonido . 30 6.34 Solamente el root puede grabar sonido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.35 ¿Está soportado el hardware de sonido del IBM ThinkPad? . . . . . . . . . . . . . . . . . . . 31

7 Referencias 31

8 Acerca de la traducción. 33

9 Anexo: El INSFLUG 33

1 Introducción.

Este es el documento Linux Sound HOWTO. Debe ser entendido como una guía de referencia rápida que cubre todo lo que se necesita saber para instalar y configurar el soporte de sonido bajo Linux. Se contestan las preguntas más frecuentes sobre el sonido en Linux, además de incluir referencias a otras fuentes de información sobre múltiples características relativas a la generación de sonido y música por ordenador.

El alcance está limitado a los aspectos sobre las tarjetas de sonido relacionadas con Linux. Remítase a los otros documentos listados en la sección Referencias para información más general sobre tarjetas de sonido y generación de sonido y música por ordenador.

1.1 Reconocimientos.

La mayor parte de esta información proviene de los ficheros README que vienen junto con el código fuente del controlador de sonido, de Hannu Savolainen

hannu@voxware.pp.fi . Doy las gracias a Hannu y toda esa gente que ha desarrollado los controladores de sonido del núcleo y todas las utilidades.

Gracias al paquete

SGML Tools , este documento CÓMO está disponible en varios formatos, todos generados a partir de un mismo fichero fuente.

1.2 Historial de Versiones

Versión 1.1 primera versión; enviada al canal SOUND de la lista de correo de activistas de Linux

Versión 1.2 actualizaciones menores; primera versión disponible para descarga

Versión 1.3 convertido a SGML; ahora disponible en bastantes formatos utilizando las herramientas Linuxdoc-SGML de Matt Welsh; la apariencia cambió debido al nuevo formato, pero sólo hubo cambios menores en el contenido

Versión 1.4 cambios menores de SGML; añadida respuesta a las incompatibilidades entre PAS16 y el adaptador SCSI Adaptec1542A

Versión 1.5 el controlador de sonido 2.5a se encuentra en la distribución 1.1 del núcleo; nota acerca del soporte de GUS-MAX; otras actualizaciones menores

Versión 1.6 añadida información acerca del error "no hay espacio en el dispositivo"; añadida anotación de que la Guía del Hacker está en un directorio oculto; añadida pregunta acerca del modo bidireccional; información acerca de los errores de "dispositivo ocupado"; otros cambios menores

Versión 1.7 añadida información acerca de ASP y AWE32; VoxWare 2.9 está disponible; respuesta a la pregunta acerca de la utilización de IRQ2; referencias a los documentos COMO de Sonido y SCSI Versión 1.8

añadida pregunta acerca de los errores bajo DOS; actualización de muchas cosas para ajustarse a la versión 2.90 del controlador de sonido; información acerca del DOOM, respuesta para reducir ruido

Versión 1.9 preguntas acerca de grabación y de tarjetas clónicas

Versión 1.10 se menciona que el documento está disponible en la WWW, en copias impresas, y traducciones; información acerca del conflicto DMA con el controlador de cinta QIC; información acerca de Sound Galaxy NX Pro y Ratón Bus Logitech

Versión 1.11 Una larga actualización (He estado ocupado); documento bajo licencia GPL; puesto al día con la versión 3.0 del controlador de sonido; información acerca de muchas tarjetas de sonido ya soportadas; más información acerca de configuración y resolución de problemas; cientos de enlaces HTML añadidos; puesto al día con el formato de CD-ROM HOWTO

Versión 1.12 nuevos controladores de sonido en el núcleo 1.3.34; nuevos nombres de dispositivos de sonido; la dirección de la 1542 es 334, no 333; clarificación del estado de Creative Labs Emu y ASP; enlaces a los sitios Web de Creative Labs y Mediatrix

Versión 1.13 nota acerca del nombre VoxWare; actualizado para reflejar las últimas tarjetas de sonido soportadas y sus opciones de configuración; pregunta acerca del soporte Plug and Play; pregunta acerca del problema de tamaño de bloque; nuevas opciones xconfig y menuconfig; modutils tiene soporte de dispositivos de sonido; la lista de correo vger desaparece; énfasis en la Web del autor; otros cambios menores

Versión 1.14 Audio Excell DSP16 no está soportada actualmente (debería funcionar de nuevo en unos pocos meses); cambios en el programa de configuración; versión italiana del documento disponible; pista para ajustar las ganancias del mezclador cuando se carga el módulo de sonido; el último núcleo estable es ahora 2.0; nuevo nombre para el controlador de sonido; pregunta acerca de los permisos de root en ficheros del dispositivo de sonido

Versión 1.15 eliminadas algunas preguntas que eran muy viejas y quedaron obsoletas; nuevas direcciones de correo electrónico del autor; arreglados algunos enlaces para apuntar a los últimos paquetes de software; más información acerca del libro multimedia; cambios gramaticales menores

Versión 1.16 muchas actualizaciones y correcciones realizadas por Hannu Savolainen; añadido enlace a la traducción española; cambios gramaticales menores

Versión 1.17 versión china disponible; controlador alternativo de la GUS; packet radio modem; la guia Linux Multimedia se encuentra disponible en francés y japonés; referencias a un par de mini-HOWTOs importantes; notas acerca del IBM ThinkPad

Versión 1.18 traducción coreana disponible; más información acerca del soporte de sonido en MIPS; información actualizada acerca del soporte de varias tarjetas; debe ser root al ejecutar fuser Versión 1.19

añadidas entradas al índice; documento CÓMO bajo licencia LDP mejor que GPL

1.3 Nuevas versiones de este documento.

Nuevas versiones de este documento serán enviadas periódicamente al grupo de noticias comp.os.linux.answers. También serán enviadas a varios ftp anónimos que archivan este tipo de información, incluyendo

ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/ .

Hay disponibles versiones de hipertexto de éste y otros HOWTOs en muchos lugares, como por ejemplo

http://sunsite.unc.edu/LDP/

La mayoría de las distribuciones de Linux en formato CD-ROM incluyen los COMOs en el directorio /usr/doc/, aunque también los puedes comprar en formato impreso a muchos vendedores. A veces los documentos COMO disponibles en los distribuidores de CD-ROM, sitios FTP y en formato impreso están obsoletos. Si la fecha de este HOWTO es de hace seis meses, o más, probablemente pueda conseguir una nueva versión de Internet. Una traducción en francés de este documento está disponible en

ftp://ftp.ibp.fr/pub2/linux/french/docs/HOWTO/ .

Una traducción en japonés de este documento está disponible en

http://yebisu.ics.es.osaka-u.ac.jp/linux/ .

Una traducción en italiano de este documento está disponible en

http://www.psico.unipd.it/ildp/docs/HOWTO/Sound-HOWTO.html .

Una traducción en español de este documento está disponible en

http://www.insflug.nova.es/howtos/online/sonido/sonido-COMO.html

Una traducción en chino de este documento está disponible en

http://linux.ntcic.edu.tw/~yorkwu/linux/howto/sound/

Una traducción de este documento al coreano Hangul está disponible en http://members.iWorld.net/

mangchi/HOWTO/Sound-HOWTO.html

La mayoría de las traducciones de este y otros documentos COMO de Linux puede ser encontrada también

en http://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/
y en ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/ .

Si realiza una traducción de este documento a otro idioma, comuníquemelo y lo incluiré como una referencia en este apartado.

1.4 Sugerencias, críticas y comentarios.

Confío en que a usted, el lector, este documento le sea de utilidad. Si tiene alguna sugerencia, corrección, o comentario, por favor envíemelos jeff_tranter@mitel.com , y trataré de incorporarlas en la próxima revisión. También estoy deseando contestar preguntas generales sobre tarjetas de sonido y Linux, tan correctamente como pueda. Antes de hacerlo, por favor lea toda la información de este HOWTO, y envíeme información detallada sobre el problema.

Si usted publica este documento en un CD-ROM o impreso en papel, una copia complementaria será apreciada. Envíeme un email para decirle mi dirección postal. Considere también hacer una donación al Linux Documentation Project para colaborar con la libre documentación de Linux. Contacte con el coordinador de los HOWTO de Linux, Tim Bynum

linux-howto@sunsite.unc.edu para más información.

1.5 Política de distribución.

Copyright 1995-1998 por Jeff Tranter. Este documento puede ser distribuido bajo los términos ajustados en la licencia LDP disponible en

http://sunsite.unc.edu/LDP/COPYRIGHT.html .

2 Tecnología de la tarjeta de sonido.

Esta sección da unas nociones muy simples de tecnología de sonido en ordenador, para ayudarle a entender los conceptos usados más tarde en el documento. Debería consultar un libro de sonido digital o de proceso de señal digital si desea aprender más.

El sonido es una propiedad analógica; puede tomar cualquier valor en un intervalo continuo. Los ordenadores son digitales; trabajan con valores discretos. Las tarjetas de sonido usan un dispositivo conocido como conversor analógico digital (A/D o ADC) para convertir los voltajes correspondientes a las ondas de sonido analógico en valores digitales o numéricos los cuales pueden ser guardados en memoria. De manera similar un conversor digital analógico (D/A o DAC) convierte valores numéricos en un voltaje analógico el cual puede ser reconducido a un altavoz, produciendo sonido.

El proceso de conversión analógico-digital, conocido como muestreo (sampling), introduce algunos errores. Dos factores son fundamentales para determinar con qué fidelidad la señal de muestra representa a la original. La frecuencia de muestreo (sampling rate) es el número de muestras hechas por unidad de tiempo (generalmente expresado en muestras por segundo o hertzios). Una frecuencia de muestreo baja genera una representación de menos calidad de la señal analógica. El tamaño de muestreo (sample size) es el rango de valores usados para representar cada muestra, generalmente expresado en bits. Cuanto mayor sea el tamaño de muestra, de mayor calidad será la señal digital.

Las tarjetas de sonido usan comúnmente muestras de 8 o de 16 bits y frecuencias de muestreo desde 4000 hasta 44000 muestras por segundo. Las muestras pueden estar contenidas en un canal (mono) o en dos (estéreo).

La síntesis FM es una técnica antigua para producir sonido. Se basa en la combinación de diferentes formas de onda (por ejemplo sinoidal, triangular, cuadrada). La síntesis FM es más fácil de implementar en hardware que la conversión D/A, pero es más difícil de programar y menos flexible. Muchas tarjetas de sonido proporcionan síntesis de FM para conservar la compatibilidad con otras tarjetas y software anteriores. Generalmente se proporcionan varias voces, es decir, generadores de sonido independientes.

La síntesis de tabla de ondas (WaveTable) combina la flexibilidad de la conversión D/A con la capacidad de múltiples canales de la síntesis de FM. Con este esquema las voces digitalizadas pueden ser cargadas en una memoria dedicada, y después reproducidas, combinadas, y modificadas con un consumo mínimo de recursos de la CPU. Todas las tarjetas de sonido de última generación proporcionan síntesis de tabla de ondas.

La mayoría de las tarjetas de sonido proporcionan la capacidad de mezclado, la combinación de señales de diferentes fuentes de entrada y el control de sus niveles de ganancia.

MIDI significa Musical Intrument Digital Interface (interfaz digital para instrumentos musicales), y es el hardware estándar y el protocolo software que permite a los instrumentos musicales comunicarse con cualquier otro. Los eventos enviados a través de un bus MIDI también pueden ser guardados como ficheros MIDI para editarlos más tarde y reproducirlos. Algunas tarjetas de sonido traen un interfase MIDI. Las que todavía no pueden reproducir ficheros MIDI usan las capacidades de la placa de la tarjeta de sonido.

Los ficheros MOD son un formato común para las canciones generadas por ordenador. Como información sobre las notas musicales a ser reproducidas los ficheros contienen muestras digitalizadas de los instrumentos (o voces). Los ficheros MOD son originarios de los ordenadores Amiga, pero pueden ser reproducidos en otros sistemas, incluyendo Linux, con el software adecuado.

3 Hardware soportado.

Esta sección lista las tarjetas de sonido y los interfaces que actualmente son soportados bajo Linux. Esta información está basada en los últimos núcleos de Linux.

El controlador de sonido tiene su propio número de versión. El último núcleo estable de Linux realizado hasta ahora era la versión 2.0.33, usando la versión 3.5.4-960630 del controlador de sonido.

El autor del controlador de sonido, Hannu Savolainen, normalmente también realiza nuevas versiones beta del controlador de sonido como parches del núcleo antes de que sean incluidas como parte de la distribución estándar del núcleo de Linux.La más reciente lista de tarjetas soportadas está disponible en

http://www.4front-tech.com/ossfree/new_cards.html (EE.UU.) or
http://personal.eunet.fi/pp/voxware/new_cards.html

(Europa). Estas páginas indican qué controlador de sonido se requiere para un tipo concreto de tarjeta de sonido, o si su soporte está todavía en fase de desarrollo. El fichero /usr/src/linux/drivers/sound/Readme.cards distribuido con el controlador de sonido del núcleo contiene información acerca de las tarjetas soportadas, pero no está siempre puesto al día.

Esta información sólo es válida para Linux en la plataforma Intel.

El controlador de sonido tambíen debería funcionar con la mayor parte de las tarjetas de sonido en la plataforma Alpha. Sin embargo, algunas tarjetas pueden dar problemas con los puertos de E/S de otros dispositivos de los sistemas Alpha aúnque funcionaran perfectamente en máquinas i386, por lo que, en general, no es posible decir si una tarjeta dada funciona o no sin llegar a probarla.

En el momento de la escritura, el controlador de sonido aún no funcionaba en la versión para Linux de PowerPc, pero lo hará en un futuro.

El sonido puede configurarse en el núcleo bajo el puerto de Linux para MIPs, y algunas máquinas MIPs tienen ranuras EISA y/o hardware de sonido interno. Me han comentado que el grupo Linux-MIPs está interesado en añadir soporte de sonido en un futuro.

El núcleo de Linux incluye un controlador separado para las versiones de Linux para Amiga y Atari que implementa una subsección compatible del controlador de sonido para Intel utilizando el hardware de sonido propio de estas máquinas.

El puerto SPARC de Linux no tiene, por ahora, soporte para sonido. Al igual que el Amiga y el Atari, las máquinas SPARC tienen hardware de sonido propio, por lo que puede conseguirse con un nuevo controlador (esto es algo irónico, ya que bajo linux, el fichero /dev/dsp emula el dispositivo de sonido SunOS.

3.1 Tarjetas de sonido.

Las siguientes tarjetas de sonido son soportadas por el controlador de sonido del núcleo de Linux:

• ATI Stereo F/X (ya no se fabrica)

• AdLib (ya no se fabrica)

• Ensoniq SoundScape (y compatibles fabricados por Reveal y Spea)

• Gravis Ultrasound

• Gravis Ultrasound ACE

• Gravis Ultrasound Max

• Gravis Ultrasound con opción de sampling de 16 bit

• Logitech Sound Man 16

• Logitech SoundMan Games

• Logitech SoundMan Wave

• MAD16 Pro (chipsets OPTi 82C928, 82C929, 82C930, 82C924)

• Media Vision Jazz16

• MediaTriX AudioTriX Pro

• Microsoft Windows Sound System (MSS/WSS)

• Mozart (OAK OTI-601)

• Orchid SW32

• Personal Sound System (PSS)

• Pro Audio Spectrum 16

• Pro Audio Studio 16

• Pro Sonic 16

• Roland MPU-401 MIDI interface

• Sound Blaster 1.0

• Sound Blaster 16

• Sound Blaster 16ASP

• Sound Blaster 2.0

• Sound Blaster AWE32

• Sound Blaster Pro

• TI TM4000M notebook

• ThunderBoard

• Turtle Beach Tropez ("clásica", no la Plus)

• Yamaha FM synthesizers (OPL2, OPL3 and OPL4)

• 6850 UART MIDI Interface Debe remarcarse que las tarjetas de sonido Plug and Play (PnP) no son completamente compatibles con los modelos más antiguos no-PnP del mismo dispositivo. Por ejemplo, la SoundBlaster 16PnP no es del todo compatible con la SoundBlaster 16 original. Ocurre lo mismo con la Soundscape PnP y las GUS PnP. Puede encontrarse más información relacionada con Plug and Play en este mismo documento.

Las siguientes tarjetas no son soportadas, bien porque son obsoletas, bien porque el fabricante no proporcionó la información de programación necesaria para escribir un controlador:

• Pro Audio Spectrum (original)

• Pro Audio Spectrum+

• antiguas tarjetas (basadas en la Sierra Aria) fabricadas por Diamond

Otras tarjetas de sonido que se suponen compatibles con alguna de las que sí que son soportadas deben funcionar si tienen hardware compatible (por ejemplo nivel de registro).

De hecho, de la mayor parte de las tarjetas descritas como "100% compatibles con SoundBlaster", muy pocas son lo suficientemente compatibles para trabajar con el controlador de SoundBlaster de Linux. Estas tarjetas suelen trabajar mejor utilizando el controlador MSS/WSS o MAD16. Sólo las tarjetas de sonido SoundBlaster hechas por Creative Labs, que usan los propios chips de Creative (p.e. SoundBlaster 16 Vibra), la MV Jazz16 y la ESS688/1688 funcionan, generalmente, con el controlador SoundBlaster. Intentar utilizar una "tarjeta de sonido de 16 bits compatible con SoundBlaster Pro" con el controlador SoundBlaster es, simplemente, una pérdida de tiempo.

El núcleo de Linux da soporte al puerto SCSI proporcionado en algunas tarjetas de sonido (p.e. ProAudioSpectrum 16) y a los interfaces propietarios de algunas unidades CD-ROM (p.e. SoundBlaster Pro): Vea los documentos

SCSI-CÓMO y

CDROM-COMO

para más información.

Un módulo cargable del núcleo para soportar los puertos de joystick, incluyendo aquellos proporcionados en algunas tarjetas de sonido, también está disponible.

Dése cuenta de que para los controladores del núcleo para SCSI, CD-ROM, joystick y sonido son completamente independientes los unos de otros.

Para conseguir la última información acerca del controlador de sonido, visite la página Web de Hannu Savolainen, cuya dirección encontrará en la sección Referencias.

3.2 Controladores de sonido alternativos.

Hay disponibles algunos controladores de sonido "no oficiales", no incluidos en la distribución estándar del núcleo de Linux, y usados en lugar del controlador estándar de sonido.

Una versión comercial del controlador de sonido de Linux es vendida por 4Front Technologies. Ofrece un número de características adicionales añadidas a la versión gratuita incluida en el núcleo de Linux. Para más información visite la página Web de 4Front en http://www.4front-tech.com/ .

Markus Mummert (

mum@mmk.e-technik.tu-muenchen.de ) un paquete de controladores para las tarjetas Turtle Beach Multi-Sound (clásica), Tahiti y Monterey. La documentación afirma:

"Está diseñado para la reproducción/grabación de alta calidad en disco duro sin perder sincronización alguna en un sistema ocupado. Otras características como la síntesis de ondas, MIDI y el procesador digital de señal no pueden ser usadas. Tampoco es posible la grabación y reproducción simultáneas. Actualmente reemplaza a VoxWare y ha sido probado en bastantes versiones de núcleos, desde la 1.0.9 hasta la 1.2.1. También se puede instalar en sistemas UN*X SysV386R3.2."

Se puede encontrar en http://www.cs.colorado.edu/~mccreary/tbeach .

Kim Burgaard (

burgaard@daimi.aau.dk ) ha escrito un controlador de dispositivo y utilidades para el interfaz MIDI de la Roland MPU-401. El acceso al mapa de software Linux da esta descripción:

"Un controlador de dispositivo para los interfaces MIDI de la Roland MPU-401 (incluyendo Roland SCC-1 y RAP-10/ATW-10). Le acompaña una importante colección de utilidades, incluyendo un reproductor y grabador de ficheros MIDI estándar.

Han sido hechos numerosos avances desde la versión 0.11a. entre otras cosas, el controlador incorpora ahora la política de compartición de IRQ y cumple con el nuevo módulo interfase del núcleo. Funcionabilidad metrónoma, posibilidad de sincronización (por ejemplo gráficos en una base de ritmos sin perder precisión), interfaz avanzado de reproducción/grabación y mucho, mucho más."

Se puede encontrar en ftp://sunsite.unc.edu/pub/Linux/kernel/sound/mpu-401-0.2.tar.gz

Jarloslav Kysela y otros han escrito un controlador de sonido alternativo para la Gravis UltraSound. Para más información, visite la página Web del Proyecto Linux UltraSound http://romeo.pf.jcu.cz/~perex/ultra .

Otro uso novedoso para una tarjeta de sonido bajo Linux es como un modem para paquetes de radio aficcionado. Los núcleos 2.1.x recientes incluyen un controlador que trabaja con tarjetas SoundBlaster y compatibles Windows Sound System que implementan protocolos de paquetes AFSK a 1200 bps y FSK a 9600 bps. Vea el documento Linux AX25 HOWTO para más detalles. (yo mismo soy radioaficcionado. Contraseña VE3ICH).

3.3 Altavoz del PC.

Un controlador alternativo de sonido está disponible y no requiere hardware adicional de sonido: usa el altavoz interno del PC. Es compatible con la mayoría del software del controlador de la tarjeta de sonido, pero como era de esperar, ofrece una salida de mucha peor calidad y consume muchos recursos de la CPU. Los resultados pueden variar dependiendo de las características internas del altavoz. Para más información, lea la documentación que acompaña a su versión.

La versión actual es la 1.1 y se puede encontrar en

ftp://ftp.informatik.hu-berlin.de/pub/os/linux/hu-sound

3.4 Puerto paralelo.

Otra opción es hacer un conversor digital/analógico usando el puerto paralelo de la impresora y algunos componentes adicionales. Éste genera una mejor calidad de sonido que el altavoz interno, pero consume todavía más recursos del sistema. El paquete del controlador de altavoz del PC menciona por encima el soporte de esto, e incluye las instrucciones para construir el hardware necesario.

4 Instalación.

Configurar Linux para que soporte sonido implica los siguientes pasos:

1. Instalar la tarjeta de sonido.

2. Configurar y construir el núcleo para que soporte sonido.

3. Crear los ficheros de dispositivo.

4. Rearrancar el núcleo Linux y comprobar la instalación.

La siguiente sección cubre cada uno de estos pasos en detalle.

4.1 Instalar la tarjeta de sonido.

Siga las instrucciones del fabricante para instalar el hardware o encárgueselo a su vendedor.

Las tarjetas de sonido antiguas suelen tener microinterruptores o "jumpers" para ajustar el canal DMA, IRQ, etc; apunte los valores utilizados. Si no está seguro, utilice los valores por defecto. Intente evitar conflictos con otros dispositivos como tarjetas ethernet, controladores SCSI, puertos serie y paralelo, si es posible.

Normalmente debería utilizar el mismo puerto E/S, IRQ y DMA que bajo DOS. En algunos casos (particularmente con tarjetas PnP) puede necesitar utilizar ajustes distintos para conseguir que las cosas funcionen correctamente bajo Linux. Puede que requiera experimentar un poco.

4.2 Configurar el núcleo.

Cuando inicialmente instala Linux, está usando el núcleo precompilado. estos núcleos generalmente no soportan sonido. Lo mejor es recompilar el núcleo con los controladores que necesite. También puede querer 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 acerca de la construcción del núcleo. Sólo mencionaré los aspectos que son específicos a las tarjetas de sonido.

Si nunca ha configurado el núcleo para soporte de sonido, es una buena idea leer todos los ficheros Readme incluidos con los controladores de sonido del núcleo, particularmente aquellos que se refieren a su 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 controladores de sonido.
Readme.modules    - Cómo construir un controlador como un módulo del núcleo cargable.
Readme.v30        - Nuevas características de la versión 3.0 del controlador de sonido.
experimental.txt  - Notas de características experimentales.

Siga el procedimiento usual de construcción del núcleo. Hay tres formas de ejecutar el proceso de configuración. Un interfaz 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 y el método original, utilizando make config, que ofrece un simple interfaz basado en texto.

Hay que ser especialmente cuidadosos cuando se emplee "make xconfig" o "make menuconfig". Todas las preguntas de Sí/No deben ser examinadas cuidadosamente. La respuesta proporcionada por defecto para estas preguntas es siempre No, lo cual no es lo adecuado en todos los casos. en particular, la opción "/dev/dsp and /dev/audio support" (CONFIG_AUDIO) debe ser habilitada normalmente.

En este documento asumiré que usted utiliza el método tradicional de configuración en línea de comandos invocado utilizando "make config", aunque el proceso es similar en todos los casos.

Hay también dos maneras distintas de configurar el sonido. La primera es la manera "antigua" (la única ofrecida antes del núcleo 2.0.0). Utiliza un programa de configuración independiente que es parte del controlador de sonido. Este método funciona con la mayoría de las tarjetas de sonido excepto con las pocas que requieren controladores adicionales de bajo nivel (miroSOUND, AWE32, y AEDSP16).

El segundo es el "nuevo" método que está mejor integrado con la configuración basada en menús utilizada para el resto del kernel. Este método no funciona bien con las tarjetas de sonido que requieren un fichero descargado de la propia empresa. Esto afecta a las tarjetas PSS, SM Wave, AudioTrix Pro y TurtleBeach Tropez/Maui. Con estas tarjetas debe usarse el método antiguo.

El método "nuevo" se utiliza siempre al hacer "make xconfig". Cuando se utiliza "make menuconfig" puede elegir entre los métodos nuevo y viejo en la submenú de sonido. Cuando utilice "make config" se usará el método viejo por defecto. Sin embargo, si usted ha utilizado el método "nuevo" alguna vez, "make config" lo utilizará también. Puede volver al método "viejo" ejecutando "make menuconfig" y eligiendo el metodo "antiguo".

El método recomendado es utilizar "make menuconfig" junto con el método de configuración de sonido "antiguo". Muchos problemas de configuración son causados (al menos en parte) por el uso incorrecto del método "nuevo".

También es posible construir el controlador de sonido como un módulo cargable del núcleo. Yo recomiendo construir, en un principio, el controlador dentro del núcleo. Una vez que ha comprobado que funciona, si lo desea puede probar usando la opción de módulo del núcleo.

Cuando ejecute make config, active el soporte de sonido contestando "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. Tenga cuidado al contestar estas preguntas, ya que si contesta incorrectamente a alguna, repercutirá en preguntas posteriores. Por ejemplo, no conteste "yes" (sí) a la primera pregunta (PAS16) si realmente no tiene una PAS16. No active más tarjetas de las que realmente tiene, ya que consumen memoria. Además algunos controladores (como el MPU401) pueden entrar en conflicto con el controlador SCSI e impedir la arranque del núcleo.

Aquí listo una pequeña descripción de cada una de las opciones del diálogo de configuración. Conteste "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 introduce como respuesta una interrogación (?) saldrá un corto mensaje describiéndote esa opción de configuración.

Debe fijarse en que no todas las preguntas serán respondidas. El programa de configuración desactivará algunas preguntas dependiendo de las respuestas anteriores. Además él también elegirá algunas opciones automáticamente.

Old configuration exists in /etc/soundconf. Use it Y/n/?

Si previamente ha compilado el núcleo para soporte de sonido entonces la configuración anterior se puede salvar. Si desea usar los valores anteriores conteste "y" (sí). Si está probando una configuración diferente o ha actualizado a un núcleo nuevo, debe contestar "n" (no) e ir a través del proceso de configuración.

ProAudioSpectrum 16 support Y/n/?

Conteste "y" (sí) sólo si tiene una Pro Audio Spectrum 16 , Pro Audio Studio 16 o Logitech SoundMan 16. No conteste "y" (sí) si tiene otra tarjeta de Media Visión o Logitech ya que no son compatibles con PAS16.

SoundBlaster support Y/n/?

Conteste "y" (sí) sólamente si posee una SoundBlaster original de Creative Labs o una clónica 100% compatible a nivel hardware como por ejemplo una Thunderboard o una SM Games. Si su tarjeta estaba en la lista de tarjetas soportadas busque las instrucciones específicas en el fichero Readme.cards antes de contestar a la pregunta. Para una tarjeta desconocida puede contestar "y" (sí) si la tarjeta presume de ser compatible con SoundBlaster.

Gravis Ultrasound support Y/n/?

Conteste "y" (sí) si tienes una GUS o una GUS MAX. Conteste "n" (no) en caso contrario ya que el controlador consume mucha memoria.

MPU-401 support (NOT for SB16) Y/n/?

Tenga cuidado con esta pregunta. El interfaz MPU401 es soportado por casi todas las tarjetas de sonido, aunque algunas tarjetas tienen su propio controlador MPU401. Activar la opción MPU401 con esas tarjetas causará un conflicto. También el activar MPU401 en un sistema que realmente no tiene un MPU401 puede causar algún problema. Si su tarjeta estaba en la lista de tarjetas soportadas busque las instrucciones específicas en el fichero Readme.cards. Es seguro contestar "y" (sí) si posee una verdadera tarjeta interfaz MPU401 MIDI.

6850 UART Midi support Y/n/?

Lo mejor es contestar "n" (no) siempre. El interfaz UART 6850 raramente es usado.

PSS (ECHO-ADI2111) support Y/n/?

Conteste "y" (sí) solamente si tiene una Orchid SW32, Cardinal DSP16 o alguna otra tarjeta basada en el juego de chips PSS (AD1848 codec + ADSP-2115 DSP chip + Echo ESC614 ASIC CHIP).

16 bit sampling option of GUS (not GUS MAX) Y/n/?

Conteste "y" (si) si tiene instalada una tarjeta hija de 16 bits en su GUS. Conteste "n" (no) si tiene una GUS MAX. Activando esta opción se desactiva el soporte GUS MAX.

GUS MAX support Y/n/?

Conteste "y" (sí) sólo si tiene una GUS MAX.

Microsoft Sound System support Y/n/?

Piense otra vez cuidadosamente antes de contestar "y" (sí) a esta pregunta. Lo mejor es contestar sí cuando se tenga una tarjeta original Windows Sound System fabricada por Microsoft o una Aztech SG16 Pro (o una NX16 Pro). También puede contestar "y" (sí) en el caso de que su tarjeta no estuviera en la lista anterior. Para las tarjetas que tienen soporte del controlador, consulte las instrucciones específicas en el fichero Readme.cards. Algunos controladores tienen su propio soporte MSS y por lo tanto activar esta opción causará un conflicto.

Ensoniq Soundscape support Y/n/?

Conteste "y" (sí) si tiene una tarjeta basada en el juego de chips Ensoniq Soundscape. Estas tarjetas son fabricadas, al menos, por Ensoniq, Spea y Reveal (Reveal hace otras tarjetas también).

MediaTriX AudioTriX Pro support Y/n/?

Conteste "y" (sí) si tiene una AudioTriX Pro.

Support for MAD16 and/or Mozart based cards?

Conteste "y" (sí) si su tarjeta tiene un chip de interfaz de audio Mozart (OAK OTI-601) o un MAD16 (OPTI 82C928 o 82C929). Estos chips son actualmente muy comunes por lo que es posible que algunas tarjetas "sin nombre" tengan alguno de ellos. Además el chip MAD16 es usado en algunas tarjetas fabricadas por fabricantes como Turtle Beach (Tropez), Reveal (algunos modelos) y Diamond (modelos más recientes).

Support for Crystal CS4232 based (PnP) cards Y/n/?

Conteste "y" (sí) si su tarjeta está basada en el juego de chips Crystal CS4232.

Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers Conteste "y" (sí) si tiene algunas de estas tarjetas.

SoundBlaster Pro support Y/n/?

Active esta opción si su tarjeta es una SoundBlaster Pro o SoundBlaster 16. Activela también con cualquier clónico de la SoundBaster Pro. Contestar "n" (no) ahorra algo de memoria pero contestar "y" (sí) es la mejor opción.

SoundBlaster 16 support Y/n/?

Actívela si tiene una SoundBlaster 16 (incluída la AWE32 o AWE64).

Audio Excel DSP 16 initialization support Y/n/?

Active esta opción si tiene una tarjeta Audio Excel DSP 16. Mire el fichero readme.aedsp16 para más informació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. Conteste "n" (no) solamente si sabe que no va a utilizar esa opción.

/dev/dsp and /dev/audio support (usually required) Y/n/?

Conteste "y" (sí). Si contesta "n" (no) desactivará los dispositivos de los conversores A/D y D/A: /dev/dsp y /dev/audio.

MIDI interface support Y/n/?

Si contesta "n" (no) desactivará los dispositivos /dev/midixx y el acceso a cualquier puerto MIDI usando /dev/sequencer y /dev/music. Esta opción también afecta a los dispositivos compatibles con el MPU401 y/o General MIDI.

FM synthesizer (YM3812/OPL-3) support Y/n/?

Conteste "y" (sí) aquí.

/dev/sequencer support Y/n/?

Contestar "n" (no) desactivará /dev/sequencer y /dev/music.

Do you want support for the mixer of SG NX Pro ?

Conteste "y" (sí) si tiene una tarjeta Sound Galaxy NX Pro y quieres soporte para sus funciones extra del mezclador.

Do you want support for the MV Jazz16 (ProSonic etc.) ?

Conteste "y" (sí) si tiene una tarjeta MV Jazz16.

Do you have a Logitech SoundMan Games Y/n/?

Conteste "y" (sí) si tiene una tarjeta Logitech SoundMan Games.

Después de las preguntas anteriores, el programa de configuración pregunta por la información específica de la tarjeta. Generalmente es indicar 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 controlador durante la compilación. Lea de nuevo la información concerniente a su tarjeta en el fichero Readme.cards.

Por último se le preguntará:

          The sound driver is now configured.
          Save copy of this configuration to /etc/soundconf [Y/n/?]

Normalmente debe contestar "y" (sí) de manera que si más tarde necesita recompilar el núcleo tendrá la opción de usar la misma configuración del controlador de sonido.

Si estás actualizando un controlador anterior de sonido, asegúrese de que los ficheros

/usr/include/sys/soundcard.h y /usr/include/sys/ultrasound.h son enlaces simbólicos a los

ficheros correspondientes en /usr/include/linux o que simplemente contienen las líneas #include

<linux/soundcard.h> y #include <linux/ultrasound.h>, respectivamente.

Ahora está preparado para compilar e instalar el nuevo núcleo.

4.3 Creando los ficheros de dispositivo.

Para operar correctamente, deben crearse los ficheros de dispositivos de sonido. Normalmente, estos se crean durante la instalación de su sistema Linux. Puede efectuarse un chequeo rápido utilizando el comando listado más abajo. Si el comando responde de la manera mostrada (la fecha puede variar), entonces los ficheros de dispositivo son, casi seguro, correctos.

     % ls -l /dev/sdnstat
     crw-rw-rw-   1 root     root      14,   6 Apr 25  1995 /dev/sndstat

Dése cuenta de que tener los ficheros de dispositivo correctos no garantiza nada de por sí. El controlador del núcleo debe también estar cargado y compilado antes de que los dispositivos funcionen (se hablará más de ello más tarde).

En algunos casos, si usted cree que los ficheros de dispositivo son erróneos, puede crearlos de nuevo utilizando el script que viene al final del fichero Readme.linux en el directorio /usr/src/linux/drivers/sound, ejecutándolo como root. De manera alternativa, la mayor parte de las distribuciones Linux tienen el script /dev/MAKEDEV el cual puede ser utilizado para este propósito.

Si está utilizando el controlador del altavoz del PC, lea la documentación que adjunta al paquete para determinar qué ficheros de dispositivo necesita crear.

4.4 Inicializando Linux y comprobando la instalación.

Ahora debe estar preparado para inicializar el núcleo y comprobar los controladores de sonido. Siga el procedimiento habitual para instalar y reinicializar el nuevo núcleo (por supuesto tenga a mano el anterior núcleo por si hay problemas)

Durante la inicialización, compruebe si se da un mensaje como el siguiente durante el arranque (si las líneas aparecen muy rápido y no las puede leer, utilice el comando dmesg):

     Sound initialization started
     <Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
     <Sound Blaster 16> at 0x330 irq 5 dma 0
     <Yamaha OPL3 FM> at 0x388
     Sound initialization complete

Éste debe coincidir con el tipo de tu tarjeta de sonido y con los parámetros determinados por los jumpers que tenga (si es que tiene alguno).

Tenga en cuenta que los mensajes de más arriba no se muestran cuando se usa el módulo cargable del controlador del sonido (a menos que lo habilite, utilizando "insmod sound trace_init=1).

Cuando el controlador de sonido está compilado dentro del núcleo, deberían mostrarse los mensajes "Sound initialization started" y "Sound initialization complete". Si no se muestran, es que no hay controlador de sonido presente en el núcleo. En ese caso, debería comprobar que usted instaló realmente el núcleo que compiló tras habilitar el soporte de sonido.

Si no se muestra nada entre las líneas de "Sound initialization started" y "Sound initialization complete", quiere decir que no se detectaron dispositivos de sonido. Lo más probable es que usted no tenga habilitado el controlador correcto, que la tarjeta no esté soportada, que el puerto E/S no es el correcto, o que tiene una tarjeta PnP que no ha sido configurada.

El controlador también puede mostrar mensajes de error y advertencias durante el inicio. Esté atento para localizar alguno cuando inicie por primera vez después de haber configurado el controlador de sonido.

Lo siguiente que debe comprobar es el fichero de dispositivo /dev/sndstat. Leer el fichero de dispositivo del estado del controlador de sonido debería proporcionar información adicional acerca de si se inicializó correctamente el controlador de la tarjeta. Un ejemplo de esta información sería el siguiente:

     % cat /dev/sndstat
     Sound Driver:3.5.4-960630 (Sat Jan 4 23:56:57 EST 1997 root,
     Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586)
     Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586
     Config options: 0
     Installed drivers:
     Type 1: OPL-2/OPL-3 FM
     Type 2: Sound Blaster
     Type 7: SB MPU-401
     Card config:
     Sound Blaster at 0x220 irq 5 drq 1,5
     SB MPU-401 at 0x330 irq 5 drq 0

     OPL-2/OPL-3 FM at 0x388 drq 0
     Audio devices:
     0: Sound Blaster 16 (4.13)
     Synth devices:
     0: Yamaha OPL-3
     Midi devices:
     0: Sound Blaster 16
     Timers:
     0: System clock
     Mixers:
     0: Sound Blaster

El comando de más arriba puede devolver algunos mensajes de error. "No such file or directory" indica que necesita crear los ficheros de dispositivo (vea sección 4.3). "No such device" indica que el controlador de sonido no está cargado o enlazado con el núcleo. Vuelva a la sección 4.2 para corregir esto.

Si las líneas dentro de la sección "Card config:" de /dev/sndstat están listadas entre paréntesis (tal como (SoundBlaster at 0x220 irq 5 drq 1,5)"), significa que el dispositivo fue configurado pero no detectado.

Ahora debe estar preparado para reproducir un fichero de sonido. Consiga un fichero de ejemplo y envíelo al dispositivo de sonido para comprobar la salida de sonido. Por ejemplo:

     % cat endoftheworld >/dev/dsp
     % cat crash.au >/dev/audio

(Asegúrese de que no omitir el ">" en estos comandos)

Fíjese de que, en general, usar cat no es la manera correcta de reproducir archivos de sonido, esto es sólo una prueba rápida. Deseará conseguir un reproductor de sonido en regla (descrito más tarde) que hará un mejor trabajo.

Este comando sólo funcionará si existe, al menos, un dispositivo listado en la sección "audio devices" de /dev/sndstat. Si esa sección está vacía debería comprobar por qué no fue detectado el dispositivo.

Si los comandos de arriba devuelven "I/O error", debería mirar al final de los mensajes del núcleo listados utilizando dmesg. Lo mas probable es que allí se muestre un mensaje de error. Muy a menudo el mensaje es: "Sound: DMA (output) timed out - IRQ/DRQ config error?". Este mensaje siginifica que el controlador no pudo conectar con la tarjeta de sonido en la IRQ esperada. En la mayor parte de los casos esto quiere decir que el IRQ o el canal DMA configurados en el controlador no funcionan. La manera más sencilla de conseguir que funcione es intentar con todas las posibles DMAs e IRQs soportados por el dispositivo.

Otra posible razón es que el dispositivo no sea compatible con el dispositivo hacia el cual está configurado el controlador. Esto es casi cierto en el caso de una supuesta "SoundBlaster (Pro/16) compatible" que no funciona con el controlador SoundBlaste. En ese caso debería intentar averiguar el dispositivo con el que su tarjeta es compatible (enviando un mensaje al foro de noticias comp.os.linux.hardware, por ejemplo).

Algunos ficheros de sonido de ejemplo se pueden obtener de:

ftp://tsx-11.mit.edu

Ahora puede comprobar la grabación de sonido. Si tiene una tarjeta de sonido con capacidad de entrada, puede realizar una prueba rápida con utilizando los siguientes comandos.

     # graba 4 segundos de audio desde el micrófono
     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 necesita tener un micrófono conectado a la tarjeta de sonido. También necesita un programa mezclador (mixer) para seleccionar al micrófono como dispositivo de entrada y ajustar el nivel de grabación.

Si supera estas pruebas, puede confiar razonablemente en que el hardware y el software D/A y A/D funciona. Si tiene problema, mire la siguiente sección de este documento.

4.5 Resolución de problemas.

Si después de seguir las instrucciones de este documento todavía tiene problemas, aquí hay algunas cosas que debe 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.

4.5.1 Punto 1: Asegúrese de que realmente está ejecutando el núcleo compilado con soporte para sonido.

Puede comprobar la fecha del kernel para ver si está ejecutando el que compiló con soporte para sonido. Para comprobarlo, utilice el comando uname:

     % uname -a
     Linux fizzbin 2.0.0 #1 Tue Jun 4 16:57:55 EDT 1996 i386

o imprimiendo por pantalla el archivo /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 se corresponde con la que era cuando compiló el núcleo por última vez, entonces usted está ejecutando un núcleo anterior. ¿Reinicializó Linux? Si usa LILO, ¿lo reinstaló (ejecutando, normalmente, /etc/lilo/install)?. Si arranca desde disquete, ¿creó un nuevo disco de inicio y lo usó al arrancar?.

4.5.2 Punto 2: Asegúrese de que los controladores de sonido del núcleo están compilados en él.

La manera más facil de hacer esto es comprobar la salida de "dev/sndstat" tal y como se describió más arriba. Si la salida no es como se esperaba, entonces ocurrió algo con la configuración o construcción del núcleo. Comience de nuevo el proceso de instalación, comenzando con la instalación y construyendo el núcleo.

4.5.3 Punto 3: ¿Detectó el núcleo su tarjeta de sonido durante la inicialización?

Asegúrese de que la tarjeta de sonido fue detectada cuando rearrancó el núcleo. Debería haber visto un mensaje durante la inicialización del núcleo. Si el mensaje desapareció de la pantalla muy pronto, puede revisarlo usando el comando dmesg:

     % dmesg

o

     % tail /var/adm/messages

Si su tarjeta de sonido no fue encontrada entonces algo no funcionó. Asegúrese de que está bien instalada. Si la tarjeta de sonido funciona bajo DOS entonces se puede asegurar que no es debido al hardware por lo que seguramente el problema esté en la configuración del núcleo. Quizá configuró su tarjeta como otra de otro tipo o con parámetros equivocados, o quizás su tarjeta no es compatible con los controladores de tarjeta de sonido del núcleo de Linux.

Una posibilidad es que su tarjeta sea una del tipo "compatible" que requiere inicialización por el controlador del DOS. Intente arrancar DOS y cargar el controlador suministrado por el vendedor de la tarjeta de sonido. Después reinicie Linux "en caliente" pulsando Control-Alt-Supr. Asegúrese de que la dirección E/S, el DMA y el IRQ para Linux son los mismos que los usados bajo DOS. Lea el fichero Readme.cards para configurar su tipo de tarjeta.

Si su tarjeta de sonido no está listada en este documento, es posible que los controladores de Linux no la soporten. Compruebe las referencias listadas al final de este documento.

4.5.4 Punto 4: ¿Puede leer datos desde el dispositivo dsp?

Intente 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, entonces es posible que el problema sea un conflicto IRQ o DMA o algun tipo de incompatibilidad hardware (el dispositivo no está soportado por Linux o el controlador está configurado para un dispositivo incorrecto).

Una posibilidad remota es que sea problema del hardware. Intente comprobar el controlador bajo DOS, si es posible, para eliminar esta posibilidad.

4.5.5 Punto 5: Cuando todo falla

Si todavía tiene problemas, aquí van unas sugerencias finales:

• Relea este documento cuidadosamente.

• Lea las referencias listadas al final de este documento, especialmente las páginas Web de Hannu Savolainen y las concernientes a los ficheros Readme del código fuente del núcleo.

• Envíe su pregunta al foro de noticias comp.os.linux o a cualquier otro foro de Usenet (comp.os.linux.hardware es una buena elección; debido a la gran cantidad de tráfico en esos grupos ayudará que ponga la palabra "sound" en la cabecera Asunto del artículo para que los expertos adecuados puedan leerla).

• Usar un motor de búsqueda Web/Usenet con un criterio de selección "inteligente" puede dar buenos resultados de manera rápida. Uno de estos motores es http://www.altavista.digital.com

• Intente usar el último núcleo Linux (pero sólo como último recurso: los últimos núcleos de desarrollo pueden ser inestables).

• Envíe un mensaje al autor del controlador de sonido.

• Envíe un mensaje al autor de este documento.

• Ejecute emacs y teclee Esc-x doctor :-)

5 Aplicaciones que soporten sonido.

Aquí doy un ejemplo de los tipos de aplicaciones que querría si posee una tarjeta de sonido bajo Linux. Compruebe el Mapa de Software de Linux (Linux Software Map), sitios FTP en Internet, y/o ficheros en su CD-ROM de Linux para conseguir información mas actualizada. Como mínimo, a ti te gustaría obtener las siguientes aplicaciones de sonido:

• Utilidad de conversión a formato de fichero de audio (por ejemplo Sox).

• Utilidad de mezcla (por ejemplo aumix o xmix).

• Reproductor/grabador de ficheros digitalizados (por ejemplo play o wavplay).

• Reproductor de ficheros MOD (por ejemplo tracker).

• Reproductor de ficheros MIDI (por ejemplo mp).

Existen versiones de texto y también versiones gráficas de esas herramientas. También hay aplicaciones más esotéricas que quizás le gustaría probar (por ejemplo reconocimiento y síntesis de voz).

6 6. Respuestas a Preguntas Usualmente Formuladas (PUF).

Esta sección contesta algunas de las preguntas que mas comúnmente han aparecido en los grupos de noticias Usenet y en las listas de correo.

6.1 ¿Cuáles son los ficheros de dispositivo de sonido?

Éstos son los nombres de ficheros de dispositivo "estándar", aunque algunas distribuciones de Linux utilizan nombres ligeramente diferentes.

/dev/audio

normalmente un enlace a /dev/audio0 /dev/audio0

Dispositivo de audio compatible con las estaciones de trabajo Sun (solamente una implementación parcial, ya que no soporta el interfaz ioctl y sólo permite formato u-law)

/dev/audio1

Segundo dispositivo de audio (si es soportado por la tarjeta o si hay más de una tarjeta instalada) /dev/dsp

Normalmente un enlace a /dev/dsp0 /dev/dsp0

Primer dispositivo de muestreo digital /dev/dsp1

Segundo dispositivo de muestreo digital /dev/mixer

Normalmente un enlace a /dev/mixer0 /dev/mixer0

Primer mezclador de sonido /dev/mixer1

Segundo mezclador de sonido /dev/music

Interfaz del secuenciador de alto nivel /dev/sequencer

Acceso a bajo nivel MIDI, FM, y GUS /dev/sequencer2

Normalmente un enlace a /dev/music /dev/midi00

Primer puerto MIDI directo /dev/midi01

Segundo puerto MIDI directo /dev/midi02

Tercer puerto MIDI directo /dev/midi03

Cuarto puerto MIDI directo /dev/sndstat

Visualiza el estado del controlador de sonido cuando es leído

El controlador del altavoz del PC incorpora los siguientes dispositivos:

/dev/pcaudio

equivalente a /dev/audio /dev/pcsp

equivalente a /dev/dsp /dev/pcmixer

equivalente a /dev/mixer

6.2 ¿Cómo puedo reproducir una muestra de sonido?

Los ficheros de sonido de las estaciones de trabajo Sun (.au) pueden ser reproducidos enviándolos al dispositivo /dev/audio. Las muestras pueden ser enviadas al /dev/dsp. Es preferible usar un programa como por ejemplo play, el cual reconocerá la mayoría de los tipos de ficheros y pasará a la tarjeta de sonido la correcta frecuencia de muestreo, etc.

Programas como wavplay o vplay (en el paquete snd-util) darán los mejores resultados con archivos WAV. Sin embargo, no reconocen el los archivos WAV con formato de compresión Microsoft ADPCM. Versiones antiguas de play (del paquete Lsox) tampoco funcionarán bien con los archivos WAV de 16 bit.

El comando splay incluido en el paquete snd-util puede utilizarse para reproducir la mayor parte de los archivos de sonido si se introducen manualmente los parámetros adecuados en la línea de comandos.

6.3 ¿Cómo puedo grabar una muestra?

Leer de /dev/audio o /dev/dsp devolverá un muestreo de datos que puede ser redireccionado a un fichero. Un programa como el vrec hará más fácil el controlar la frecuencia de muestreo, la duración, etc. También se necesita un programa muestreador para seleccionar el dispositivo de entrada adecuado.

6.4 ¿Puedo tener más de una tarjeta de sonido?

Con el controlador actual de sonido es posible tener varias tarjetas SoundBlaster, SoundBlaster Pro, Sound-Blaster 16, MPU-401 o MSS en el sistema. Instalar dos SoundBlasters es posible pero requiere definir las macros SB2_BASE, SB2_IRQ, SB2_DMA y (en algunos casos) SB2_DMA2 editando local.h manualmente. También es posible tener una SoundBlaster a la vez que una PAS16.

Con los nuevos núcleos 2.0.x que configure utilizando make config, en lugar del fichero local.h, será necesario editar el fichero /usr/incluide/linux/autoconf.h. Tras la sección que contiene las líneas:

     #define SBC_BASE 0x220
     #define SBC_IRQ (5)
     #define SBC_DMA (1)
     #define SB_DMA2 (5)
     #define SB_MPU_BASE 0x0
     #define SB_MPU_IRQ (-1)

añada estas otras (con los valores adecuados a su sistema):

     #define SB2_BASE 0x330
     #define SB2_IRQ (7)
     #define SB2_DMA (2)
     #define SB2_DMA2 (2)

Los siguientes controladores no permiten instancias múltiples

• GUS (limitación de controlador)

• MAD16 (limitación hardware)

• AudioTrix Pro (limitación hardware)

• CS432 (limitación hardware)

6.5 Error: No such file or directory for sound devices

Necesita crear los ficheros de dispositivo del controlador de sonido. Vea la sección sobre creación de ficheros de dispositivo. Si tiene que crear los ficheros de dispositivo, asegúrase de que tienen los números de dispositivo mayor y menor correcto (algunas distribuciones antiguas en CD-ROM de Linux no crean los ficheros de dispositivo correctos durante la instalación).

6.6 Error: No such device for sound devices

No ha arrancado con un núcleo que contenga el controlador de sonido o la dirección de E/S de la configuración no corresponde con su hardware. Compruebe que está ejecutando el núcleo recién compilado y verifique que las opciones introducidas en la configuración del controlador de sonido corresponden con las opciones del hardware.

6.7 Error: No space left on device for sound devices

Esto puede ocurrir si intenta grabar datos a /dev/audio o /dev/dsp sin haber creado los ficheros de dispositivo necesarios. El dispositivo de sonido ahora es un fichero normal y ocupa espacio en su partición de disco. Necesita ejecutar el script descrito en la sección sobre creación de ficheros de dispositivo de este documento.

Esto también puede suceder con Linux 2.0 y posteriores si no hay suficiente memoria RAM libre en el sistema cuando se abre el dispositivo. El controlador de sonido requiere, al menos, dos páginas (8k) de memoria física RAM contiguas para cada canal DMA. Esto sucede, a veces, en máquinas con menos de 16M de RAM o que llevan encendidas durante mucho tiempo. Es posible liberar algo de RAM compilando y ejecutando el siguiente programa en C antes de intentar abrir de nuevo el dispositivo:

     main() {
       int i;
       char mem[500000];
       for (i = 0; i < 500000; i++)
         mem[i] = 0;
       exit(0);
     }

6.8 Error: Device busy for sound devices

Solamente puede abrirse un proceso a la vez en un dispositivo de sonido. A la mayoría nos gustaría saber si otro proceso está usando el dispositivo en cuestión. Una forma de averiguar ésto es usar el comando fuser:

% fuser -v /dev/dsp /dev/dsp:  USER PID ACCESS COMMAND tranter 265 f....  tracker

En el ejemplo de arriba, el comando fuser muestra que el proceso 265 tiene el dispositivo abierto. Esperar a que el proceso se complete o matarlo permitirá que el dispositivo de sonido pueda ser accedido una vez más. Usted debe ejecutar el comando fuser como root para recibir un informe de lo que están utilizando otros usuarios aparte de usted mismo.

6.9 ¡Todavía tengo errores de dispositivo ocupado (device busy)!

De acuerdo con Brian Gough, para las tarjetas SoundBlaster que usan el canal DMA 1 hay un conflicto en potencia con el controlador de la cinta QIC-02, la cual también usa el DMA 1, causando los errores "device busy". Si está usando FTAPE, debe tener este controlador activado. De acuerdo con el FTAPE-HOWTO el controlador QIC-02 no es esencial para el uso de FTAPE; solamente el controlador QIC-117 es necesario. Reconfigurar el núcleo para usar el QIC-117 en vez del QIC-02 permite coexistir a FTAPE y al controlador de sonido.

6.10 Reproducción parcial de un fichero de sonido digitalizado.

Generalmente, el síntoma es que una muestra de sonido se reproduce durante un segundo y después se para completamente o devuelve un mensaje de error como "missing IRQ" o "DMA timeout". La mayoría de las veces significa que los parámetros del IRQ o del canal DMA son incorrectos. Verifique que la configuración del núcleo corresponde con los jumpers de la tarjeta de sonido y que no entran en conflicto con otro dispositivo.

Otro síntoma es que la muestra de sonido se "repite". Esto es generalmente causado por un conflicto IRQ.

6.11 Hay pausas cuando reproduzco ficheros MOD.

Reproducir ficheros MOD absorbe gran capacidad de la CPU. Si tiene demasiados procesos ejecutándose en su ordenador, no se podrá reproducir en tiempo real. Las posibles opciones son:

• Intente reproducir con una menor frecuencia de muestreo o en modo mono.

• Elimine otros procesos.

• Compre un ordenador más rápido.

• Compre una tarjeta de sonido más potente (por ejemplo, Gravis Ultrasound).

Si tiene una tarjeta Gravis Ultrasound, debe usar uno de los reproductores de ficheros MOD escritos específicamente para la GUS (por ejemplo gmod).

6.12 Errores de compilación al compilar aplicaciones de sonido.

El controlador de sonido versión 1.0c y anteriores usaban un esquema ioctl() diferente e incompatible. Obtenga un código fuente más moderno o haga los cambios necesarios para adaptarlo al nuevo controlador de sonido. Lea el fichero del controlador de sonido Readme para más detalles.

Asegúrese también de que ha usado la última versión del soundcard.h y ultrasound.h cuando compile la aplicación. Lea las instrucciones de instalación al comienzo de este texto.

6.13 Obtengo SEGV al ejecutar programas de sonido que antes funcionaban.

Este es probablemente el mismo problema que el descrito en la anterior cuestión.

6.14 ¿Dónde está la documentación del controlador de sonido, ioctlz(), etc..? Estos están documentados parcialmente en la Hacker’s Guide to VoxWare, disponible en formato borrador en la actualidad. La última versión es el

      borrador 2, y puede encontrarse en ftp://nic.funet.fi/pub/Linux/ALPHA/

sound/ . Hay que señalar que este directorio está "escondido" y no aparece en los listados de directorios. Si usted hace un "cd" al directorio y usa el comando FTP "dir", los ficheros están ahí. En el momento de escribir estas líneas, se puso disponible nueva documentación en la Página Web de 4Front Technologies. Otra fuente de información es la Guía Linux Multimedia, descrita en la sección Referencias.

6.15 ¿Cúales son los recursos de la CPU necesarios para reproducir o grabar sin pausas?

No hay una respuesta fácil para esta pregunta, ya que depende de:

• Si se utiliza muestreo PCM o síntesis FM.

• Frecuencia de muestreo y tamaño de muestreo.

• Qué aplicación está utilizando para reproducir o grabar.

• Hardware de la tarjeta de sonido.

• Frecuencia de I/O del disco, velocidad del reloj de la CPU, tamaño del caché, etc.

En general, las máquinas 386 deberían ser capaces de reproducir muestras o música sintetizada FM en una tarjeta de sonido de 8 bits sin problemas.

Reproducir ficheros MOD, necesita muchos recursos de la CPU. Algunas medidas experimentales han mostrado que reproducir a 44kHz necesita más del 40% de la velocidad de un 486/50 y un 386/25 ha penas puede reproducir rápidamente más de 22kHz (con una tarjeta de 8 bits como la SoundBlaster). Una tarjeta como la Gravis UltraSound ejecuta más funciones en el hardware y requerirá menos recursos de la CPU.

Todo esto supone que el ordenador no está ejecutando otras tareas intensivas en la CPU.

Convertir ficheros de sonido y añadir efectos usando una utilidad como Sox es mucho más rápido si tienes un coprocesador matemático (o un procesador con coprocesador integrado). El controlador del núcleo por si mismo no hace cálculos de coma flotante.

6.16 Problemas con una PAS16 y una controladora SCSI Adaptec 1542.

(La siguiente explicación fue proporcionada por seeker@indirect.com) Linux sólo reconoce la 1542 en la dirección 330 (por defecto) o en la 334 y la PAS solamente permite la emulación MPU-401 en la 330. Aunque se desactive el MPU-401 bajo software, algo todavía entra en conflicto con el 1542 si continúa con su dirección por defecto. Mover la 1542 a la dirección 334 hace feliz a ambas.

Además, tanto la 1542 como la PAS16 hacen DMA de 16 bits, por lo que si realiza una muestra a 16 bits 44kHz y en estéreo y guarda el fichero a un dispositivo SCSI se colgará el 1542, por lo que existe un problema. El DMA se solapa y no hay suficiente tiempo para refrescar la RAM, por lo que se obtiene el mensaje "PARITY ERROR-SYSTEM HALTED", sin ninguna pista que indique el motivo que lo causó.

Aún puede ser peor porque los vendedores de unidades de cinta QIC-117 recomiendan establecer el bus activado/desactivado durante un tiempo tal que la 1542 esté activada más tiempo del normal. Consiga el programa SCSISEL.EXE de la BBS de Adaptec o de cualquier otro lugar de Internet, y reduzca el tiempo del bus activado o incremente el tiempo del bus desactivado hasta que el problema se solucione. SCSISEL cambia los parámetros de la EEPROM, por lo que es más duradero que un parche en el controlador de DOS desde la línea del CONFIG.SYS, y funcionará si arranca directamente en Linux (cosa que no hará el parche de DOS)

El último problema: los viejos juegos de chip Symphony reducen drásticamente el tiempo de los ciclos de I/O para aumentar los accesos al bus. Ninguna de las tarjetas de sonido que he probado han dado ningún problema con el tiempo reducido excepto la PAS16. La BBS de Media Vision tiene el fichero SYMPFIX.EXE el cual se supone que soluciona el problema añadiendo un bit de diagnóstico en el controlador del bus del Symphony, pero no da muchas garantías. Usted puede necesitar:

• conseguir que el distribuidor de la placa base reemplace la antigua versión del chip del bus

• reemplazar la placa base, o

• comprar otra tarjeta de sonido de marca diferente.

Young Microsystems actualizará las placas que importaron por 30$ (US); otros vendedores harán lo mismo si puede probar quién hizo o importó la placa madre (buena suerte). El problema está en el chip del interfaz del bus de ProAudio, que yo sepa. Nadie compra una tarjeta de 120$ y la conecta a un AT de 6MHz. La mayoría lo hará en un 386/486 a 25-40MHz, y seguramente podrá manipular al menos frecuencias de bus de 12MHz si los chips están bien diseñados.

El primer problema depende del juego de chips usados en su placa base, de la velocidad del bus y de otros parámetros de la BIOS, y de la fase de la luna. El segundo problema depende del parámetro de la opción de refresco (oculto o sincronizado), de la frecuencia de DMA del 1542 y (posiblemente) de la frecuencia de E/S (entrada/salida) del bus. El tercero se puede determinar llamando a Media Vision y preguntándoles qué chip de Symphony es incompatible con su lento diseño. Atento: 3 de 4 técnicos con los que hablé tenían el cerebro dañado. Asistí atónito a todo lo que hablaron acerca del hardware de los demás, ya que ellos no parece que conozcan el suyo muy bien.

6.17 ¿Es posible leer y escribir muestras simultáneamente?

Debido a limitaciones del hardware, esto no es posible con la mayoría de las tarjetas de sonido. Algunas tarjetas nuevas lo soportan. Lea la sección de "modo bidireccional" en la Hacker’s Guide To VoxWare para más información.

6.18 Mi SB16 está puesta con un IRQ 2, pero la configuración no me deja usar este valor.

En los últimos 286, la interrupción IRQ 2 es asignada al segundo controlador de interrupciones. Es equivalente a IRQ 9.

6.19 ¿Están soportadas la SoundBlaster AWE32 o la SoundBlaster16 ASP?

En el pasado, Creative Labs no era partidaria de dar información acerca de la programación de estas tarjetas. Ellos han cambiado su política y en los núcleos Linux 2.1.x se incluye ahora un controlador AWE.

6.20 Si estoy en Linux y después inicio una sesión de DOS, tengo errores y/o las aplicaciones de sonido no funcionan correctamente.

Esto ocurre después de un reinicio en caliente hacia el DOS. Algunas veces el mensaje de error se refiere engañosamente a que está mal el fichero CONFIG.SYS.

La mayoría de las tarjetas de sonido tienen los parámetros del IRQ y del DMA programables por Software. Si tu usa parámetros diferentes entre el Linux y el MS-DOS/Windows, esto causará problemas. Algunas tarjetas de sonido no aceptan nuevos parámetros sin una completa inicialización (reset) (por ejemplo corte la corriente o pulse el botón de reset).

La solución más rápida para este problema es llevar a cabo un completo reinicio usando el botón de reset o cortando la energía después de un reinicio en caliente (por ejemplo ctrl-alt-del).

La solución correcta es asegurarse de utilizar los mismos parámetros IRQ y DMA en el MS-DOS y Linux (o no utilizar MS-DOS :-).

6.21 Problemas ejecutando DOOM bajo Linux.

Los usuarios del puerto para Linux del juego de ID Software DOOM pueden estar interesados en estas notas.

Para la correcta salida de sonido se necesita la versión 2.90 o posterior del controlador de sonido. Tiene soporte para el "modo DOOM" en tiempo real.

Las muestras de sonido son de 16 bits. Si usted posee una tarjeta de sonido de 8 bits puedes hacer que el sonido funcione usando uno de los muchos programas disponibles en

ftp://sunsite.unc.edu

Si la ejecución del DOOM en su sistema es pobre, desactivar el sonido (renombrando el fichero sndserver) puede mejorarla.

Por defecto DOOM no soporta música (como en la versión del DOS). El programa musserver añadirá soporte para música al DOOM bajo Linux. Lo puede encontrar en

ftp://pandora.st.hmc.edu

6.22 ¿Cómo puedo reducir el ruido recogido por mi tarjeta de sonido?

Usar cables con buen aislante y probar la tarjeta de sonido en diferentes ranuras le ayudará a reducir el ruido. Si la tarjeta de sonido tiene control de volumen puede intentar diferentes posiciones (al máximo es probablemente lo mejor).

Usar un programa mezclador le asegurará que las entradas no deseadas (por ejemplo el micrófono) están puestas a cero.

Algunas tarjetas de sonido simplemente no están diseñadas con buen aislante y con toma de tierra y son propensas a generar ruido.

Finalmente, en mi sistema encontré que la opción de línea de comandos del kernel no-hlt reduce el nivel de ruido. Esta opción le dice al kernel que no utilice la instrucción halt cuando ejecuta el bucle de procesos activos. Puede probar esto al arrancar, o establecerlo utilizando el comando append="no-hlt" en su fichero de configuración de LILO.

6.23 Puedo reproducir sonido, pero no puedo grabar.

Si puede reproducir sonido pero no puede grabar, siga estos pasos:

• Use un programa mezclador para elegir el dispositivo apropiado (como por ejemplo el micrófono).

• Use el mezclador para seleccionar la ganancia de entrada al máximo.

• Si puede, intente probar la tarjeta de sonido grabando bajo MS-DOS para comprobar si es un problema de hardware.

A veces, se utiliza un canal DMA distinto al grabar que al reproducir. En este caso la razón más probable es que el DMA de grabación no esté ajustado correctamente.

6.24 Mi tarjeta de sonido "compatible" sólo funciona si primero la inicializo bajo MS-DOS.

En la mayoría de los casos una tarjeta "compatible SoundBlaster" funcionará mejor bajo Linux si se configura con un controlador distinto al de la SoundBlaster. La mayoría de las tarjetas de sonido presumen de ser compatibles (como "compatible 16 bit SB Pro" o "SB compatible 16 bit") pero normalmente esta compatibilidad Sound Blaster es sólo un "truco" proporcionado para la compatibilidad con los juegos bajo DOS. La mayoría de las tarjetas tienen un modo nativo 16 bit que probablemente será soportado por las versiones de Linux más recientes (2.0.1 y posteriores).

6.25 Mi tarjeta de sonido "compatible" SoundBlaster 16-bit sólo funciona en el modo 8-bit bajo Linux

Las tarjetas de sonido de 16 bits descritas como compatibles SoundBlaster realmente sólo son compatibles con la SoundBlaster Pro de 8 bits. Generalmente tienen un modo de 16 bits que no es compatible con la SoundBlaster 16 y tampoco es compatible con el controlador de sonido del Linux.

Puede conseguir que la tarjeta funcione en modo 16-bits utilizando el controlador MAD16 o MSS/WSS.

6.26 ¿Dónde puedo encontrar aplicaciones de sonido para Linux?

Estos son unos buenos sitios para buscar aplicaciones específicas de sonido para Linux:

   • ftp://sunsite.unc.edu:/pub/Linux/kernel/sound/
   • ftp://sunsite.unc.edu:/pub/Linux/apps/sound/
   • ftp://tsx-11.mit.edu:/pub/linux/packages/sound/
   • ftp://nic.funet.fi:/pub/Linux/util/sound/
   • ftp://nic.funet.fi:/pub/Linux/xtra/snd-kit/
   • ftp://nic.funet.fi:/pub/Linux/ALPHA/sound/

6.27 ¿Puede el controlador de sonido ser compilado como módulo cargable?

Con los últimos núcleos el controlador de sonido es soportado como un módulo cargable.

Lea los ficheros /usr/src/linux/drivers/sound/Readme.modules y /usr/src/linux/Documentation/modules.txt
(o /usr/src/linux/README) para más detalles.

6.28 ¿Puedo usar la tarjeta de sonido para sustituir el pitido de la consola del sistema?

Pruebe con el programa oplbeep disponible en

ftp://sunsite.unc.edu/pub/Linux/apps/sound/oplbeep-alpha.tar.gz

Una variante es el programa beep en

ftp://sunsite.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgz

El paquete modutils tiene un programa de ejemplo y un parche del núcleo que soporta llamadas a programas externos para generar los sonidos del núcleo.

Alternativamente, algunas tarjetas se pueden conectar al altavoz del PC por lo que todos los sonidos van a los altavoces de la tarjeta.

6.29 ¿Qué es VoxWare?

Los controladores de sonido del núcleo soportan diferentes sistemas operativos basados en la arquitectura Intel y compatibles con Unix, y se pueden obtener como un paquete separado del núcleo del Linux. Hasta febrero del 96 el autor había llamado al software "VoxWare". Desafortunadamente este nombre ha sido registrado por VoxWare Incorporated, y no puede ser usado. El nuevo nombre del controlador es OSS/Free.

El Open Sound System es un controlador del sonido del núcleo disponible comercialmente para varios sistemas Unix, vendido por 4Front Technologies. La versión libre, conocida como OSS/Free continuará siendo desarrollada totalmente gratis para los sistemas Linux.

Otros nombres con los que puede encontrarse que han sido usados en el pasado para referirse al mismo controlador de sonido son TASD (Controlador de Sonido Temporalmente Anónimo) y USS (Sistema de Sonido Unix).

Para más información visite la página Web de 4Front Technologies.

http://www.4front-tech.com . Escribí una revisión de OSS/Linux para la edición de Junio de 1997 de

Linux Journal .

6.30 ¿Están soportadas las tarjetas de sonido Plug-and-Play?

El soporte total de Plug and Play irá desarrollándose en la versión 2.1.x de Linux. En este momento hay un buen número de formas para conseguir que las tarjetas de sonido Plug and Play funcionen.

Si usted posee un sistema Pentium o superior con BIOS Plug and Play, éste ya cuidará de configurar las tarjetas por usted. Asegúrese de que usted configura el controlador de sonido de Linux para usar la misma dirección E/S, IRQ y canal DMA que las configuradas por la BIOS.

Hay un paquete de herramientas Plug and Play para Linux que puede utilizarse para ajustar la tarjeta. Puede encontrarse en el sitio Web de Red Hat http://www.redhat.com/

(puede también estar incluido en su distribución Linux).

Si usa la tarjeta bajo Windows95, puede utilizar el Administrador de Dispositivos para establecer los valores de la tarjeta, y rearrancar Linux en caliente utilizando el programa LOADLIN. Asegúrese de que Linux y Windows95 utilizan los mismos parámetros de configuración de la tarjeta.

Si utiliza la tarjeta bajo DOS, puede utilizar la utilidad icu que viene con las tarjetas SoundBlaster16 PnP para configurarlas bajo DOS, y luego rearrancar Linux en caliente utilizando el programa LOADLIN. De nuevo, asegúrese de que DOS y Linux utilizan los mismos parámetros de configuración de la tarjeta.

El controlador de sonido comercial OSS da soporte a la tarjeta SoundBlaster16 PnP. Puede adquirir este controlador de 4Front Technologies.

6.31 Sox/Play/Vplay saca el mensaje "invalid block size 1024"

Un cambio en el controlador de sonido de la versión 1.3.67 rompía algunos programas de reproducción de sonido los cuales (incorrectamente) comprobaban que el resultado del ioctl SNDCTL_DSP_GETBLKSIZE era mayor que 4096. Las utilidades incluidas en el último paquete snd-util-3.x.tar.gz (en ftp://ftp. 4front-tech.com/ossfree .) ahora manejan esto de manera adecuada. Las últimas versiones del controlador de sonido también han sido arregladas para impedir reservar fragmentos menores de 4096 bytes, lo que resuelve el problema con las utilidades antiguas.

6.32 ¿Por qué el controlador de sonido tiene su propio programa de configuración?

El controlador de sonido soporta diferentes parámetros de configuración. El programa configure incluido con el controlador de sonido comprueba las dependencias entre los parámetros. Las herramientas usadas para configurar el núcleo no soportan este nivel de funcionabilidad.

Los últimos núcleos permiten usar las herramientas de configuración del núcleo estándar con el controlador de sonido (vea la sección "Configurando el Núcleo").

6.33 Las opciones del mezclador son borradas cuando cargo el módulo del controlador de sonido

Puede construir el controlador de sonido como un módulo cargable y usar kerneld para cargarlo y descargarlo automáticamente. Esto puede presentar un problema: cuando el módulo se recarga los parámetros del mezclador vuelven a sus valores por defecto. Para algunas tarjetas de sonido esto puede ser muy ruidoso (por ejemplo la SB16) o muy silencioso. Markus Gutschke

gutschk@uni-muenster.de

encontró esta solución: use una línea en su fichero /etc/conf.modules como la que sigue:

     options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75

Esto hará que su programa mezclador (en este caso setmixer) sea ejecutado inmediatamente después de que su controlador de sonido es cargado. El parámetro dma_buffsize es sólo un valor "de pega" necesario porque el comando de opción requiere una opción en la línea de comando. Cambie la línea según corresponda a su programa mezclador y los parámetros de ganancia.

Si ha compilado el controlador de sonido dentro del núcleo y desea ajustar la ganancia del mezclador durante el reinicio, puede llamar al programa mezclador en un fichero de inicio del sistema como por ejemplo

/etc/rc.d/rc.local

6.34 Solamente el root puede grabar sonido.

Por defecto el script que hay en el fichero Readme.linux que crea los ficheros de dispositivo de sonido sólo permite que los dispositivos sean leídos por el root. Esto se hace para aumentar la seguridad. En un entorno de red, varios usuarios externos pueden conectarse de forma remota a un PC con Linux con tarjeta de sonido y micrófono y pueden escuchar a escondidas. Si a usted no le preocupa eso, puede cambiar los permisos usados en el script. Con la configuración original, los usuarios aún pueden reproducir ficheros de sonido. Esto no es un riesgo para la seguridad, pero es una posibilidad para molestar o ser molestado.

6.35 ¿Está soportado el hardware de sonido del IBM ThinkPad?

Puede encontrarse información acerca de cómo usar la tarjeta de sonido mwave del ordenador portátil IBM

ThinkPad en http://www.screamin.demon.co.uk/ .

7 Referencias

Si tiene una tarjeta de sonido que soporte CD-ROM o un interfaz SCSI, el Linux SCSI HOWTO y el Linux CD-ROM HOWTO tienen información adicional que puede serle muy útil. El Sound Playing HOWTO describe cómo reproducir los diversos tipos de ficheros de música y sonido bajo Linux. El Ultrasound Plug and Play Mini-Howto describe cómo conseguir que una tarjeta Gravis Ultrasound Plug and Play funcione bajo Linux. El Linux SoundBlaster 16 PnP Mini-HOWTO describe como conseguir que una tarjeta SoundBlaster16 PnP funcione bajo Linux. El Linux SoundBlaster AWE64 PnP Mini-HOWTO describe cómo conseguir que una tarjeta SoundBlaster AWE64 PnP funcione bajo Linux. Hay un viejo documento llamado Hacker’s Guide to VoxWare, disponible de ftp://nic.funet.fi/pub/Linux/ALPHA/sound/ . La mayor parte de la información existente ahí ha sido actualizada por los documentos en http://www.4front-tech.com/pguide , pero la sección acerca de /dev/sequencer aún puede ser util. Las siguientes PUF serán enviadas regularmente al grupo de noticias de Usenet news.announce y también serán archivadas en

ftp://rtfm.mit.edu/pub/usenet/news.answers :

• PCsoundcards/generic-faq (PUF genéricas acerca de tarjetas de sonido para PC)

• PCsoundcards/soundcard-faq (comp.sys.ibm.pc.soundcard PUF)

• PCsoundcards/gravis-ultrasound/faq (PUF acerca de Gravis UltraSound)

• audio-fmts/part1 (Descripciones de formatos de ficheros de audio)

• audio-fmts/part2 (Descripciones de formatos de ficheros de audio)

Las PUF también muestran bastantes listas de correo y sitios de archivos sobre productos específicos. Los siguientes grupos de noticias de Usenet tratan sobre temas de sonido y/o música:

• alt.binaries.sounds.* (varios grupos para enviar ficheros de sonido)

• alt.binaries.multimedia (para enviar ficheros Multimedia)

• alt.sb.programmer (temas de programación de la Soundblaster)

• comp.multimedia (temas acerca de multimedia)

• comp.music (Teoría e investigación sobre la música por ordenador)

• comp.sys.ibm.pc.soundcard.* (varios grupos acerca de tarjetas de sonido para el IBM PC)

Podemos encontrar una página Web dedicada a multimedia en

http://viswiz.gmd.de/MultimediaInfo/ . Creative Labs tiene su página Web en http://www.creaf.

com/ . MediaTrix tiene su página Web en

http://www.mediatrix.com/ .

Las listas de correo de Linux tienen un número de "canales" dedicados a diferentes temas, incluído el sonido. Para saber cómo suscribirse, envíe un mensaje con la palabra "help" como cuerpo del mensaje a

majordomo@vger.rutgers.edu . Estas listas de correo no son recomendadas para preguntas acerca de la configuración de la tarjeta de sonido, sino que se orientan hacia discusiones relacionadas con el desarrollo.

Como he mencionado en varias ocasiones, el controlador de sonido del núcleo incluye una serie de ficheros Readme que contienen información acerca del controlador de la tarjeta de sonido. Generalmente se encuentran

en el directorio /usr/src/linux/drivers/sound.

Puede contactar con el autor del controlador de sonido del núcleo, Hannu Savolainen, en la dirección

hannu@voxware.pp.fi . También tiene una página Web en

http://personal.eunet.fi/pp/voxware . Esta página es el mejor sitio para enterarse de las últimas tarjetas de sonido soportadas, problemas y solución de errores.

Información acerca de OSS, el controlador de sonido comercial para Linux y otros sistemas compatibles Unix, puede encontrarse en la página Web de 4Front Technologies en

http://www.4front-tech.com/ .

El Mapa de Software de Linux (Linux Software Map (LSM)) es una referencia de gran valor para localizar software de Linux. Buscar palabras en el LSM como por ejemplo sonido es una buena forma de identificar aplicaciones referentes a hardware de sonido. El LSM se puede encontrar en varios FTP anónimos, incluyendo

ftp://sunsite.unc.edu/pub/Linux/docs/LSM.gz .

El Proyecto de Documentación de Linux ha producido varios libros acerca Linux, incluyendo Linux: Instalación y Primeros Pasos^{1}. Están disponibles libremente en la mayoría de FTP anónimos de archivos de Linux, o también pueden ser comprados en formato impreso.

Por último, una puntualización un poco sinvergüenza: Si desea aprender un poco más sobre multimedia bajo Linux (especialmente programación de aplicaciones para tarjetas de sonido y CD-ROM), compre mi libro Guía Linux Multimedia, ISBN 1-5692-219-0, publicado por O’Reilly and Associates Además de la versión original inglesa, ahora están a la venta también las versiones francesa y japonesa. Para más detalles, llame al 800-998-

9938 en Norte América, o visite la página Web http://www.ora.com/catalog/multilinux/noframes.html

o mi página personal

http://www.pobox.com/~tranter .
   1Disponible en castellano en http://www.infor.es/LuCAS

8 Acerca de la traducción.

Esta traducción ha sido realizada por David Marín Carreño davefx@bigfoot.com basándose en la realizada por Sergio Alonso Manzanedo mailto:sa.manzanedo@vll.servicom.es de la versión 1.14, corrigiendo numerosos errores (entre ellos, el tuteo) y, añadiendo, supongo, otros propios en las partes nuevas.

9 Anexo: El INSFLUG

El INSFLUG forma parte del grupo internacional Linux Documentation Project, encargándose de las traducciones al castellano de los Howtos (Comos), así como la producción de documentos originales en aquellos casos en los que no existe análogo en inglés.

En el INSFLUG se orienta preferentemente a la traducción de documentos breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs. :) ), etc.

Diríjase a la sede del INSFLUG para más información al respecto.

En la sede del INSFLUG encontrará siempre las últimas versiones de las traducciones:

www.insflug.org . Asegúrese de comprobar cuál es la última versión disponible en el Insflug antes de bajar un documento de un servidor réplica.

Se proporciona también una lista de los servidores réplica (mirror) del Insflug más cercanos a Vd., e información relativa a otros recursos en castellano.

El equipo coordinador de Insflug,

insflug@insflug.org .