Avanti Indietro Indice

5. Caricamento del driver

Ci sono due metodi per utilizzare i moduli sonori ALSA. Io personalmente preferisco adottare la soluzione manuale, nel senso che inserisco i moduli all'avvio. I driver ALSA sono stati progettati come moduli caricabili/scaricabili, per esempio non reimpostano il mixer dopo essere stati caricati, quindi si puù facilmente utilizzare un approccio basato su kerneld. Si legga la sezione Retrocompatibilità. Ce ne sarà bisogno per avere il supporto sonoro "alla vecchia maniera".

5.1 Caricamento con modprobe

Si noti che, avendo una scheda audio PnP, essa dovrà prima essere impostata sui corretti (o almeno conosciuti) IO/IRQ/DMA. Si consulti il Plug-and-Play-HOWTO. La scheda audio Plug-and-Play è stata configurata? Ok, allora si continui a leggere. La cosa principale è dare il comando "modprobe snd-card-<soundcard>". Questo dovrebbe mettere le cose a posto. Si noti che non tutte le distribuzioni includono /sbin nel proprio percorso. Se il comando restituisce "bash: modprobe: command not found", questo molto probabilmente significa che modprobe non è nel proprio percorso. Si provi "/sbin/modprobe snd-sb16", o provare a trovare modprobe da qualche altra parte.

Le maggiori difficoltà risiedono nella configurazione dei chipset Crystal, per i quali i driver ALSA non prevedono la configurazione automatica. Informazioni più recenti possono essere trovate nel file INSTALL nella directory dei driver. Due esempi, poi una lista: Gravis UltraSound (GUS) e compatibili:

/sbin/modprobe snd-card-gusclassic

Per tutte le schede audio SoundBlaster a 16 bit (SoundBlaster 16 (PnP), SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 (PnP):

/sbin/modprobe snd-card-sb16

Comunque, con il pacchetto 0.3.0-pre4, il driver GUS Classic si chiama "snd-gusclassic" e il modulo per la SoundBlaster 16 si chiama "snd-sb16" (scritto così, senza la scritta "card").

5.2 Quale modulo per quale scheda?

Si noti che qualche volta le versioni di ALSA precedenti alla 0.4.x usano nomi diversi. Per questi driver si dovrà tralasciare la parte "card". Questi casi sono indicati da un asterisco (*).

Gravis UltraSound Extreme (*)

modprobe snd-card-gusextreme

Gravis UltraSound MAX (*)

modprobe snd-card-gusmax

ESS AudioDrive (*)

Schede audio ESS AudioDrive ES-1688 e ES-688

modprobe snd-card-audiodrive1688

ESS AudioDrive 18xx (*)

Schede audio basate sulla ESS AudioDrive ES-18xx

modprobe snd-card-audiodrive18xx

Gravis UltraSound PnP (*)

Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32, ExpertColor MED3201 e altre schede audio basate sul chip AMD InterWave™.

modprobe snd-card-interwave

UltraSound 32-Pro (*)

UltraSound 32-Pro (scheda audio della STB usata da Compaq) e altre schede audio basate sul chip AMD InterWave (tm) con il circuito TEA6330T per il controllo esteso dei bassi, degli alti e del volume

modprobe snd-card-interwave-stb

Soundblaster (*)

Schede Soundblaster a 8 bit (SoundBlaster 1.0, SoundBlaster 2.0, SoundBlaster Pro)

modprobe snd-card-sb8

Soundblaster 16 (*)

Schede SoundBlaster a 16 bit (SoundBlaster 16 (PnP), SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 (PnP). Si noti che questo modulo non supporta la scheda audio SoundBlaster VibraX16.

modprobe snd-card-sb16

OAK Mozart (*)

modprobe snd-mozart

OPTi 82C9xx (*)

Diverse schede audio che usano il chipset OPTi 82C9xx, come la Audio 16 Pro EPC-SOUN9301 (basata su 82C930), ExpertColor MED-3931 v2.0 (basata su 82C931), ExpertMedia Sound 16 MED-1600 (basata su 82C928 - AD1848), Mozart S601206-G (basata su OPTI601 - CS4231) e Sound Player S-928

modprobe snd-card-opti9xx

AD1847/48 e CS4248

modprobe snd-card-ad1848

Schede audio Yamaha OPL3-SA2/SA3 (*)

Il solo "modprobe snd-opl3sa" non funzionerà, per la mancanza della configuraione automatica. Si veda più avanti.

S3 SonicVibes (*)

Schede audio PCI S3 SonicVibes. (PINE Schubert 32 PCI)

modprobe snd-card-sonicvibes

Ensoniq/Soundblaster PCI64 (*)

Schede audio PCI Ensoniq AudioPCI ES1370/1371. (SoundBlaster PCI 64)

modprobe snd-card-audiopci

CS4231

Il solo "modprobe snd-card-cs4231" non funzionerà, per la mancanza della configurazione automatica. Si veda più avanti.

CS4232/4232A

Tutte le schede audio basate sul chip CS4232/CS4232A. Il solo "modprobe snd-card-cs4232" non funzionerà, per la mancanza della configurazione automatica. Si veda più avanti.

4235 e successive

Tutte le schede audio basate sui chip CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239. Il solo "modprobe snd-card-cs4236" non funzionerà, per la mancanza della configurazione automatica. Si veda più avanti.

4610/4612/4615 e 4680

modprobe snd-card-cs461x

ESS Solo 1 (*)

Scheda ESS Solo-1, 128iPCI (es1938, ESS-SOLO-1). Jonas Lofwander ha inviato il collegamento a un documento che aiuta ad installare questa scheda che è, sostanzialmente, nulla più di un modprobe snd-card-esssolo1 ... ma http://dice.shopcenter.nu/alsa/ potrà essere d'aiuto.

Chi avesse un Thinkpad 1412 dell'IBM puù anche consultare http://www.geocities.com/SiliconValley/Peaks/3649/1412.html, grazie a Kumar Sankaran.

Trident 4DWave DX/NX (**)

Best Union Miss Melody 4DWave PCI, HIS 4DWave PCI, Warpspeed ONSpeed 4DWave PCI, AzTech PCI 64-Q3D, Addonics SV 750, CHIC True Sound 4Dwave, Shark Predator4D-PCI, Jaton SonicWave 4D.

modprobe snd-card-trident

ForteMedia FM801

Queste sono schede PCI basate sul chip FM801.

modprobe snd-card-fm801

(*) Con la versione 0.3.0-pre4 di ALSA, si dovrà tralasciare la parte "card-" nella maggior parte dei nomi dei driver (non in tutti). Così "snd-card-sb16" diventa "snd-sb16"; tuttavia, "snd-card-cs4232" rimane "snd-card-cs4232" (modprobe snd-cs4232 farà qualcosa, ma non si otterrà alcun suono!)

(**) Nelle vecchie versioni di ALSA questo driver si chiamava "snd-card-trid4wave" e "snd-trid4wave".

5.3 modprobe per driver senza configurazione automatica

Se si usa un driver senza configurazione automatica, si dovranno fornire delle indicazioni aggiuntive all'avvio perché il driver possa funzionare. Si possono trovare altre informazioni nel file INSTALL presente nella directory del driver.

OPL3-SA2 e OPL3-SA3

Stando a quanto dice il file INSTALL si dovranno specificare tutte le informazioni per permettere a questo driver di funzionare. Se la scheda è stata inizializzata con gli strumenti isapnp probabilmente si potranno ottenere informazioni dal file /etc/isanp.conf per i seguenti valori:

snd_port - porta di controllo # per il chip OPL3-SA
snd_wss_port - porta WSS # per il chip OPL3-SA (0x530,0xe80,0xf40,0x604)
snd_midi_port - porta # per MPU-401 UART (0x300,0x330), -1 = disabilitata
snd_fm_port - porta FM # per il chip OPL3-SA (0x388), -1 = disabilitata
snd_irq - IRQ # per il chip OPL3-SA (5,7,9,10)
snd_dma1 - primo DMA # per il chip Yamaha OPL3-SA (0,1,3)
snd_dma1_size - dimensione massima del primo DMA in kB (4-64kB)
snd_dma2 - secondo DMA # per il chip Yamaha OPL3-SA (0,1,3), -1 = disabilitata
snd_dma2_size - dimensione massima del secondo DMA in kB (4-64kB)

Si potrebbe dare il comando "modprobe snd-card-opl3sa snd_port=0xNNN snd_wss_port=0x530 snd_midi_port=-1 snd_fm_port=0x388 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN" per caricare questo driver (senza supporto per il midi. Sono ancora convinto del fatto che il supporto per il midi serva solo quando si hanno dei sintetizzatori e altre cose da collegare al proprio sistema Linux. A me non è mai servito il supporto per il midi neanche per riprodurre dei file midi). Si noti che devono essere specificati i valori "NN", solo che non si sa quale potrebbe essere un valore ragionevole. Non è certo se la dimensione del dma sia veramente richiesta.

Chi possiede un Thinkpad della IBM con questo chipset puù trovare aiuto presso http://www.cirs.org/patrick/index.html. Usando il driver della versione 0.3.0-pre4 si dovrà tralasciare la parte "card-" nel nome.

Chip CS4231

Stando a quanto dice il file INSTALL si dovrà specificare la porta principale usata da questa scheda. Si noti che al driver per le schede 3235/6/7/8/9, quello descritto qui sotto, sono state fornite tutte le informazioni (tranne la dimensione del DMA), altrimenti il driver si sarebbe rifiutato di funzionare. Quindi si potrebbe provare a utilizzare l'intera linea di comando per caricare il driver. Se si inizializza la scheda con gli strumenti isapnp probabilmente si potranno ottenere informazioni dal file /etc/isapnp.conf per i seguenti valori:

snd_port - porta # per il chip CS4232 (impostazione PnP - 0x534)
snd_mpu_port - porta # per l'UART MPU-401 (impostazione PnP - 0x300), -1 = disabilitata
snd_irq - IRQ # per il chip CS4232 (5,7,9,11,12,15)
snd_mpu_irq - IRQ # per l'UART MPU-401 (9,11,12,15)
snd_dma1 - primo DMA # per il chip CS4232 (0,1,3)
snd_dma1_size - dimensione massima del primo DMA in kB (4-64kB)
snd_dma2 - secondo DMA # per il chip Yamaha CS4232 (0,1,3), -1 = disabilitata
snd_dma2_size - dimensione massima del secondo DMA in kB (4-64kB)

Si potrebbe dare il comando "modprobe snd-card-cs4231 snd_port=0x534 snd_mpu_port=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN" per caricare il driver in modo da ottenere una scheda audio in "configurazione standard". (Senza supporto per il MIDI, si veda la nota al chip Yamaha OPL-3). Se sono stati utilizzati valori differenti in /etc/isapnp.conf dovranno essere usati gli stessi anche qui. (Nota: è saggio comunque usare il cervello.) Si noti che devono essere specificati i valori "NN", solo che non si sa quale potrebbe essere un valore ragionevole. Non è certo se la dimensione del dma sia veramente richiesta.

Chip CS4232/CS4232A

Stando a quanto dice il file INSTALL si dovrà specificare la porta principale usata da questa scheda. Si noti che al driver per le schede 3235/6/7/8/9, quello descritto qui sotto, sono state fornite tutte le informazioni (tranne la dimensione del DMA), altrimenti il driver si sarebbe rifiutato di funzionare. Quindi si potrebbe provare a utilizzare l'intera linea di comando per caricare il driver. Se si inizializza la scheda con gli strumenti isapnp probabilmente si potranno ottenere informazioni dal file /etc/isapnp.conf per i seguenti valori:

snd_port - porta # per il chip CS4232 (impostazione PnP - 0x534)
snd_cport - porta di controllo # per il chip CS4232 (impostazione PnP - 0x120)
snd_mpu_port - porta # per l'UART MPU-401 (impostazione 
PnP - 0x300), -1 = disabilitata
snd_fm_port - porta FM # per il chip CS4232 (impostazione 
PnP - 0x388), -1 = disabilitata
snd_jport - porta joystick per il chip CS4232 (impostazione PnP - 0x200), -1 =
disabilitata
snd_irq - IRQ # per il chip CS4232 (5,7,9,11,12,15)
snd_mpu_irq - IRQ # per l'UART MPU-401 (9,11,12,15)
snd_dma1 - primo DMA # per il chip CS4232 (0,1,3)
snd_dma1_size - dimensione massima del primo DMA in kB (4-64kB)
snd_dma2 - secondo DMA # per il chip Yamaha CS4232 (0,1,3), -1 = disabilitata
snd_dma2_size - dimensione massima del secondo DMA in kB (4-64kB)

Si potrebbe dare il comando "modprobe snd-card-cs4232 snd_port=0x534 snd_cport=0x120 snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN" per caricare il driver in modo da ottenere una scheda audio in "configurazione standard". (Senza supporto per il MIDI, si veda la nota al chip Yamaha OPL-3, e senza supporto per il joystick). Se sono stati utilizzati valori differenti in /etc/isapnp.conf dovranno essere usati gli stessi anche qui. (nota: è saggio comunque usare il cervello). Si noti che devono essere specificati i valori "NN", solo che non si sa quale potrebbe essere un valore ragionevole. Non è certo se la dimensione del dma sia veramente richiesta.

Chip CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239

Stando a quanto dice il file INSTALL si dovranno specificare la porta principale e la porta di controllo usate da questa scheda. Si noti che al driver per le schede CS4237B sono state fornite tutte le informazioni (tranne la dimensione del DMA), altrimenti il driver si sarebbe rifiutato di funzionare. Quindi si potrebbe provare ad utilizzare l'intera linea di comando per caricare il driver, e non specificare solamente i valori snd_port e snd_cport. Se si inizializza la scheda con gli strumenti isapnp probabilmente si potranno ottenere informazioni dal file /etc/isapnp.conf per i seguenti valori:

snd_port - porta # per il chip CS4232 (impostazione PnP - 0x534)
snd_cport - porta di controllo # per il chip CS4232 (impostazione PnP - 0x120)
snd_mpu_port - porta # per l'UART MPU-401 (impostazione 
PnP - 0x300), -1 = disabilitata
snd_fm_port - porta FM # per il chip CS4232 (impostazione 
PnP - 0x388), -1 = disabilitata
snd_jport - porta joystick per il chip CS4232 (impostazione PnP - 0x200), 
-1 = disabilitata
snd_irq - IRQ # per il chip CS4232 (5,7,9,11,12,15)
snd_mpu_irq - IRQ # per l'UART MPU-401 (9,11,12,15)
snd_dma1 - primo DMA # per il chip CS4232 (0,1,3)
snd_dma1_size - dimensione massima del primo DMA in kB (4-64kB)
snd_dma2 - secondo DMA # per il chip Yamaha CS4232 (0,1,3), -1 = disabilitata
snd_dma2_size - dimensione massima del secondo DMA in kB (4-64kB)

Si potrebbe dare il comando "modprobe snd-card-cs4236 snd_port=0x534 snd_cport=0x120 snd_mpu_port=-1 snd_fm_port=0x388 snd_jport=-1 snd_irq=5 snd_dma1=0 snd_dma1_size=NN snd_dma2=1 snd_dma2_size=NN" per caricare il driver (senza supporto per il MIDI, si veda la nota al chip Yamaha OPL-3, e senza supporto per il joystick). Note:

5.4 L'approccio con kerneld

kerneld è un demone che carica i moduli su richiesta, e li scarica quando non vengono utilizzati. Poiché non ho alcuna esperienza sull'uso di kerneld, non è possibile sapere se le informazioni riportate sono accurate. Le informazioni provengono dal file INSTALL del pacchetto ALSA-drivers. Informazioni eccellenti sul kerneld possono essere trovate nel kerneld-mini-HOWTO.

Si seguano questi passi:

Esempio di /etc/conf.modules per una scheda audio PnP Gravis UltraSound:
alias char-major-14 snd
alias snd-minor-oss-0 snd-interwave
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-interwave
options snd snd_major=14 snd_cards_limit=1
options snd-interwave snd_index=1 snd_id="guspnp" snd_port=0x220 
snd_irq=5 snd_dma1=5 snd_dma2=6

Esempio per l'uso di più schede audio nella stessa macchina (la configurazione che segue è pensata per una Sound Blaster 16 e per una Gravis Ultrasound Classic):

alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-sb16
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-sb16 snd_index=1 snd_port=0x220 snd_irq=5 
snd_dma8=1 snd_dma16=5
options snd-gusclassic snd_index=2 snd_irq=11 snd_dma1=6 
snd_dma2=7

Esempio per l'uso di due schede audio Gravis UltraSound Classic nello stesso sistema:

alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-gusclassic
alias snd-card-1 snd-gusclassic
options snd snd_major=14 snd_cards_limit=2
options snd-gusclassic snd_index=1,2 snd_port=0x220,0x260 
snd_irq=5,11 snd_dma1=5,6 snd_dma2=7,3

5.5 Retrocompatibilità

Per assicurarsi la compatibilità con OSS/Free e OSS/Linux si dovrà caricare un ulteriore driver: il driver snd-pcm1-oss per la compatibilità con OSS. Si dia il comando

modprobe snd-pcm1-oss

Questo metterà a disposizione /dev/audio e /dev/dsp-support, come fanno i driver OSS/Free (kernel) e OSS/Linux (quello da $25). Si noti che questa è solo un'emulazione.


Avanti Indietro Indice