Gravis ULTRASOUND Plug n' Play Mini-Como
 J. F. Mammet, [email protected]
 Traducido por I�aki Mart�nez D�ez, [email protected]
 Versi�n 0.01, 27 de Marzo de 1996

 Particularidades de configuraci�n de la Gravis ULTRASOUND Plug n' Play
 bajo Linux.

 1.  Introducci�n

 Como fan de las tarjetas de sonido Gravis desde hace mucho tiempo, me
 alegr� mucho cuando finalmente Gravis sac� algo nuevo. Hab�a planeado
 comprar la nueva Ultrasound desde hac�a tiempo, y la compr� con un
 mega de RAM tan pronto estuvo disponible aqu� en Francia.

 La instal�, y qu� sorpresa, mi BIOS plug and play la detect�, e
 incluso windows95 (lo siento, bromas est�pidas sobre marketing95 hoy
 no). As� que pens� que la tarjeta funcionar�a en cualquier sitio ...

 Entonces arranqu� Linux, no tuve problemas, la tarjeta fue detectada
 como una GUS rev 3.4, lo cual me pareci� estar bien, pero no lo estaba
 ...

 Alg�n tiempo despu�s prob� Quake, y no sonaba. Entonces le� el manual
 del juego, y v� que Quake estaba usando alg�n DMA no est�ndar que la
 GUS no pod�a proporcionar ...

 Pens� que no era bueno para mi, tener tan buena tarjeta y no tener
 sonido en tan genial juego (la versi�n dos necesita la emulaci�n de
 sound blaster, y yo incluso prefiero sin sonido que eso).

 As� que, �Ahora qu�? �deber�a esperar hasta Mayo para un driver de GUS
 PnP?  �Deber�a comprar una sound blaster (buag)? �Que ocurrir� en el
 pr�ximo episodio de Expediente X?

 2.  �GUS MAX?

 Entonces volv� al dos, y jugu� un poco con el programa iwinit, mir� lo
 que el programa dec�a cuando usaba el modo verbose y vi algo como
 CODEC direcci�n 32c ...

 �Qu�? �La GUS PnP tiene un Codec CS4231/CS1848 como la GUS MAX?

 Entonces mir� en mis cintas de backup buscando los drivers de Gravis
 viejos, tom� el ultrinit 2.31 de ellos y tecle�:

      set ultrasnd=220,6,5,5,5
      set ultra16=32c,0,0,1,0
      set ultradir=c:\ultrapnp
      ultrinit

 y descubr� que: ��� Ultrasound MAX detectada !!!

 �Genial!, pens� entonces, s�lo tengo que poner esto antes de cargar
 Linux y tendr� soporte GUS MAX, y ��finalmente conseguir� que el
 j****o Quake funcione con sonido!!

 No fue tan f�cil 8(

 3.  Investigaci�n del Driver

 No soy un buen programador, pero se suficiente C para observar los
 fuentes de un driver y ver qu� pasa (especialmente cuando est� bien
 comentado).

 Mir� el fichero gus_card.c, pero no encontr� nada interesante.
 Entonces mir� en gus_wave.c, y v� esto:

        * Value 255 means pre-3.7 which don't have mixer.
        * Values 5 thru 9 mean v3.7 which has a ICS2101 mixer.
        * 10 and above is GUS MAX which has the CS4231 codec/mixer.

 que significa:

        * el Valor 255 se refiere a pre-3.7 la cual no tiene mixer.
        * los Valores 5 a 9 se refiere a v3.7 los cuales tienen un mixer ICS2101.
        * 10 y superior es GUS MAX la cual tiene el codec/mixer CS4231.

 �Genial!, solo tengo que forzar el valor a 10, y funcionar� ...  �No!

 haciendo esto har�a que el kernel pensase que se tiene una GUS MAX,
 pero �no reconocer� el chip Codec!

 Por lo que ten�a que forzar la detecci�n del Codec tambi�n ...

 No fue tan f�cil encontrar qu� hacer, pero finalmente descubr� una
 posisbilidad: En el fichero  gus_wave.c, hab�a una l�nea:

      if (ad1848_detect (gus_base + 0x10c, NULL, hw_config->osp))

 lo que significaba que el kernel estaba intentando auto-detectar el
 chip AD1848, pens� que no lo podr�a detectar con la GUS PnP, y �estaba
 en lo cierto! Simplemente cambi� la l�nea a:

      if (!(ad1848_detect (gus_base + 0x10c, NULL, hw_config->osp)))

 recompil� el kernel, y ���hey, Quake funcion� de maravilla!!!

 Por cierto hay una etiqueta gus_pnp_flag en gus_card.c, pero no he
 notado ninguna diferencia con ella activada o desactivada 8( (quiz�s
 hice algo mal)
 4.  �Qu� deber�a hacer exactamente?

 No olvidar que esto no funcionar�a si no hay RAM en la GUS ...

 Primero de todo no usar LILO nunca m�s, ya que es necesario
 inicializar la GUS PnP antes de ejecutar Linux ... (hacer un fdisk
 /mbr bajo dos, ver otros COMOs para m�s detalles en esto).

 En el autoexec.bat, poner:

      set interwave=c:\ultrapnp\iw.ini
      c:\ultrapnp\iwinit
      set ultrasnd=220,6,5,5,5 (o cualquiera que se quiera o necesite)
      set ultra16=32c,0,0,1,0
      set ultradir=c:\ultrapnp
      c:\ultrapnp\ultrinit

 Se puede encontrar ultrinit en el fichero gus00045.zip, en cualquier
 site de Gravis ...

 Bajo Linux, abrir el fichero gus_wave.c, en
 /usr/src/linux/drivers/sound (o en cualquier otro sitio).  Buscar la
 l�nea:

      if (val == 255 || val < 5) (line 3049 in 3.5b7)

 y una l�nea antes, a�adir:

      val=10;

 Entonces buscar la l�nea:

      if (ad1848_detect (gus_base + 0x10c, NULL, hw_config->osp)) (line 3085)

 y cambiarla a:

      if (!(ad1848_detect (gus_base + 0x10c, NULL, hw_config->osp)))

 recompilar el kernel con soporte de GUS y GUS MAX.
 Mi configuraci�n es:

      BASE = 220
      IRQ = 5
      DMA1 = 6
      DMA2 = 5
      DMABUF = 65536

 ���Disfruta del sonido!!!

 5.  Cr�ditos

 Yo us� el kernel 1.3.75 para modificar, pero deber�a funcionar en
 cualquier 1.3.70 y superior (por favor escribirme si hay alg�n
 problema)

 Este mini-COMO esta escrito por:

 �  e-mail : [email protected]

 �  www    : http://diva.univ-mlv.fr/~mammet/

 Se puede conseguir la �ltima versi�n de este documento de mi p�gina
 WEB en
 http://diva.univ-mlv.fr/~mammet/linux.html (pronto disponible)

 No asumo ninguna responsabilidad si se pierden informaciones o
 cualquier error que pudiese ocurrir (incluso fastidiar win95).

 Si se encuentra alg�n error tipogr�fico (o incluso errores t�cnicos
 8-p), escribirme libremente, soy s�lo un pobre franc�s perdido en un
 mundo anglosaj�n, intentando hablar el idioma de forma comprensible.

 6.  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.

 Francisco Jos� Montilla, [email protected].