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.
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.
primera versión; enviada al canal SOUND de la lista de correo de activistas de Linux
actualizaciones menores; primera versión disponible para descarga
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
cambios menores de SGML; añadida respuesta a las incompatibilidades entre PAS16 y el adaptador SCSI Adaptec1542A
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
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
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
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
preguntas acerca de grabación y de tarjetas clónicas
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
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
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
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
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
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
muchas actualizaciones y correcciones realizadas por Hannu Savolainen; añadido enlace a la traducción española; cambios gramaticales menores
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
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
añadidas entradas al índice; documento CÓMO bajo licencia LDP mejor que GPL
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.
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.
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.
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.
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.
Las siguientes tarjetas de sonido son soportadas por el controlador de sonido del núcleo de Linux:
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:
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.
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 MultiSound (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).
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
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.
Configurar Linux para que soporte sonido implica los siguientes pasos:
La siguiente sección cubre cada uno de estos pasos en detalle.
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.
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.
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.
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.
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.
Conteste "y" (sí) si tienes una GUS o una GUS MAX. Conteste "n" (no) en caso contrario ya que el controlador consume mucha memoria.
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.
Lo mejor es contestar "n" (no) siempre. El interfaz UART 6850 raramente es usado.
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).
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.
Conteste "y" (sí) sólo si tiene una GUS MAX.
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.
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).
Conteste "y" (sí) si tiene una AudioTriX Pro.
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).
Conteste "y" (sí) si su tarjeta está basada en el juego de chips Crystal CS4232.
Conteste "y" (sí) si tiene algunas de estas tarjetas.
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.
Actívela si tiene una SoundBlaster 16 (incluída la AWE32 o AWE64).
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.
Conteste "y" (sí). Si contesta "n" (no) desactivará los dispositivos de los conversores A/D y D/A: /dev/dsp y /dev/audio.
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.
Conteste "y" (sí) aquí.
Contestar "n" (no) desactivará /dev/sequencer
y /dev/music
.
Conteste "y" (sí) si tiene una tarjeta Sound Galaxy NX Pro y quieres soporte para sus funciones extra del mezclador.
Conteste "y" (sí) si tiene una tarjeta MV Jazz16.
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.
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.
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.
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.
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?.
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.
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.
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.
Si todavía tiene problemas, aquí van unas sugerencias finales:
emacs
y teclee Esc-x doctor
:-)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:
Sox
).aumix
o xmix
).play
o
wavplay
).tracker
).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).
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.
Éstos son los nombres de ficheros de dispositivo "estándar", aunque algunas distribuciones de Linux utilizan nombres ligeramente diferentes.
normalmente un enlace a /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)
Segundo dispositivo de audio (si es soportado por la tarjeta o si hay más de una tarjeta instalada)
Normalmente un enlace a /dev/dsp0
Primer dispositivo de muestreo digital
Segundo dispositivo de muestreo digital
Normalmente un enlace a /dev/mixer0
Primer mezclador de sonido
Segundo mezclador de sonido
Interfaz del secuenciador de alto nivel
Acceso a bajo nivel MIDI, FM, y GUS
Normalmente un enlace a /dev/music
Primer puerto MIDI directo
Segundo puerto MIDI directo
Tercer puerto MIDI directo
Cuarto puerto MIDI directo
Visualiza el estado del controlador de sonido cuando es leído
El controlador del altavoz del PC incorpora los siguientes dispositivos:
equivalente a /dev/audio
equivalente a /dev/dsp
equivalente a /dev/mixer
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.
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.
Con el controlador actual de sonido es posible tener varias tarjetas SoundBlaster, SoundBlaster Pro, SoundBlaster 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
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).
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.
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);
}
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.
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.
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.
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:
Si tiene una tarjeta Gravis Ultrasound, debe usar uno de los reproductores
de ficheros MOD escritos específicamente para la GUS (por ejemplo gmod
).
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.
Este es probablemente el mismo problema que el descrito en la anterior cuestión.
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.No hay una respuesta fácil para esta pregunta, ya que depende de:
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.
(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:
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.
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.
En los últimos 286, la interrupción IRQ 2 es asignada al segundo controlador de interrupciones. Es equivalente a IRQ 9.
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.
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 :-).
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
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.
Si puede reproducir sonido pero no puede grabar, siga estos pasos:
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.
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).
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.
Estos son unos buenos sitios para buscar aplicaciones específicas de sonido para Linux:
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.
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.
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.
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.
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.
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").
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
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.
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/.
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:
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:
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
Disponible en castellano en http://www.infor.es/LuCAS
. 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.
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.
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
.