Configurando el Chip de audio CMI 8330

Introducción

El chipset CMI 8330, de C-Media, es uno muy utilizado en la actualidad, sobre todo en las tarjetas madre del tipo PC100 que incorporan componentes «on-board», es decir integrados en la misma tarjeta madre. Se trata de un chipset muy económico pero con un rendimiento apenas aceptable. Dependiendo del fabricante de la tarjeta madre, es posible que pueda presentar algunos malos funcionamientos tanto en Linux como en Windows.

Configuración en Linux.
A pesar de que el Kernel proporciona soporte para CMI 8330, la configuración obtenida por «sndconfig» no funcionará. Antes de poder proceder a configurar esta tarjeta será necesario determinar los IRQ, DMA e I/O de cada dispositivo de esta tarjeta. Si se utiliza Windows 9x en la misma PC, esta información se puede recabar desde el «Administrador de dispositivos» en «Propiedades del sistema». Si no se esta utilizando Windows, convendrá instalar la tarjeta en modo MS-DOS y copiar los valores en «autoexec.bat»

Estos serían valores más comunes para CMI 8330 (pueden variar dependiendo de la tarjeta madre, yo utilizo una PC Chips 100 M570):

  • Dos mode MPU-401: I/O 0=0x300
  • MIDI MPU-401: I/O 0=0x330
  • Joystick: I/O 0=0x200
  • Sound Blaster: I/O 0=0x220,
    IRQ 0=05, DMA 0=01, DMA 1=05
  • Windows Sound System: I/O 0=
    0x530, I/O 1= 0x388, IRQ 1=10, DMA 1=03

Una vez determinados los valores correctos, solo bastará con adaptar y modificar los archivos /etc/isapnp.conf y /etc/conf.modules para adecuar todos los valores correspondientes. Para el primero, correspondería lo siguiente:

(READPORT 0x0203)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
# advertencia del sistema por si acaso hubisen conflictos
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL))
(VERIFYLD N)

# Windows Sound System

(CONFIGURE CMI0001/16777472 (LD 0
(IO 0 (SIZE 8 ) (BASE 0x0530))
(IO 1 (SIZE 8 ) (BASE 0x0388))
(INT 0 (IRQ 11 (MODE +E)))
(DMA 0 (CHANNEL 0))
(NAME "CMI0001/16777472[0]{CMI8330/C3D Audio Adapter}")
(ACT Y)
))

# midis

(CONFIGURE CMI0001/16777472 (LD 1
(IO 0 (SIZE 2) (BASE 0x0300))
(INT 0 (IRQ 9 (MODE +E)))
(NAME "CMI0001/16777472[1]{CMI8330/C3D Audio Adapter}")
(ACT Y)
))

# Joystick

(CONFIGURE CMI0001/16777472 (LD 2
(IO 0 (SIZE 8 ) (BASE 0x0200))
(NAME "CMI0001/16777472[2]{CMI8330/C3D Audio Adapter}")
(ACT Y)
))

#  Soundblaster
(CONFIGURE CMI0001/16777472 (LD 3
(IO 0 (SIZE 16) (BASE 0x0220))
(INT 0 (IRQ 5 (MODE +E)))
(DMA 0 (CHANNEL 1))
(DMA 1 (CHANNEL 5))
(NAME "CMI0001/16777472[3]{CMI8330/C3D Audio Adapter}")
(ACT Y)
))

(WAITFORKEY)

NOTA: Los
IRQ’s pueden cambiar, otra posible opción seria para:# Windows
Sound System IRQ 5; # midis IRQ 11; # Soundblaster IRQ 7, el
archivo quedaría igual excepto las IRQ’s.

Para el caso anterior, este sería
el conf.modules sugerido:

alias sound ad1848
alias synth0 opl3
options ad1848 io=0x530 irq=11 dma=0 soundpro=1
options opl3 io=0x388

O bien se puede utilizar este
otro, un tanto más viejo:

alias sound ad1848
pre-install sound insmod sound dmabuf=1
alias midi opl3
options opl3 io=0x388
alias midi mpu401
options mpu401 io=0x300 irq=9
options ad1848 io=0x530 irq=11 dma=0 soundpro=1

Cristian
Othon Martínez Vera

sugiere que tambien puede utilizarse esta variante, que en la
mayoría de los casos funcionará mejor, sobre todo si hay
ciertos efectos indeseables y distorción al mover ventanas o
hacer «scroll» (algo común con la tarjeta de video Sis
6326):

# Leemos a partir del siguiente puerto disponible
# para PnP. Hacerlo desde el indicado por omision nos
# hace perder la configuracion de MIDI y del puerto de
# juegos

(READPORT 0x020b)
(ISOLATE PRESERVE)
(IDENTIFY *)

# WSS
(CONFIGURE CMI0001/16777472 (LD 0
 (IO 0 (BASE 0x0530))
 (IO 1 (BASE 0x0388))
# Una interrupcion que casi no interfiere con nada y
# nos permite full duplex
 (INT 0 (IRQ 11 (MODE +E)))
 (DMA 0 (CHANNEL 0))
 (ACT Y)
))

# MIDI
(CONFIGURE CMI0001/16777472 (LD 1
 (IO 0 (BASE 0x0330))
 (INT 0 (IRQ 9 (MODE +E)))
 (ACT Y)
))

# Puerto de juegos
(CONFIGURE CMI0001/16777472 (LD 2
 (IO 0 (BASE 0x0200))
 (ACT Y)
))

# Y emulacion SB
(CONFIGURE CMI0001/16777472 (LD 3
 (IO 0 (BASE 0x0220))
 (INT 0 (IRQ 5 (MODE +E)))
 (DMA 0 (CHANNEL 1))
 (DMA 1 (CHANNEL 5))
 (ACT Y)
))

(WAITFORKEY)

Cristian
Othon Martínez Vera

sugiere lo siguiente para conf.modules, siempre que se tenga un
núcleo 2.2.5 o superior (RedHat 5.2 o superior). Este utiliza un
controlador, cs4232, de mejor nivel que ad1848. El -k hace que el
módulo se limpie en el caso de que no se este utilizando:

alias sound cs4232
pre-install sound insmod sound dmabuf=1
options -k cs4232 io=0x534 irq=11 dma=0 dma2=1
alias mpu mpu401
options -k mpu401 io=0x330 irq=9
alias midi opl3
options -k opl3 io=0x388

O esta otra:

alias sound ad1848
pre-install sound insmod sound dmabuf=1
options -k ad1848 io=0x530 irq=11 dma=0 dma2=1 soundpro=1
alias mpu mpu401
options -k mpu401 io=0x330 irq=9
alias midi opl3
options -k opl3 io=0x388

Al concluir esto, convendrá
reiniciar el sistema para poder probar adecuadamente la
configuración. No es buena idea probar reproduciendo un archivo
MIDI, debido a que, dependiendo del software utilizado, no se
podrán apreciar todos los instrumentos. Será más conveniente
hacerlo con un archivo de ondas (*.wav) o bien con un archivo
Mp3. Si todo funciona correctamente deberán de respaldarse
/etc/isapnp.conf y /etc/conf.modules en un disquete, ya que esto
ahorrará tiempo si en el futuro fuese necesario realizar una
reinstalación.

Aunque no es indispensable, puede
ser conveniente recompilar el Kernel para poder cargar los
módulos correctamente. De tal forma debe especificarse lo
siguiente en la sección correspondiente al audio:

CONFIG_SOUND_CMPCI=m # Modulo experimental
# en Kernels recientes (Oct-1999)
CONFIG_SOUND=m
CONFIG_SOUND_OSS=m
CONFIG_SOUND_SB=m
CONFIG_SOUND_ADLIB=m
CONFIG_SOUND_MPU401=m
CONFIG_SOUND_MSS=m

El resto de los módulos de audio
no son necesarios, por lo que pueden omitirse de la
configuración, mismo que economizará memoria y recursos.

Autores:
Joel Barrios Dueñas
Cristian Othon Martínez Vera
http://www.jjnet.prohosting.com/linux

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.