Installare una CMI8330 sotto linux

Innanzitutto serve il Kernel 2.2.5.
Se hai una Debian allora avrai il kernel 2.2.1 (il 2.2.5 è solo in unstable attualmente).
Puoi patchare fino alla 2.2.5 scaricando le patch da un mirror  di www.kernel.org che è sempre superaffollato:

ftp://ftp.flashnet.it/pub/ftp.kernel.org/pub/linux/kernel/v2.2/

Poi segui le istruzioni pubblicate su linux source driver, che riporto e commento qui di seguito.


How to enable CMI 8330 soundchip on Linux
------------------------------------------
Stefan Laudat <Stefan.Laudat@asit.ro>

Hello folks,

   The CMI8330 soundchip is a very small chip found on many recent
   motherboards. In order to use it you just have to use a proper
        isapnp.conf and a little bit of patience.

   Of course you will have to compile kernel sound support as module,
        as shown below:

CONFIG_SOUND=m
CONFIG_SOUND_OSS=m
CONFIG_SOUND_SB=m
CONFIG_SOUND_ADLIB=m
CONFIG_SOUND_MPU401=m
# Just for fun :)
CONFIG_SOUND_MSS=m

   The /etc/isapnp.conf file will be:



Di seguito è riportato quello che dovrebbe comparire nell isapnp.conf.
In realtà il mio è leggermente diverso. In pratica usa ciò che compare nel pnpdump e inserisci l'output nell' isapnp.conf.


<snip below>

(READPORT 0x0203)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
(VERIFYLD N)
# WSS

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

# Control device ?

(CONFIGURE CMI0001/16777472 (LD 1
(IO 0 (SIZE 2) (BASE 0x0330))
(INT 0 (IRQ 11 (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)
))

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

(WAITFORKEY)

<end of snip>



Di seguito sono riportati i comandi necessari a caricare i moduli (attenzione a compilare tutto ciò che riguarda l'audio come modulo perchè è necessario un particolare ordine nell'inizializzare le varie componenti).
Fa in modo che i valori di irq e io vari siano coincidenti con quelli del isapnp.conf).


   The module sequence is trivial:

/sbin/modprobe sound
# You need to load the ad1848 module first. That matters, otherwise the
# chip falls into soundblaster compatibility and you won't get it back out
/sbin/insmod ad1848 io=0x530 dma=0 irq=7 soundpro=1



Attenzione a irq=7. In realtà sul sito del linux kernel Stefan Laudat riporta irq=5. Ma così a me non funziona anche perchè l'irq 5 è già impegnato dall' ad1848. In effetti anche sotto Windows usano irq diversi.


/sbin/insmod uart401
/sbin/insmod sb io=0x220 irq=5 dma=1 dma16=-1
/sbin/insmod mpu401 io=0x330
/sbin/insmod opl3 io=0x388

   The soundchip is now fully initialized. Enjoy it.
 

Linux Source Driver 1.19
Copyright 1996,1997,1998 Pavel Janík ml.


Ora tutto dovrebbe funzionare a dovere.
  1