<!doctype linuxdoc system>
<article>
<title>Alsa-sound-mini-HOWTO
<author>Valentijn Sessink <tt/valentyn@alsa-project.org/
<date>v2.0-pre1, 12 Novembre 1999
<abstract>Descrive l'installazione dei driver audio ALSA per Linux. Questi
driver audio possono essere utilizzati al posto dei normali driver sonori
vista la loro completa compatibilit&agrave;.
Traduzione a cura di Elisabetta Galli. Revisione di Giulio Daprel&agrave;.
</abstract>
<toc>
<sect>Introduzione
<p>
Questo &egrave; l'ALSA Sound driver mini-HOWTO. Fornisce informazioni
sull'installazione e l'utilizzo dei driver audio ALSA per la propria
scheda audio. I driver ALSA sono driver audio completamente modulari
che supportano kerneld e kmod. Sono compatibili con le attuali API OSS e ne
superano le possibilit&agrave;. In altre parole: compatibili, ma migliori.
<sect1>
Riconoscimenti
<p>
Questo documento contiene informazioni prese dalle pagine
del driver ALSA. La struttura &egrave; basata su quella dell'SB-mini-HOWTO,
principalmente perch&eacute; assomigliava molto a quella che stavo cercando.
Grazie al pacchetto <htmlurl url="http://www.sgmltools.org" name="SGML"> 
Tools, questo HOWTO &egrave; disponibile in diversi formati, tutti generati da un 
solo file sorgente. Grazie a Erik Warmelink per la correzione delle bozze, 
grazie a Alfred Munnikes per un paio di domande e di suggerimenti di grande 
aiuto. Grazie a Yamahata Isaku per la traduzione in giapponese, grazie a 
Miodrag Vallat per quella in francese. Steve Crowder ha fatto un ottimo 
lavoro nel leggere e revisionare l'intero testo. Grazie a Cserna Zsolt per 
la traduzione in ungherese e a Marco Meloni per quella in italiano.
Grazie a Mohamed Ismail Mohamed-Ibrahim per aver mandato un documento 
relativo alla scheda audio Trident 4DWave DX/NX con molte informazioni 
utili, grazie a Gerard Haagh per le molte informazioni utili e per aver 
fatto notare alcune sezioni poco chiare. Grazie a Marc-Aur`ele Darche, 
Piotr Ingling, Juergen Kahrs, Tim Pearce, Patrick Stoddard, Rutger de Graaf
Shuly Wintner, Jyrki Saarela, Jonas Lofwander, Kumar Sankaran e molti altri 
per i loro utili suggerimenti e contributi.
<sect1>
Storia delle revisioni
<p>
Versione 2.0-pre1 - 12 novembre 1999. Aggiornate ad ALSA 0.4.1e un paio di 
sezioni, aggiunti vari link.

Versione 1.7 - 29 luglio 1999. Qualche correzione.

Versione 1.6 - 26 luglio 1999. Aggiunta una sezione sulle versioni ALSA.

Versione 1.5 - 21 maggio 1999. Modificata la sezione sul mixer, aggiunta 
una sezione di installazione rapida.

Versione 1.4 - 18 maggio 1999. Incluso l'URL alla versione francese, cambiati altri URL.

Versione 1.3 - 16 maggio 1999. Grazie a Jaroslav questo HOWTO ha trovato 
casa nel sito web del progetto ALSA. Come risultato, sono stati modificati 
indirizzi web e di email.

Versione 1.2 - 11 maggio 1999. Diversi aggiornamenti.

Versione 1.1 - 11 marzo 1999. Aggiunte un paio di schede audio dalla nuova 
versione 0.3 dei driver, scritto qualcosa
sul kernel versione 2.2.

Versione 1.0 - 8 febbraio 1999. Aggiunte alcune cose alla sezione di 
risoluzione dei problemi, ma sembra quasi completa.

Versione 0.3 beta - 20 gennaio 1999. Link sulla pagina principale di ALSA. 
Ah, siamo ufficiali!

Versione 0.2 alpha - Met&agrave; gennaio 1999, prima versione .sgml.

Versione 0.1 alpha - Gennaio 1999, prima versione, pi&ugrave; che altro HTML.

Ancora: i madrelingua inglesi sono pregati di inviare qualsiasi patch in Inglese semplice.

Ora &egrave; necessario aggiungere alcune informazioni a questo HOWTO. In 
particolare, Mohamed Ismail Mohamed-Ibrahim e Gerard Haagh hanno scritto 
stupende aggiunte all'HOWTO, che mi terranno lontano dal mio normale 
lavoro per qualche tempo. Questa versione &egrave; la 2.0-pre1 e seguiranno molte 
altre pre.

<sect1>
Nuove versioni di questo documento
<p>
L'ultima versione pu&ugrave; essere trovata su <htmlurl url="http://www.alsa-project.org/~valentyn" 
name="http://www.alsa-project.org./&tilde;valentyn">

Altri formati (html, sgml, txt) sono nella directory
<htmlurl url="http://www.alsa-project.org/~valentyn/other-formats" 
name="other-formats">. Sfortunatamente non &egrave; stato possibile 
compilare una versione Postscript poich&eacute; lo script sgml2latex 
fallisce con molti errori.

Yamahata Isaku ha tradotto in giapponese questo documento, che sar&agrave; 
disponibile sul sito giapponese del progetto ALSA 
<htmlurl url="http://plaza21.mbn.or.jp/~momokuri/alsa/index.html"
name="http://plaza21.mbn.or.jp/&tilde;momokuri/alsa/index.html">

Miodrag Vallat ha tradotto in francese questo documento, traduzione disponibile su 
<htmlurl url="http://www.freenix.fr/unix/linux/HOWTO/mini/Alsa.html"
name="http://www.freenix.fr/unix/linux/HOWTO/mini/Alsa.html">.

Cserna Zsolt ha tradotto in ungherese questo documento, che si trova su <htmlurl 
url="http://kib4.vein.hu/~zsolt/alsa.html" name="http://kib4.vein.hu/~zsolt/alsa.html">.

La versione italiana di Marco Meloni si trova su <htmlurl url="http://pluto.linux.it/ildp/index.html"
name="http://pluto.linux.it/ildp/index.html">.

Chi effettua una traduzione di questo documento me lo faccia sapere, 
verr&agrave; incluso qui un riferimento.
Ook een Nederlandse versie is welkom, ik heb zelf geen tijd om deze te 
schrijven. Leve de koningin!
<sect1>
Commenti
<p>
Mi affido ai lettori per rendere utile questo HOWTO. Suggerimenti, 
correzioni o commenti possono essere inviati a
(<htmlurl url="mailto:alsa-howto@alsa-project.org" name="alsa-howto@alsa-project.org">),
verranno aggiunti alla revisione seguente.
<p>Nota bene: non ricevo molte mail riguardo i driver ALSA e quindi
ogni aggiunta &egrave; benvenuta. Anche un "grazie per" &egrave; apprezzato: 
magari non sar&agrave; troppo faticoso aggiungere una sezione "mi &egrave; 
piaciuto di pi&ugrave;" o "questo o quello non erano molto chiari".
<p>Se si pubblica questo documento su CD-ROM o stampandolo, una copia di 
cortesia sar&agrave; apprezzata. Scrivetemi un'email per avere l'indirizzo
postale. Si consideri anche l'opportunit&agrave; di effettuare una donazione al Linux
Documentation Project per supportare la documentazione libera per Linux. 
Contattare il coordinatore dei Linux HOWTO, Tim Bynum
<htmlurl url="mailto:linux-howto@metalab.unc.edu" name="linux-howto@metalab.unc.edu">,
per maggiori informazioni.
<sect1>
Regole di distribuzione
<p>
Copyright 1998/1999 Valentijn Sessink
<p>This HOWTO is free documentation; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
<p>This document is distributed in the hope that it will be useful, but
<bf>without
any warranty</bf>; without even the implied warranty of
<bf>merchantability</bf>
or <bf>fitness for a particular purpose</bf>. See the GNU General Public
License for more details.
<p>You can obtain a copy of the GNU General Public License by writing to
the <htmlurl url="http://www.fsf.org" name="Free Software Foundation">, Inc., 675
Mass Ave, Cambridge, MA 02139, USA.
<p>
<sect>
NOWTO - guida all'installazione rapida
<p>
Se si vuole l'audio e lo si vuole ADESSO! e non dopo aver letto questo HOWTO, 
questa piccola panoramica dei driver ALSA potrebbe essere di aiuto. Si noti 
che ci sono alcune differenze tra le versioni ALSA che supportano i kernel 
versione 2.0 e quelle che supportano i kernel 2.2.
<sect1>
Installare ALSA con i kernel 2.2.x
<p>
Probabilmente si vorr&agrave; usare la versione 0.4.1e di ALSA (o successiva) se 
si usa il kernel 2.2.x. Se il kernel &egrave; pi&ugrave; vecchio, si usi la versione
0.3.0-pre4 e si veda sotto.
<p>
La procedura &egrave; la solita: ``./configure - make - make install'', da ripetere per
ogni <bf>driver, libreria e utilit&agrave;</bf>. Serviranno tutte e tre
le cose, perch&eacute; le utilit&agrave; aiutano a togliere il "muto" alla
scheda audio. Nei kernel 2.2.x deve essere compilato il <bf>supporto
generico per il suono</bf> (senza scegliere una precisa scheda audio).

I driver ALSA usano i propri dispositivi, che possono essere creati con lo 
script <bf>./snddevices</bf>.

Si dovr&agrave; caricare il modulo per la propria scheda (o usare
kmod), e se si vuole che il supporto per l'audio sia retrocompatibile con
i driver audio del kernel di Linux (s&igrave;, si vuole) ci vorranno altri due
moduli chiamati <bf>snd-pcm1-oss</bf> e <bf>snd-mixer-oss</bf>. Si veda la 
sezione <ref id="which-modul" name="Quale modulo per quale scheda">
per scoprire quale modulo caricare. Dopo il caricamento, si veda /proc/asound 
per trovare varie informazioni sui driver ALSA.
<sect1>
Riprodurre e registrare audio
<p>
Qualche osservazione. ALSA utilizza i propri dispositivi in /dev/snd, per 
esempio /dev/snd/pcmC0D1 indica la scheda 0, dispositivo 1. Se &egrave; stato 
caricato il modulo di retrocompatibilit&agrave; snd-pcm1-oss si possono usare i
vecchi dispositivi /dev/pcmXY . Per poter usare /dev/mixer bisogner&agrave;
caricare anche snd-mixer-oss. Prima di poter riprodurre qualsiasi suono si 
dovr&agrave; togliere il "muto" alla scheda con "amixer". Digitare
"amixer groups", quindi provare qualcosa come:

<tt>amixer set PCM 100 unmute</tt>

Generalmente si possono usare le opzioni "mute" o "unmute", "capture" o 
"nocapture" e numeri. Ecco fatto! Adesso, se funziona, bene. Altrimenti ci 
sar&agrave; veramente bisogno di leggere questo HOWTO...

<sect1>
Installare ALSA con i kernel 2.0
<p>
Le versioni 0.3.0, 0.3.1 e 0.3.2 dei driver ALSA hanno diversi
problemi dovuti alla ristrutturazione dell'interfaccia mixer.
Versioni successive non supportano i kernel 2.0.x, dunque certamente si 
vorr&agrave; usare la versione 0.3.0-pre4 con un kernel versione 2.0.
<p>
La procedura &egrave; la solita: ``./configure - make - make install'', da 
ripetere per ogni <bf>driver, libreria e utilit&agrave;</bf>. Serviranno tutte e 
tre le cose, perch&eacute; le utilit&agrave; aiutano a togliere il "muto" alla
scheda audio. I kernel 2.0.x devono essere configurati con il <bf>supporto
per il suono disabilitato</bf>.

I driver ALSA usano i propri dispositivi, che possono essere creati con lo 
script <bf>./snddevices</bf>.

Si dovr&agrave; caricare il modulo per la propria scheda (o usare
kmod), e se si vuole il supporto per l'audio compatibile con i
driver audio del kernel di Linux (s&igrave;, si vuole) ci vorr&agrave; un altro modulo 
chiamato <bf>snd-pcm1-oss</bf>. Si veda la sezione 
<ref id="which-modul" name="Quale modulo per quale scheda">
per scoprire quale modulo caricare. Dopo il caricamento, si veda /proc/asound 
per trovare varie informazioni sui driver ALSA.
<sect1>
Riprodurre e registrare audio
<p>
Qualche osservazione. ALSA utilizza i propri dispositivi in /dev/snd, per 
esempio /dev/snd/pcmC0D1 indica la scheda 0, dispositivo 1. Se &egrave; 
stato caricato il modulo di retrocompatibilit&agrave; snd-pcm1-oss si 
possono usare i vecchi dispositivi /dev/pcmXY. Prima di poter riprodurre 
qualsiasi suono si dovr&agrave; togliere il "muto" alla scheda con "amixer". 
Digitare "amixer", quindi provare qualcosa come:

<tt>amixer pcm 100 unmute</tt>

Generalmente si possono usare le opzioni "mute" o "unmute, "rec" o "norec", 
numeri o sinistra:destra. Ecco fatto! Adesso, se funziona, bene. Altrimenti 
ci sar&agrave; veramente bisogno di leggere questo HOWTO...
<sect>
Prima di cominciare
<p>

<sect1>
Introduzione
<p>
Questo documento cerca di aiutare ad installare e usare i driver audio ALSA 
in un sistema Linux. Il sistema di riferimento &egrave; formato da una distribuzione 
Linux Slackware 4.0 su un computer AMD/K6 (compatibile x86), ma quanto qui 
esposto dovrebbe funzionare con qualsiasi altra distribuzione Linux. Non 
si sa se i driver ALSA funzionino anche su altre piattaforme ma, stando a 
quanto dice la documentazione, sono stati testati con successo su Alpha. 
Io dispongo solo di PC x86, quindi ogni altra informazione aggiuntiva
&egrave; bene accetta.

Potrebbe tornare utile la lettura del Linux Sound HOWTO (si veda la
sezione Altri HOWTO), anche se questo HOWTO &egrave; focalizzato sui driver
incorporati nel kernel.
<sect1>
Informazioni generali sui driver ALSA
<p>
Il driver audio ALSA fu originariamente scritto in sostituzione
dell'audio del kernel per le schede Gravis Ultrasound (GUS). Visto che 
questo driver sostitutivo per la GUS si rivel&ugrave; un successo, l'autore
fece partire il progetto ALSA per realizzare un driver generico per
diversi chip audio, con impostazione completamente modulare.

&egrave; compatibile con i driver audio OSS/Free e OSS/Linux (i driver del
kernel), ma ha una sua interfaccia che &egrave; anche migliore di
quella dei driver OSS. Un elenco delle funzioni &egrave; disponibile su
<htmlurl url="http://www.alsa-project.org/intro.html" name="http://www.alsa-project.org/intro.html">

Si noti che i driver ALSA sono ancora in fase di sviluppo. Le cose
potrebbero cambiare nel tempo, e alcuni programmi che fanno affidamento sui driver
ALSA funzionano solo con specifiche versioni dei driver. A parte questo
penso che siano grandi! Sto usando ALSA da 10 mesi e non torner&ugrave;
all'et&agrave; oscura dei driver audio "closed source" (suggerimento ;).
La pagina principale del progetto ALSA &egrave;
<htmlurl url="http://www.alsa-project.org/" name="http://www.alsa-project.org/">

<sect1>
Hardware supportato
<p>
I driver ALSA supportano solo un sottoinsieme delle schede audio
esistenti. Attualmente le seguenti schede audio sono
supportate.
<itemize>
<item>
Schede con chipset Trident 4D Wave DX/NX, grazie alla
Trident Microsystems che ha offerto i driver ALSA di ``prima mano''
sotto GPL (solo dispositivi MIXER e PCM) e la documentazione per il loro
chipset audio 4D Wave PCI. Si veda
http://www.tridentmicro.com/HTML/products&percnt;20folder/audio.htm per
maggiori informazioni.

Schede che usano questo chipset sono: 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 e Jaton SonicWave 4D.
<item>
Gravis Ultrasound (GUS): ``PnP'',&nbsp; Extreme, Classic/ACE, MAX</item>

<item>
Schede con chipset GUS: Dynasonic 3-D, STB Sound Rage 32,
UltraSound 32-Pro (STB), ExpertColor MED3201 e altre basate sul
chip AMD InterWave(TM), in particolare alcune schede STB della Compaq.</item>

<item>
Soundblaster: 1.0, 2.0, Pro, 16, AWE32/64, PCI64</item>

<item>
ESS AudioDrive ESx688</item>

<item>
Schede basate sul chip ESS ES968 (solo PnP).

<item>
ESS ES18xx (chipset).Si noti che ho sperimentato personalmente molti 
problemi con l'ESS1888. Lo sviluppatore del driver di questa scheda audio
ha fatto del suo meglio, ma invano.</item>

<item>
ESS Solo-1 ES1938 e ES1946. Uno solo dei due canali funziona, il che vuole dire
che non &egrave; possibile registrare. L'autore del codice per la ES1938 "&egrave; al
corrente del problema e lo sta analizzando".</item>

<item>
Yamaha: OPL3-SA2, OPL3-SA3 (chipset)</item>

<item>
OAK Mozart</item>

<item>
Schubert 32 PCI (PINE, S3 SonicVibes PCI chipset)</item>

<item>
Schede audio Ensoniq AudioPCI ES1370/1371 PCI (Soundblaster PCI64)</item>

<item>
Schede audio SonicVibes PCI (PINE Schubert 32 PCI)</item>

<item>
Schede basate su ForteMedia FM801 (nel 0.3.2)</item>

<item>
Schede audio basate sul chipset OPTi 82C9xx</item>

<item>
Schede basate sui chipset AD1847, AD1848 e CS4248</item>

<item>
Schede audio basate sul chip AZT2320 (solo PnP).</item>

<item>
Schede basate sulla Advance Logic ALS100/ALS120</item>

<item>
Schede basate sulla C-Media CMI8330</item>

</itemize>
Oltre a queste sono supportate un gran numero di schede audio basate su 
Crystal Semiconductors. Questo chip si pu&ugrave; trovare su molto hardware,
su schede indipendenti (qualche scheda serie PCA della Philips) e sulle 
schede madri (ad es. IBM Aptiva, Dell computers). Sono supportate le schede
basate sui seguenti chipset:
<itemize>

<item>
4231</item>

<item>
4232</item>

<item>
4232A</item>

<item>
4235</item>

<item>
4236B</item>

<item>
4237B</item>

<item>
4238B</item>

<item>
4239</item>

<item>
4280</item>

<item>
4610</item>

<item>
4612</item>

<item>
4614</item>

<item>
4615</item>

<item>
4680</item>

</itemize>
La buona notizia &egrave; che ALSA ora supporta i computer senza una scheda 
audio nella produzione di video. Questo si ottiene tramite un driver dummy, 
che fa credere a programmi come RealPlayer che ci sia una scheda audio
disponibile. Un elenco pi&ugrave; aggiornato pu&ugrave; essere trovato nel 
pacchetto dello stesso driver, in doc/SOUNDCARDS.

<sect1>
Altri HOWTO
<p>
Questo ALSA-sound-mini-HOWTO &egrave; solo un mini, anche se sta crescendo in fretta. 
Altri HOWTO possono essere d'aiuto nel caso che questo sia troppo conciso. 
Verranno indicati alcuni aspetti che si possono incontrare cercando di 
installare i driver ALSA. Gli HOWTO possono generalmente essere trovati 
sui mirror di Metalab (il vecchio Sunsite). Si dia un'occhiata su
<htmlurl url="http://metalab.unc.edu/LDP/mirrors.html" name="http://metalab.unc.edu/LDP/mirrors.html"> 
per scegliere il sito mirror pi&ugrave; vicino. Si possono trovare gli HOWTO nella 
directory LDP/HOWTO/. Nota bene: i collegamenti in questo documento saranno 
tutti relativi a /LDP/HOWTO/mini. Se questo documento &egrave; stato trovato in un 
sito mirror ragionevolmente buono, si troveranno anche gli HOWTO.

Ora una nota per i kernel della serie 2.2.x. Per i kernel della serie 2.2.x 
il supporto audio &egrave; uguale ad ogni altro tipo di supporto: funziona,
ma in maniera diversa rispetto a quella a cui si era abituati. Questo HOWTO 
(come ogni altro HOWTO) dalla versione 2.0pre1 si concentrer&agrave; sui kernel 
della serie 2.2, anche se cercher&ugrave; di far notare le differenze.

<sect2>
Schede audio
<p>
Forse &egrave; gi&agrave; stata comprata una scheda audio o forse &egrave; 
da tempo installata nel computer. E adesso si sta per utilizzarla! Si dia 
un'occhiata al <htmlurl url="../Sound-HOWTO.html" name="Sound-HOWTO"> per 
vedere se ne vale la pena (si potrebbe prima voler comprare la nuova 
Mega-Rumble-Blaster, poi provare i driver ALSA).
<sect2>
Schede Plug and Play
<p>
Molte schede audio moderne per la piattaforma Intel sono schede ISA
PnP, che &egrave; l'abbreviazione di "Plug and Play". Questo significa che
la scheda deve essere configurata dal sistema operativo. Ci&ugrave; deve
essere fatto attraverso una routine di inizializzazione all'avvio.
Probabilmente ci sar&agrave; bisogno di configurare la scheda con il
pacchetto PnP-utils. Ogni distribuzione Linux recente include
questi strumenti. Per l'utilizzo si veda il
<htmlurl url="../Plug-and-Play-HOWTO.html" name="Plug-and-Play-HOWTO">

Sembra che i driver ALSA abbiano un loro supporto ISA-PnP interno per diverse
schede. Sfortunatamente non posso dire come funzioni, non avendo trovato 
documentazione su questo aspetto. Se qualcuno vuole provare ad usare il 
supporto audio ALSA deliberatamente senza usare lo strumento ISA-PnP per 
favore mi mandi due righe al riguardo.
<sect2>
Moduli caricabili
<p>
I driver ALSA sono compilati come moduli. Si possono trovare maggiori
informazioni sui moduli nel <htmlurl url="../Kernel-HOWTO.html" name="Kernel-HOWTO">. 
C'&egrave; anche un Module-HOWTO ma al momento &egrave; senza un curatore; 
si dia un'occhiata alla sezione 'unmaintained' del HOWTO-HOWTO. C'&egrave; un
<htmlurl url="Modules.html" name="Modules-mini-HOWTO"> che comunque potrebbe 
essere utile.
<sect2>
Kerneld
<p>
Un altro HOWTO che potrebbe essere utile per qualcuno &egrave; il
<htmlurl url="Kerneld.html" name="Kerneld-mini-HOWTO">.
Kerneld &egrave; un demone che installa e rimuove i moduli del kernel
a seconda delle necessit&agrave;. (Io ho zero esperienza al riguardo, quindi
ogni informazione aggiuntiva sull'argomento &egrave; la benvenuta. La
documentazione del driver ALSA contiene alcune informazioni sulla
configurazione di kerneld, che sono state incluse nel presente
mini-HOWTO.)

Le cose sono cambiate con il kernel 2.2, che include il caricatore dei 
moduli del kernel. Non ci sono informazioni al riguardo, poich&eacute;
preferisco usare modprobe anzich&eacute; avere un demone che si occupi dei moduli.

<sect>
Come installare i driver audio ALSA
<p>

<sect1>
Cosa serve
<p>

<itemize>
<item>
un sistema Linux funzionante (ad es. la distribuzione Slackware)
con i pacchetti "Development" ("di sviluppo", ndt) installati (ad
es. gcc, make ecc.)</item>

<item>
una qualche conoscenza di Linux (che significa saper usare "ls", "cd", "tar" ecc.)</item>

<item>
un account come utente root</item>
</itemize>
La buona notizia &egrave; che non serve pi&ugrave; avere una scheda audio 
supportata, perch&eacute; ALSA ora contiene un driver "dummy" che non fa 
niente! (In realt&agrave; non fa davvero niente, ci sono solo alcuni 
programmi che ora funzionano perch&eacute; credono che ci sia una scheda 
disponibile). Se si ha una scheda PnP, si avr&agrave; anche bisogno di:
<itemize>
<item>
il pacchetto software isapnptools.</item>
</itemize>
Il file di testo INSTALL nella directory dei driver suggerisce che, per
alcune schede, il supporto PnP &egrave; implementato in maniera nativa.
Anche Jaroslav mi ha detto la stessa cosa. Quando avr&ugrave; maggiori
informazioni su questo argomento le aggiunger&ugrave; a questo mini-HOWTO.

Si noti che non dovrebbero esserci driver audio attivi quando si usano i
driver ALSA. Se il proprio kernel ha i driver audio incorporati, dovr&agrave; 
essere ricompilato. Se il vecchio modulo "sound.o" &egrave; attivo dovr&agrave; essere
disattivato. Se si usa kerneld, questo significa cancellare sound.o dalla 
directory /lib/modules/&lt;kernel_version&gt;/misc. I nuovi sistemi RedHat hanno
un diverso approccio al suono, che comporta l'attivit&agrave; contemporanea
di diversi moduli audio. Dovranno essere tutti disattivati.

I kernel della serie 2.2 hanno un nuovo approccio all'audio. Il supporto 
sonoro dovr&agrave; essere incluso. S&igrave;, &egrave; cos&igrave;: si 
dovr&agrave; aggiungere il supporto per l'audio al kernel ma senza 
includere alcuna scheda audio. Quindi si dovr&agrave; compilare ed 
installare il kernel e, solo dopo, compilare i driver ALSA.
<sect1>
Come ottenere i driver
<p>
I driver ALSA sono disponibili su
<htmlurl url="ftp://ftp.alsa-project.org/pub/" name="ftp://ftp.alsa-project.org/pub/">
e sui siti mirror:
<itemize>
<item>Stati Uniti: <htmlurl url="ftp://ftp.silug.org/pub/alsa"
name="ftp://ftp.silug.org/pub/alsa"></item>
<item>Stati Uniti: <htmlurl url="ftp://ftp.eecs.umich.edu/pub/linux/alsa" 
name="ftp://ftp.eecs.umich.edu/pub/linux/alsa"></item>
<item>Paesi Bassi: <htmlurl url="ftp://linux.a2000.nl/alsa"
name="ftp://linux.a2000.nl/alsa"></item>
<item>Polonia: <htmlurl url="ftp://ftp.task.gda.pl/pub/linux/misc/alsa" 
name="ftp://ftp.task.gda.pl/pub/linux/misc/alsa"></item>
<item>Germania: <htmlurl url="ftp://ftp.tu-clausthal.de/pub/linux/alsa" 
name="ftp://ftp.tu-clausthal.de/pub/linux/alsa"></item>
<item>Slovacchia: <htmlurl url="ftp://ftp.phacka.sk/pub/alsa"
name="ftp://ftp.phacka.sk/pub/alsa"></item>
<item>Australia: <htmlurl url="ftp://ftp.suburbia.com.au/pub/alsa" 
name="ftp://ftp.suburbia.com.au/pub/alsa"></item>
</itemize>
Per una installazione completa di ALSA si avr&agrave; bisogno del driver, delle 
librerie e delle utilit&agrave;; ad es. scegliendo il sito mirror A2000 si dovranno
prendere ftp://linux.a2000.nl/alsa/driver/alsa-driver-0.3.0-pre4.tar.gz,
ftp://linux.a2000.nl/alsa/lib/alsa-lib-0.3.0pre4.tar.gz e
ftp://linux.a2000.nl/alsa/utils/alsa-utils-0.3.0-pre4.tar.gz
<sect1>
Versioni di ALSA
<p>
I driver ALSA hanno percorso un lungo cammino. Lo sviluppo &egrave;
cominciato durante la versione 2.0 del kernel, poi sono arrivati i
kernel 2.2 (con il loro kernel audio).

Le versioni 0.4 sembrano funzionare perfettamente per me, quindi
dovrebbe essere sicuro usare la 0.4.1e (o una pi&ugrave; recente, volendo).
Con un kernel 2.0.x non si vorr&agrave; certamente usare la versione 0.3.0 o
successive. Invece, si usino alsa-driver-0.3.0-pre4, alsa-lib-0.3.0-pre4 e
alsa-utils-0.3.0-pre3.

Le vecchie versioni 0.2.0-pre10p3 e precedenti funzionano sotto
2.0.x, ma non sotto 2.2.x (probabilmente a causa della mancanza di 
interfacciamento con il modulo soundcore del kernel).
<sect1>
Estrazione
<p>
I driver possono essere estratti con comandi standard, per esempio il
solito tar -zxf &lt;file>. Solitamente l'estrazione avviene nella directory
/usr/src, dunque saranno necessari i privilegi di root. Si digiti "su" 
seguito dalla password di root per diventare root. Si noti che non &egrave; saggio 
usare il sistema come "root" se non &egrave; necessario. Quindi:

<tscreen><verb>cd /usr/src</verb></tscreen>

<tscreen><verb>tar -zxf &tilde;/alsa-driver-0.4.1e.tar.gz</verb></tscreen>

<tscreen><verb>tar -zxf &tilde;/alsa-lib-0.4.1d.tar.gz</verb></tscreen>

<tscreen><verb>tar -zxf &tilde;/alsa-utils-0.4.1.tar.gz</verb></tscreen>

Ugualmente funzionante e pi&ugrave; divertente: find &tilde; -name alsa* -exec tar -zxf {} &bsol;;
(non lo si faccia, &egrave; solo un esempio). Si noti che se si sono 
scaricati i driver con Netscape, si potrebbe accidentalmente avere il file 
dei driver decompressi con l'estensione ".tgz". Se tar si lamenta del 
formato del file, si potranno avere migliori risultati togliendo la "z" 
dalle opzioni di tar.
<sect1>
Compilazione
<p>
Ci sar&agrave; bisogno dei driver prima di poter compilare ed utilizzare le
librerie. Ci sar&agrave; bisogno delle librerie prima di poter compilare
o usare i programmi di utilit&agrave;. Quindi si parte da:

<tscreen><verb>cd alsa-driver-0.4.1e</verb></tscreen>
(e per chi non ha molta esperienza: si provi a premere &lt;tab> (il tasto "tab")
dopo "alsa-d". &eacute; quello che si chiama <it>command line completion</it>.)
(completamento della riga di comando, ndt). <tscreen><verb>./configure</verb></tscreen>

Se si vuole usare l'interfaccia PnP incorporata si dovr&agrave; aggiungere

<tscreen><verb>./configure --with-isapnp=yes</verb></tscreen>


<tscreen><verb>make</verb></tscreen>

Per installare il tutto bisogna ora essere "root" (probabilmente
lo si &egrave; gi&agrave;).

<tscreen><verb>make install</verb></tscreen>

Se questo comando dice qualcosa del tipo ``version.h'' cannot be found, 
probabilmente mancano i sorgenti appropriati per il kernel. Sar&agrave; 
necessario avere diversi file sorgenti del kernel per compilare i driver 
ALSA. Estrarre l'archivio linux-2.x.y.tar.gz preferito in /usr/src e dare 
il comando <tt>make menuconfig</tt> (in effetti potrebbe bastare <tt>make
symlinks</tt>). Adesso compilare le librerie:

<tscreen><verb>cd ../alsa-lib-0.4.1d</verb></tscreen>

<tscreen><verb>./configure</verb></tscreen>

<tscreen><verb>make</verb></tscreen>

<tscreen><verb>make install</verb></tscreen>
OK, adesso i programmi di utilit&agrave;:

<tscreen><verb>cd ../alsa-utils-0.4.1</verb></tscreen>

<tscreen><verb>./configure</verb></tscreen>

<tscreen><verb>make</verb></tscreen>

<tscreen><verb>make install</verb></tscreen>

Si noti che si potrebbe anche, sulle prime, non dare "make install" per i 
programmi di utilit&agrave;. Si potrebbe addirittura tralasciare l'intero 
processo di compilazione per le librerie e per i programmi di utilit&agrave;, 
solo per controllare se i driver funzionano.

<sect1>
Preparazione dei dispositivi
<p>
C'&egrave; uno script nella directory dei driver che installer&agrave; i
dispositivi sonori ALSA nella directory /dev. Si dia il comando

<tscreen><verb>./snddevices</verb></tscreen>

dalla directory dei driver. Ci dovrebbe ora essere una sottodirectory
/dev/snd (si controlli se esiste. Se non si ha familiarit&agrave;
nemmeno con il comando "ls", si prenda in considerazione la lettura di 
altri HOWTO. Si dovrebbe avere una qualche conoscenza di base di Linux
per installare questi driver).

<p>
Ora si pu&ugrave; caricare il driver, quindi si passi pure al prossimo paragrafo.

<sect>
Caricamento del driver
<p>
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&ugrave; facilmente utilizzare un
approccio basato su kerneld. Si legga la sezione
<ref id="backw-compat" name="Retrocompatibilit&agrave">. Ce ne sar&agrave; 
bisogno per avere il supporto sonoro "alla vecchia maniera".

<sect1>
Caricamento con modprobe
<p>
Si noti che, avendo una scheda audio PnP, essa dovr&agrave; prima essere impostata sui
corretti (o almeno conosciuti) IO/IRQ/DMA. Si consulti il Plug-and-Play-HOWTO. 
La scheda audio Plug-and-Play &egrave; stata configurata? Ok,
allora si continui a leggere. La cosa principale &egrave; dare il comando
"modprobe snd-card-&lt;soundcard&gt;". 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 &egrave; nel proprio
percorso. Si provi "/sbin/modprobe snd-sb16", o provare a trovare modprobe
da qualche altra parte.

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

<tscreen><verb>/sbin/modprobe snd-card-gusclassic</verb></tscreen>

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

<tscreen><verb>/sbin/modprobe snd-card-sb16</verb></tscreen>

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&igrave;, senza la scritta "card").

<sect1>Quale modulo per quale scheda?<label id="which-modul"><p>

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

<sect2>Gravis UltraSound Extreme <ref id="no-card" name="(*)"><p>

<tt/modprobe snd-card-gusextreme/
<sect2>Gravis UltraSound MAX <ref id="no-card" name="(*)"><p>

<tt/modprobe snd-card-gusmax/

<sect2>ESS AudioDrive <ref id="no-card" name="(*)"><p>
Schede audio ESS AudioDrive ES-1688 e ES-688

<tt/modprobe snd-card-audiodrive1688/

<sect2>ESS AudioDrive 18xx <ref id="no-card" name="(*)"><p>
Schede audio basate sulla ESS AudioDrive ES-18xx

<tt/modprobe snd-card-audiodrive18xx/

<sect2>Gravis UltraSound PnP <ref id="no-card" name="(*)"><p>
Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32, ExpertColor 
MED3201 e altre schede audio basate sul chip AMD InterWave&trade;.

<tt/modprobe snd-card-interwave/
<sect2>UltraSound 32-Pro <ref id="no-card" name="(*)"><p>
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

<tt/modprobe snd-card-interwave-stb/
<Sect2>Soundblaster <ref id="no-card" name="(*)"><p>
Schede Soundblaster a 8 bit (SoundBlaster 1.0, SoundBlaster 2.0, SoundBlaster
Pro)

<tt/modprobe snd-card-sb8/
<Sect2>Soundblaster 16 <ref id="no-card" name="(*)"><p>
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.

<tt/modprobe snd-card-sb16/
<sect2>OAK Mozart <ref id="no-card" name="(*)"><p>

<tt/modprobe snd-mozart/
<sect2>OPTi 82C9xx <ref id="no-card" name="(*)"><p>
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 

<tt/modprobe snd-card-opti9xx/
<sect2>AD1847/48 e CS4248<p>

<tt/modprobe snd-card-ad1848/
<Sect2>Schede audio Yamaha OPL3-SA2/SA3 <ref id="no-card" name="(*)"><p>
Il solo "modprobe snd-opl3sa" non funzioner&agrave;, per la mancanza della 
configuraione automatica. Si veda pi&ugrave; avanti.

<Sect2>S3 SonicVibes <ref id="no-card" name="(*)"><p>
Schede audio PCI S3 SonicVibes. (PINE Schubert 32 PCI)

<tt/modprobe snd-card-sonicvibes/

<Sect2>Ensoniq/Soundblaster PCI64 <ref id="no-card" name="(*)"><p>
Schede audio PCI Ensoniq AudioPCI ES1370/1371. (SoundBlaster PCI 64)

<tt/modprobe snd-card-audiopci/
<sect2>CS4231<p>
Il solo "modprobe snd-card-cs4231" non funzioner&agrave;, per la mancanza della 
configurazione automatica. Si veda pi&ugrave; avanti.

<Sect2>CS4232/4232A<p>
Tutte le schede audio basate sul chip CS4232/CS4232A.
Il solo "modprobe snd-card-cs4232" non funzioner&agrave;, per la mancanza della 
configurazione automatica. Si veda pi&ugrave; avanti.

<Sect2>4235 e successive<p>
Tutte le schede audio basate sui chip CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239.
Il solo "modprobe snd-card-cs4236" non funzioner&agrave;, per la mancanza della 
configurazione automatica. Si veda pi&ugrave; avanti.

<sect2>4610/4612/4615 e 4680<p>

<tt/modprobe snd-card-cs461x/
<sect2>ESS Solo 1 <ref id="no-card" name="(*)"><p>
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 &egrave;, 
sostanzialmente, nulla pi&ugrave; di un
<tt/modprobe snd-card-esssolo1/	
... ma <htmlurl url="http://dice.shopcenter.nu/alsa/" name="http://dice.shopcenter.nu/alsa/"> 
potr&agrave; essere d'aiuto.

Chi avesse un Thinkpad 1412 dell'IBM pu&ugrave; anche consultare
<htmlurl url="http://www.geocities.com/SiliconValley/Peaks/3649/1412.html"
name="http://www.geocities.com/SiliconValley/Peaks/3649/1412.html">, grazie 
a Kumar Sankaran. <sect2>Trident 4DWave DX/NX <ref id="trident" name="(**)"><p>
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.

<tt/modprobe snd-card-trident/
<sect2>ForteMedia FM801<p>
Queste sono schede PCI basate sul chip FM801.

<tt/modprobe snd-card-fm801/

<bf>(*)</bf><label id="no-card">
Con la versione 0.3.0-pre4 di ALSA, si dovr&agrave; tralasciare la parte "card-" 
nella maggior parte dei nomi dei driver (non in tutti). Cos&igrave; 
"snd-card-sb16" diventa "snd-sb16"; tuttavia, "snd-card-cs4232" rimane
"snd-card-cs4232" (modprobe snd-cs4232 far&agrave; qualcosa, ma non si otterr&agrave;
alcun suono!)

<p>
<bf>(**)</bf><label id="trident">
Nelle vecchie versioni di ALSA questo driver si chiamava "snd-card-trid4wave"
e "snd-trid4wave".

<p>
<sect1>
modprobe per driver senza configurazione automatica
<p>
Se si usa un driver senza configurazione automatica, si dovranno fornire
delle indicazioni aggiuntive all'avvio perch&eacute; il driver possa
funzionare. Si possono trovare altre informazioni nel file
INSTALL presente nella directory del driver.
<sect2>
OPL3-SA2 e OPL3-SA3
<p>
Stando a quanto dice il file INSTALL si dovranno specificare tutte le 
informazioni per permettere a questo driver di funzionare. Se la scheda &egrave; 
stata inizializzata con gli strumenti isapnp probabilmente si potranno 
ottenere informazioni dal file /etc/isanp.conf per i seguenti valori:

<tscreen><verb>snd&lowbar;port - porta di controllo &num; per il chip OPL3-SA
snd&lowbar;wss&lowbar;port - porta WSS &num; per il chip OPL3-SA (0x530,0xe80,0xf40,0x604)
snd&lowbar;midi&lowbar;port - porta &num; per MPU-401 UART (0x300,0x330), -1 = disabilitata
snd&lowbar;fm&lowbar;port - porta FM &num; per il chip OPL3-SA (0x388), -1 = disabilitata
snd&lowbar;irq - IRQ &num; per il chip OPL3-SA (5,7,9,10)
snd&lowbar;dma1 - primo DMA &num; per il chip Yamaha OPL3-SA (0,1,3)
snd&lowbar;dma1&lowbar;size - dimensione massima del primo DMA in kB (4-64kB)
snd&lowbar;dma2 - secondo DMA &num; per il chip Yamaha OPL3-SA (0,1,3), -1 = disabilitata
snd&lowbar;dma2&lowbar;size - dimensione massima del secondo DMA in kB (4-64kB)</verb></tscreen>

Si potrebbe dare il comando "modprobe snd-card-opl3sa snd&lowbar;port=0xNNN 
snd&lowbar;wss&lowbar;port=0x530 snd&lowbar;midi&lowbar;port=-1
snd&lowbar;fm&lowbar;port=0x388 snd&lowbar;irq=5 snd&lowbar;dma1=0 
snd&lowbar;dma1&lowbar;size=NN snd&lowbar;dma2=1 snd&lowbar;dma2&lowbar;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 &egrave; 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 &egrave; certo se la dimensione del 
dma sia veramente richiesta.

Chi possiede un Thinkpad della IBM con questo chipset pu&ugrave; trovare aiuto presso
<htmlurl url="http://www.cirs.org/patrick/index.html" name="http://www.cirs.org/patrick/index.html">.
Usando il driver della versione 0.3.0-pre4 si dovr&agrave; tralasciare la parte "card-" nel nome.

<sect2>
Chip CS4231
<p>
Stando a quanto dice il file INSTALL si dovr&agrave; 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:

<tscreen><verb>snd&lowbar;port - porta &num; per il chip CS4232 (impostazione PnP - 0x534)
snd&lowbar;mpu&lowbar;port - porta &num; per l'UART MPU-401 (impostazione PnP - 0x300), -1 = disabilitata
snd&lowbar;irq - IRQ &num; per il chip CS4232 (5,7,9,11,12,15)
snd&lowbar;mpu&lowbar;irq - IRQ &num; per l'UART MPU-401 (9,11,12,15)
snd&lowbar;dma1 - primo DMA &num; per il chip CS4232 (0,1,3)
snd&lowbar;dma1&lowbar;size - dimensione massima del primo DMA in kB (4-64kB)
snd&lowbar;dma2 - secondo DMA &num; per il chip Yamaha CS4232 (0,1,3), -1 = disabilitata
snd&lowbar;dma2&lowbar;size - dimensione massima del secondo DMA in kB (4-64kB)</verb></tscreen>

Si potrebbe dare il comando "modprobe snd-card-cs4231 snd&lowbar;port=0x534 
snd&lowbar;mpu&lowbar;port=-1 snd&lowbar;irq=5 snd&lowbar;dma1=0 
snd&lowbar;dma1&lowbar;size=NN snd&lowbar;dma2=1 snd&lowbar;dma2&lowbar;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: &egrave; 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 &egrave; certo se la dimensione del 
dma sia veramente richiesta.

<sect2>
Chip CS4232/CS4232A
<p>
Stando a quanto dice il file INSTALL si dovr&agrave; 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:

<tscreen><verb>snd&lowbar;port - porta &num; per il chip CS4232 (impostazione PnP - 0x534)
snd&lowbar;cport - porta di controllo &num; per il chip CS4232 (impostazione PnP - 0x120)
snd&lowbar;mpu&lowbar;port - porta &num; per l'UART MPU-401 (impostazione 
PnP - 0x300), -1 = disabilitata
snd&lowbar;fm&lowbar;port - porta FM &num; per il chip CS4232 (impostazione 
PnP - 0x388), -1 = disabilitata
snd&lowbar;jport - porta joystick per il chip CS4232 (impostazione PnP - 0x200), -1 =
disabilitata
snd&lowbar;irq - IRQ &num; per il chip CS4232 (5,7,9,11,12,15)
snd&lowbar;mpu&lowbar;irq - IRQ &num; per l'UART MPU-401 (9,11,12,15)
snd&lowbar;dma1 - primo DMA &num; per il chip CS4232 (0,1,3)
snd&lowbar;dma1&lowbar;size - dimensione massima del primo DMA in kB (4-64kB)
snd&lowbar;dma2 - secondo DMA &num; per il chip Yamaha CS4232 (0,1,3), -1 = disabilitata
snd&lowbar;dma2&lowbar;size - dimensione massima del secondo DMA in kB (4-64kB)</verb></tscreen>

Si potrebbe dare il comando "modprobe snd-card-cs4232 snd&lowbar;port=0x534 
snd&lowbar;cport=0x120 snd&lowbar;mpu&lowbar;port=-1 snd&lowbar;fm&lowbar;port=0x388 
snd&lowbar;jport=-1 snd&lowbar;irq=5 snd&lowbar;dma1=0 snd&lowbar;dma1&lowbar;size=NN
snd&lowbar;dma2=1 snd&lowbar;dma2&lowbar;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: &egrave; 
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 &egrave; certo se la dimensione del dma sia veramente richiesta.

<sect2>
Chip CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239
<p>
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&lowbar;port
e snd&lowbar;cport. Se si inizializza la scheda con gli strumenti isapnp 
probabilmente si potranno ottenere informazioni dal file /etc/isapnp.conf 
per i seguenti valori:

<tscreen><verb>snd&lowbar;port - porta &num; per il chip CS4232 (impostazione PnP - 0x534)
snd&lowbar;cport - porta di controllo &num; per il chip CS4232 (impostazione PnP - 0x120)
snd&lowbar;mpu&lowbar;port - porta &num; per l'UART MPU-401 (impostazione 
PnP - 0x300), -1 = disabilitata
snd&lowbar;fm&lowbar;port - porta FM &num; per il chip CS4232 (impostazione 
PnP - 0x388), -1 = disabilitata
snd&lowbar;jport - porta joystick per il chip CS4232 (impostazione PnP - 0x200), 
-1 = disabilitata
snd&lowbar;irq - IRQ &num; per il chip CS4232 (5,7,9,11,12,15)
snd&lowbar;mpu&lowbar;irq - IRQ &num; per l'UART MPU-401 (9,11,12,15)
snd&lowbar;dma1 - primo DMA &num; per il chip CS4232 (0,1,3)
snd&lowbar;dma1&lowbar;size - dimensione massima del primo DMA in kB (4-64kB)
snd&lowbar;dma2 - secondo DMA &num; per il chip Yamaha CS4232 (0,1,3), -1 = disabilitata
snd&lowbar;dma2&lowbar;size - dimensione massima del secondo DMA in kB (4-64kB)</verb></tscreen>

Si potrebbe dare il comando "modprobe snd-card-cs4236 snd&lowbar;port=0x534 
snd&lowbar;cport=0x120
snd&lowbar;mpu&lowbar;port=-1 snd&lowbar;fm&lowbar;port=0x388 snd&lowbar;jport=-1 
snd&lowbar;irq=5 snd&lowbar;dma1=0 snd&lowbar;dma1&lowbar;size=NN
snd&lowbar;dma2=1 snd&lowbar;dma2&lowbar;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:
<itemize>
<item>devono essere specificati i valori "NN", solo che non si sa quale
potrebbe essere un valore ragionevole.</item>
<item>la mia CS4237B funziona bene senza specificare la dimensione del DMA.</item>
</itemize>
<sect1>
L'approccio con kerneld
<p>
<tt>kerneld</tt> &egrave; un demone che carica i moduli su richiesta, e li scarica quando non
vengono utilizzati. Poich&eacute; non ho alcuna esperienza sull'uso di
kerneld, non &egrave; 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.

<p>Si seguano questi passi:
<itemize>
<item>
Modificare il file /etc/conf.modules (si vedano pi&ugrave; avanti gli esempi)</item>

<item>
Eseguire 'modprobe snd-card' dove 'card' &egrave; il nome della propria scheda &lsqb;
Il che sembra abbastanza strano, non dovrebbe occuparsi kerneld di caricarli? 
VS&rsqb;</item>
</itemize>
Esempio di /etc/conf.modules per una scheda audio PnP Gravis UltraSound:
<tscreen><verb>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&lowbar;major=14 snd&lowbar;cards&lowbar;limit=1
options snd-interwave snd&lowbar;index=1 snd&lowbar;id="guspnp" snd&lowbar;port=0x220 
snd&lowbar;irq=5 snd&lowbar;dma1=5 snd&lowbar;dma2=6</verb></tscreen>

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

<tscreen><verb>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&lowbar;major=14 snd&lowbar;cards&lowbar;limit=2
options snd-sb16 snd&lowbar;index=1 snd&lowbar;port=0x220 snd&lowbar;irq=5 
snd&lowbar;dma8=1 snd&lowbar;dma16=5
options snd-gusclassic snd&lowbar;index=2 snd&lowbar;irq=11 snd&lowbar;dma1=6 
snd&lowbar;dma2=7</verb></tscreen>

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

<tscreen><verb>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&lowbar;major=14 snd&lowbar;cards&lowbar;limit=2
options snd-gusclassic snd&lowbar;index=1,2 snd&lowbar;port=0x220,0x260 
snd&lowbar;irq=5,11 snd&lowbar;dma1=5,6 snd&lowbar;dma2=7,3</verb></tscreen>

<sect1>
Retrocompatibilit&agrave;<label id="backw-compat">
<p>
Per assicurarsi la compatibilit&agrave; con OSS/Free e OSS/Linux si
dovr&agrave; caricare un ulteriore driver: il driver snd-pcm1-oss per la
compatibilit&agrave; con OSS. Si dia il comando

<tscreen><verb>modprobe snd-pcm1-oss</verb></tscreen>

Questo metter&agrave; 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 &egrave; solo un'emulazione.

<sect>
Test e uso
<p>
Ora si dovr&agrave; verificare se il driver audio &egrave; stato realmente 
caricato e quindi provare a usarlo.

<sect1>
Il filesystem /proc
<p>
Si possono trovare molte informazioni utili sul proprio sistema nella
sottodirectory /proc. /proc &egrave; un filesystem "virtuale": ci&ugrave; significa
che non esiste veramente, ma che semplicemente &egrave; una mappatura dei vari 
processi e task del proprio computer. Affinch&eacute; /proc funzioni dovr&agrave; esserci 
il supporto necessario compilato nel kernel. Molte distribuzioni di Linux 
lo fanno in maniera predefinita, ma se &egrave; stato compilato un kernel 
lasciando fuori il supporto per /proc, ovviamente non vi sar&agrave; nulla in /proc.

/proc/modules fornisce informazioni sui moduli caricati. Una volta
che i driver audio ALSA sono stati caricati, dando il comando cat
/proc/modules si dovrebbe vedere qualcosa come:

<tscreen><verb>snd-pcm1-oss      4            0
snd-sb16          1            1
snd-sb-dsp        4    &lsqb;snd-sb16&rsqb;      0
snd-pcm1          4    &lsqb;snd-pcm1-oss snd-sb-dsp&rsqb;      0
snd-pcm           3    &lsqb;snd-pcm1-oss snd-sb16 snd-sb-dsp snd-pcm1&rsqb;    0
snd-mixer         3    &lsqb;snd-pcm1-oss snd-sb16 snd-sb-dsp&rsqb;      1
snd-mpu401-uart   1    &lsqb;snd-sb16&rsqb;      0
snd-midi          4    &lsqb;snd-sb16 snd-sb-dsp snd-mpu401-uart&rsqb;   0
snd-opl3          1    &lsqb;snd-sb16&rsqb;      0
snd-synth         1    &lsqb;snd-sb16 snd-opl3&rsqb;     0
snd-timer         1    &lsqb;snd-opl3&rsqb;      0
snd               8    &lsqb;snd-pcm1-oss snd-sb16 snd-sb-dsp snd-pcm1 snd-pcm snd-mixer snd-mpu401-uart snd-midi snd-opl3 snd-synth snd-timer&rsqb;    0</verb></tscreen>

Se qualcosa &egrave; andato storto durante l'installazione del driver si vedranno
un paio di dispositivi "snd", ma il supporto per l'audio non sar&agrave; attivo.

Per esempio (si noti che non si dovr&agrave; mai dare questo comando cos&igrave; come segue,
il driver cs4236 ha bisogno delle opzioni):

<tscreen><verb>win3:&tilde;&num; modprobe snd-card-cs4236
/lib/modules/2.0.35/misc/snd-card-cs4236.o: init&lowbar;module: Device or resource busy
snd-mixer: Device or resource busy
win3:&tilde;&num; cat /proc/modules
snd-cs4236        2           0
snd-cs4231        3    &lsqb;snd-cs4236&rsqb;    0
snd-timer         1    &lsqb;snd-cs4231&rsqb;    0
snd-pcm1          4    &lsqb;snd-cs4236 snd-cs4231&rsqb; 0
snd-mixer         3    &lsqb;snd-cs4236 snd-cs4231&rsqb; 0
snd-pcm           3    &lsqb;snd-cs4236 snd-cs4231 snd-pcm1&rsqb;       0
snd-mpu401-uart   1           0
snd-midi          4    &lsqb;snd-mpu401-uart&rsqb;       0
snd-opl3          1           0
snd-synth         1    &lsqb;snd-opl3&rsqb;      0
snd-timer         1    &lsqb;snd-cs4231 snd-opl3&rsqb;   0
snd               8    &lsqb;snd-cs4231 snd-timer snd-pcm1 snd-mixer snd-pcm&rsqb;     0</verb></tscreen>

Si pu&ugrave; controllare l'esistenza di una scheda audio guardando in
/proc/asound/cards. Per esempio:

<tscreen><verb>bash&dollar; cat /proc/asound/cards
0 &lsqb;card1          : SB16 - Sound Blaster 16
                    Sound Blaster 16 at 0x220, irq 5, dma 1&amp;5</verb></tscreen>

Nell'esempio precedente (dove le opzioni sono state dimenticate) l'output 
sarebbe dovuto essere:

<tscreen><verb>win3:&tilde;&num; cat /proc/asound/cards
--- no soundcards ---</verb></tscreen>

Una scheda CS4236 funzionante produrrebbe

<tscreen><verb>0 &lsqb;card1         &rsqb;: CS4236 - CS4237B
                    CS4237B at 0x534, irq 7, dma 1&amp;0</verb></tscreen>

Se sono state controllate e ricontrollate le impostazioni ed ancora non si vede
nessuna scheda, si dia un'occhiata alla sezione risoluzione dei problemi.

La directory virtuale <tt>/proc/asound</tt> fornisce molte altre informazioni
sul driver. Si noti che /proc/asound esister&agrave; solo dopo aver caricato il
primo modulo ALSA. Se /proc/asound non c'&egrave;, significa
semplicemente che il modulo "snd" non &egrave; stato correttamente caricato.
Si possono identificare le schede installate in /proc/asound/cards, e
trovare le informazioni sulla scheda0 in /proc/asound/0, quelle sulla 
scheda1 in /proc/asound/1 ecc.

Se <tt>cat /proc/asound/card1/pcm0</tt> mostra qualcosa come

<tscreen><verb>      ES1370 DAC2/ADC
      Playback isn't active.
      Record isn't active.</verb></tscreen> 

significa che il driver &egrave; pronto a funzionare, ma in questo momento non 
sta facendo nulla (quindi &egrave; andato tutto bene).

Per chi usa un kernel 2.0 c'&egrave; un terzo metodo per trovare informazioni sui 
dispositivi audio, vale a dire che se &egrave; stato caricato il driver OSS 
compatibile vi sar&agrave; un dispositivo /dev/sndstat. I driver ALSA chiedono 
gentilmente di non fare affidamento su queste informazioni, poich&eacute; il 
dispositivo &egrave; presente solo per compatibilit&agrave; con i driver OSS e 
informazioni pi&ugrave; attendibili possono essere ottenute da /proc/asound/. Nei 
kernel 2.2.x ALSA utilizza il soundcore del kernel e quindi non pu&ugrave; emulare
/dev/sndstat, poich&eacute; potrebbe interferire con i driver OSS.

<sect1>
Il mixer
<p>
Una volta che i driver per la scheda audio sono stati
installati e il filesystem /proc assicura che tutto &egrave; andato
a buon fine si pu&ugrave; provare a produrre qualche suono.

Per farlo si dovranno impostare i volumi del mixer ad un valore ragionevole: 
ci sar&agrave; bisogno del programma "amixer", dal pacchetto alsa-utils.

Prima di tutto si installi il pacchetto dei programmi di utilit&agrave;, o almeno si metta
il comando "amixer" in qualche posto accettabile (come /usr/local/bin).

La versione 0.3.2 e successive hanno un'interfaccia diversa da quelle dei driver
OSS. Digitando "amixer" verranno mostrati i vari elementi del mixer e i relativi valori.
Uno di questi elementi potrebbe essere "volume master", per esempio, e potrebbe
presentarsi cos&igrave;:

<tscreen><verb>Group 'Master',0
  Capabilities: volume
  Channels: Front-Left Front-Right 
  Limits: min = 0, max = 31
  Front-Left: 31 [100%] [on] [---]
  Front-Right: 26 [84%] [on] [---]</verb></tscreen>

Sfortunatamente non si sa come impostare indipendentemente i volumi 
sinistro e destro. Con amixer si possono cambiare i volumi con il comando 
"amixer set". Per esempio, per cambiare il volume Master, si pu&ugrave; dare il comando

<tscreen><verb>amixer set Master 15</verb></tscreen>

Si noti che i nomi degli elementi possono essere diversi per diversi tipi 
di schede audio. Si noti anche che amixer fa differenza tra maiuscolo e 
minuscolo, perci&ugrave; "amixer set masteR 10" non funzioner&agrave;. Per maggiori 
informazioni si veda la pagina di manuale di amixer.

Con la versione 0.3.0-pre4 di ALSA, amixer funziona come i normali programmi di mixer.

Si pu&ugrave; dare un'occhiata alle impostazioni del mixer digitando "amixer". 
Questo comando mostra le impostazioni del mixer o, come vengono normalmente 
chiamate, le impostazioni del volume delle diverse parti della scheda audio. 
L'output di amixer pu&ugrave; variare molto da scheda a scheda. Per la mia Soundblaster 16 dice:

<tscreen><verb>Master         0  &percnt; (-14.00dB) : 0  &percnt; (-14.00dB)
Bass           0  &percnt; (-14.00dB) : 0  &percnt; (-14.00dB)
Treble         0  &percnt; (-14.00dB) : 0  &percnt; (-14.00dB)
Synth          0  &percnt; (-62.00dB) : 0  &percnt; (-62.00dB)
PCM            0  &percnt; (-62.00dB) : 0  &percnt; (-62.00dB)
Line-In        0  &percnt; (-62.00dB) : 0  &percnt; (-62.00dB) Mute
MIC            0  &percnt; (-62.00dB) : 0  &percnt; (-62.00dB) Mute
CD             0  &percnt; (-62.00dB) : 0  &percnt; (-62.00dB) Mute
In-Gain        0  &percnt; (-18.00dB) : 0  &percnt; (-18.00dB)
Out-Gain       0  &percnt; (-18.00dB) : 0  &percnt; (-18.00dB)
PC Speaker     0  &percnt; (-18.00dB) : 0  &percnt; (-18.00dB)</verb></tscreen>

Se si ottiene solo un messaggio del tipo "amixer: Specify command..."  si 
stanno utilizzando i programmi di utilit&agrave; di ALSA 3.2. Il suggerimento &egrave; 
aggiornare le utilit&agrave; alla versione 0.4.1e o successive, oppure ritornare 
alla versione 0.3.0-pre4.

<sect2>
Impostazioni del mixer per la riproduzione
<p>
Sar&agrave; stata notata la voce "Mute" su qualche dispositivo. Questa significa
che quel particolare dispositivo sar&agrave; escluso, qualunque sia il suo
livello di volume. Alcune schede (la CS4237B dell'esempio) azzerano il 
volume anche sul canale principale. Nel caso della CS4237B si dovrebbe digitare

<tt>amixer set "Master d" unmute</tt>

per riuscire anche solo ad udire qualche suono. La Soundblaster non ha il 
volume azzerato sul canale di output ma

<tt>amixer set Master 100 unmute</tt>

imposter&agrave; il volume al 100% e toglier&agrave; il "muto" al canale principale.
&eacute; possibile usare un numero, una parola come "mute" o "unmute" o
entrambi. Digitando

<tt>amixer set "Master d" 100; amixer set PCM 100 unmute</tt>

si imposta la scheda CS4237B al massimo volume del canale principale e si 
toglie il "muto" al canale PCM portandolo al massimo volume.

Usando una versione di amixer pi&ugrave; vecchia, si dovr&agrave; tralasciare la parte 
"set" del comando, dunque baster&agrave; digitare

<tt>amixer "master d" 100</tt>

<sect2>
Componenti del mixer
<p>
I vari componenti del mixer possono confondere se non si hanno conoscenze 
sulla produzione di audio digitale. Il Sound-HOWTO potrebbe
essere d'aiuto, qui si trover&agrave; una introduzione molto breve.

Probabilmente si avr&agrave; bisogno solo di pochi elementi del mixer: uno di
questi &egrave; l'impostazione "CD" (cio&egrave; il suono analogico proveniente dal
lettore CD; quasi tutti i lettori di CD sono connessi con un cavo
rosso/bianco/nero a 3 o 4 fili).

L'impostazione "PCM" &egrave; usata per quasi tutte le applicazioni. Programmi
come mpg123, xmms, speakfreely, realplayer ed altri usano il canale PCM.

"MIC" sta per microfono, "line-in" &egrave; un ingresso extra (opzionale) posto 
in fondo alla scheda audio.

I vari componenti "gain" ("guadagno" ndt) permettono di avere una ulteriore
amplificazione per diversi usi e sono facilmente comprensibili.
(per esempio record-gain &egrave; una ulteriore amplificazione del canale di 
registrazione, che pu&ugrave; tornare utile se si utilizza un microfono).

<sect2>
Impostazioni del mixer per la registrazione
<p>

Si pu&ugrave; impostare il canale CD per la registrazione digitando

<tt>amixer set CD capture</tt>

e fermare la registrazione con

<tt>amixer set CD nocapture</tt>.

Si noti che programmi amixer pi&ugrave; vecchi usano "amixer CD rec" e "amixer CD 
norec" a questo scopo.

Per registrare qualcosa dal microfono si user&agrave;

<tt>amixer set "Input Gain" 100; amixer set Mic 100 capture mute</tt>.

(l'uso dell'input dal microfono senza volume azzerato potrebbe generare 
del rumore ad alta frequenza se il microfono captasse il suo stesso suono 
dagli altoparlanti). Molti microfoni dispongono di una impostazione di 
"gain"per amplificarne il volume; probabilmente si dovr&agrave; agire su questa 
per riuscire ad udire i suoni provenienti dal microfono.

Di nuovo, programmi amixer pi&ugrave; vecchi useranno mixer ``"input gain" 100; 
amixer mic 100 rec mute''.

<sect2>
Altre impostazioni del mixer
<p>
Sfortunatamente non sono riuscito a modificare il volume delle
impostazioni "3d center" e "3d space" con amixer 0.3.0-pre4. Non ho ancora
provato la versione 0.4.1e (questa particolare macchina usa ancora 2.0.38). 
Se qualcuno ci riuscisse &egrave; pregato di farmelo sapere. A questo scopo pu&ugrave; 
essere utilizzato alsamixer, per il quale per&ugrave; non &egrave; ancora stato fatto il 
port alla versione 0.4.1e.

Le FAQ di ALSA dicono che &egrave; possibile ripristinare le impostazioni del
mixer con <tt>cat &lt;file> > /proc/asound/&num;/mixerC0D0</tt>, dove &lt;file>
&egrave; l'output di /proc/asound/&num;/mixerC0D0. Non sono riuscito a far
funzionare questo metodo perch&eacute; il suo sistema si lamenta riguardo a
dei dispositivi inesistenti. Inoltre c'&egrave; il programma "alsactl", che non 
uso. Siete invitati (s&igrave;, voi) a scrivere questa sezione.

<sect1>
I dispositivi /dev/snd/
<p>
I driver ALSA dispongono di dispositivi audio nativi nella directory
/dev/snd. Se si dispone di una scheda si potranno vedere i seguenti
dispositivi:

<tscreen><verb>/dev/snd/pcmC0D0 - il dispositivo raw audio della scheda
/dev/snd/mixerC0D0 - il mixer per la scheda 0
/dev/snd/controlC0D0 - il dispositivo di controllo per la scheda 0</verb></tscreen>

Il primo numero indica il numero della scheda audio, il secondo numero
(se c'&egrave;) &egrave; il numero del dispositivo. Una scheda audio con due dispositivi 
PCM dovrebbe avere un dispositivo pcmC0D0 e uno pcmC0D1. Si noti che
i dispositivi ALSA sono cambiati rispetto alle precedenti versioni. I vecchi
dispositivi ALSA usavano /dev/snd/pcm00 (il primo numero &egrave; la
scheda, il secondo il dispositivo). Se questo HOWTO usa la vecchia
notazione scrivetemi, cos&igrave; potr&ugrave; essere corretto.

Ora si pu&ugrave; provare a mettere un file audio qualunque nel dispositivo PCM 
della prima scheda. Si provi quindi a fare un cat di un qualsiasi file di
testo (un file qualunque) in /dev/snd/pcmC0D0, per esempio <tt>cat &lt;filename> > /dev/snd/pcmC0D0</tt>.
&lt;nomefile> pu&ugrave; essere un file qualsiasi, purch&eacute; sia
abbastanza lungo. Se c'&egrave; un file audio da qualche parte si pu&ugrave;
provare con quello. Si pu&ugrave; anche prendere il file presente su
<htmlurl url="http://www.ldp.org/sounds/english.au" name="http://www.ldp.org/sounds/english.au">, 
&egrave; Linus Torvalds che fa sentire come si pronuncia Linux.

L'impostazione predefinita del dispositivo audio &egrave; 8000 Hz, 8
bit. Questo significa che il file "english.au" di cui sopra
riprodurr&agrave; il discorso, gli altri file di testo produrranno semplicemente del
rumore. Se non si sente nulla si controllino gli altoparlanti,
si provi di nuovo con "amixer" o si consulti un medico (pi&ugrave; avanti
si potr&agrave; facilmente utilizzare la propria scheda a 48 Khz e 16 bit con
il proprio riproduttore preferito, tipo sox o mpg123).

Se &egrave; stato caricato il modulo "snd-pcm1-oss" si pu&ugrave; anche usare la
compatibilit&agrave; con OSS per accedere alla scheda. Sono utilizzate
le seguenti mappature:

<tscreen><verb>/dev/snd/pcmC0D0 -> /dev/audio0 (/dev/audio) -> minor 4
/dev/snd/pcmC0D0 -> /dev/dsp0 (/dev/dsp) -> minor 3
/dev/snd/pcmC0D1 -> /dev/adsp0 (/dev/adsp) -> minor 12
/dev/snd/pcmC1D0 -> /dev/audio1 -> minor 4+16 = 20
/dev/snd/pcmC1D0 -> /dev/dsp1 -> minor 3+16 = 19
/dev/snd/pcmC1D1 -> /dev/adsp1 -> minor 12+16 = 28
/dev/snd/pcmC2D0 -> /dev/audio2 -> minor 4+32 = 36
/dev/snd/pcmC2D0 -> /dev/dsp2 -> minor 3+32 = 35
/dev/snd/pcmC2D1 -> /dev/adsp2 -> minor 12+32 = 44</verb></tscreen>

Probabilmente si vorr&agrave; anche usare il modulo "snd-mixer-oss", per poter 
sfruttare il mixer con la retrocompatibilit&agrave;.

<sect1>
Informazioni aggiuntive
<p>
Il file INSTALL nella directory del driver ALSA menziona alcuni
accorgimenti per dire al driver quale impostazioni usare. L'avere o meno
bisogno di questi comandi dipender&agrave; dall'applicazione che verr&agrave; usata per
riprodurre l'audio. Le normali applicazioni di riproduzione audio,
come mpg123, sox (frequentemente richiamato col comando "play"), o le
applicazioni per X11 come RealPlayer probabilmente funzioneranno
correttamente comunque. In ogni caso non li ho mai utilizzati.

<sect2>
/proc/asound/&num;/pcm&num;0
<p>

<tscreen><verb>"Playback erase" - cancella tutte le informazioni aggiuntive 
sulle applicazioni OSS "Playback &lt;app&lowbar;name> &lt;fragments> 
&lt;fragment&lowbar;size> &lsqb;&lt;options>&rsqb;"
"Record erase" - cancella tutte le informazioni aggiuntive sulle applicazioni OSS
"Record &lt;app&lowbar;name> &lt;fragments> &lt;fragment&lowbar;size> 
&lsqb;&lt;options>&rsqb;"</verb></tscreen>

<tt>&lt;app&lowbar;name></tt> - nome dell'applicazione con (priorit&agrave; pi&ugrave; 
alta) o senza percorso

<tt>&lt;fragments></tt> - numero dei frammenti o zero in modalit&agrave; 
automatica

<tt>&lt;fragment&lowbar;size></tt> - dimensione dei frammenti in byte o 
zero in modalit&agrave; automatica

<tt>&lt;options></tt> - parametri opzionali

<tt>WR&lowbar;ONLY</tt> - se l'applicazione prova ad accedere al 
dispositivo pcm con O&lowbar;RDWR il driver lo cambia in O&lowbar;WRONLY 
(riproduzione). Ottimo per Quake ecc.

Esempi:
<tscreen><verb>echo "Playback x11amp 128 16384" > /proc/asound/0/pcm0o
echo "Playback squake 0 0 WR&lowbar;ONLY" > /proc/asound/0/pcm0o</verb></tscreen>
<sect2>
/proc/asound/&num;card&num;/sb16
<p>

<tscreen><verb>"Playback 8" -> il driver user&agrave; sempre il canale DMA a
8-bit per la riproduzione.
"Playback 16" -> il driver user&agrave; sempre il canale DMA a 16 bit per la 
riproduzione.
"Playback auto" (predefinito) -> il driver user&agrave; la configurazione 
automatica (il primo canale aperto utilizzer&agrave; il canale DMA a 16 bit).
"Record 8" -> il driver user&agrave; sempre il canale DMA a 8 bit per la 
registrazione.
"Record 16" -> il driver user&agrave; sempre il canale DMA a 16 bit per la 
registrazione.
"Record auto" (predefinito) -> il driver utilizzer&agrave; la configurazione 
automatica (il primo canale aperto utilizzer&agrave; il canale DMA a 16 bit).</verb></tscreen>

Esempio: <tt>echo "Record 16" > /proc/asound/0/sb16</tt>

Per altre informazioni si consulti il file INSTALL.
<sect>
Trucchi e risoluzione dei problemi
<p>
Si dia un'occhiata al file FAQ nella directory del driver audio. Questa 
sezione &egrave; ancora in lavorazione.
<sect1>
Compilare il driver
<p>
<sect2>
Sorgenti del kernel linux
<p>
Se i driver ALSA non si compilano correttamente e fanno qualche riferimento 
a "version.h" o altri file header che non possono essere
trovati, potrebbe significare che non si dispone dei file header
del kernel. Si veda il Kernel HOWTO, si estragga un kernel
recente in /usr/src e si dia il comando <tt>make config</tt>.

<sect2>
Impossibile creare eseguibili
<p>
Le utilit&agrave; contengono codice scritto in c++. Quasi tutti hanno un 
compilatore c++ contenuto in gcc o egcs, ma ci si assicuri di aver 
installato il pacchetto libstdc++-devel, altrimenti, lanciando lo script di 
configurazione delle utilit&agrave; il sistema lascer&agrave; sconcertati con un 
messaggio di errore del tipo "il compilatore c++ non pu&ugrave; creare 
eseguibili".
<sect1>
Caricare il driver
<p>
Si controllino le seguenti voci.
<sect2>
Dispositivi audio
<p>
ALSA usa alcuni dispositivi speciali contenuti nella directory /dev. Ci si
assicuri di aver lanciato lo script ./snddevices nella directory dei sorgenti
dei driver ALSA.
<sect2>
Compatibilit&agrave; della scheda audio
<p>
Si &egrave; sicuri al 100% che la scheda audio SIA supportata?
Si controlli di nuovo. A volte una X123 non &egrave; uguale ad una X123b e 
si potrebbe solo perdere del tempo. D'altra parte anche una scheda
supportata pu&ugrave; dare problemi: a me sono servite due ore per
capire l'installazione di una CS4237B che, dopo tutto, si &egrave;
dimostrata solo un esempio di RTFM (Acronimo di "Read The Fine Manual"
(leggi il bel manuale) ndt).

<sect2>
"Device busy" o "unresolved symbols"
<p>
Si potrebbe avere un kernel 2.0.x con supporto per l'audio compilato nel
kernel, o potrebbe essere caricato il driver audio OSS/Lite (del kernel)
(si controlli con il comando <tt>cat /proc/modules</tt>). Si rimuova il 
driver o si ricompili il kernel (si dia un'occhiata al Kernel-HOWTO).

Il modulo audio nella serie 2.0 del kernel si chiama "sound.o" e <bf>non</bf>
dovrebbe essere attivo (il driver ALSA "snd.o" &egrave; comunque OK).

Avendo un kernel della serie 2.2.x senza driver audio compilato nel kernel 
i driver ALSA comunque non funzioneranno.

<sect3>
Kernel 2.0
<p>
So che non &egrave; molto chiaro, quindi verr&agrave; spiegato una volta
ancora. Con un <bf>kernel della serie 2.0.x</bf> (il comando ``uname -a''
dice qualcosa del tipo "Linux penguin 2.0.35 #6 Wed Sep 23
10:19:16 CEST 1998 i686 unknown") i driver dovranno essere <bf>lasciati 
fuori</bf> dal kernel.
<bf>ALSA 0.4.x e successivi non funzionano con i kernel della serie 2.0</bf>

<sect3>
Kernel 2.2
<p>
Con un <bf>kernel della serie 2.2.x</bf> si avr&agrave; <bf>bisogno dei driver 
audio</bf>. Un kernel della serie 2.2 dovr&agrave; essere compilato <bf>con il 
supporto per il suono ma senza il driver della scheda audio</bf>. Quindi 
si selezioni il supporto per l'audio ma ci si assicuri che nessuno 
specifico driver di scheda audio sia compilato.

<sect2>
Riferimenti ad altri driver
<p>
Un'altra ragione per la quale i driver potrebbero lamentarsi del fatto
che il dispositivo sia occupato potrebbe essere che il file /etc/conf.modules
contenga ancora dei riferimenti ai driver della scheda audio. Questi 
riferimenti dovranno essere cancellati lasciando solo tutto ci&ugrave; che si 
riferisce ai driver ALSA (sarebbe bene lasciare come sono i riferimenti a 
driver che non siano di dispositivi audio).

<sect2>
Unresolved symbols rivisitato
<p>
Un'altra sorgente di messaggi "unresolved symbols" potrebbe essere
un nuovo kernel con i vecchi driver. Si &egrave; pregati di ricompilare i
driver ALSA dopo aver ricompilato un nuovo kernel. Questo assicurer&agrave;
la compatibilit&agrave; tra i driver ed il nuovo kernel.

<sect2>
Controllare le impostazioni PnP
<p>
Si + sicuri che la scheda audio sia attiva? Si dia un'ulteriore
occhiata al PnP-HOWTO e si controlli di aver attivato correttamente la
scheda audio.

<sect2>
Sono corretti i parametri?
<p>
Controllare e ricontrollare i parametri della propria scheda audio.
Si noti che 534 non &egrave; come 543 e neppure 0x534 &egrave; uguale a 534.

Inoltre qualche scheda audio potrebbe richiedere un driver diverso
da quello che ci si aspetta. Si faccia una pausa con una birra o
qualcos'altro e si dia ancora un'occhiata al comando "modprobe".
Per esempio il driver per la Crystal 4232 dovrebbe essere caricato da
modprobe snd-card-cs4232, e non "snd-cs4231", e la SoundBlaster PCI
64 dovrebbe essere caricata con "snd-audiopci", non con snd-es1370 (&egrave;
tutto scritto nella documentazione ed anche avendo un HOWTO una volta ho 
perso un intero pomeriggio cercando di persuadere snd-cs4231 a produrre suoni).

<sect1>
Driver caricato... ma nessun suono (o quasi)
<p>

<sect2>
Togliere il "muto"
<p>
I driver ALSA possono sfruttare la funzione di ``muting'' di cui molte
schede audio dispongono. Se i driver audio sono stati caricati e tutto &egrave;
andato bene ma non si sente altro che silenzio, probabilmente ci si &egrave;
dimenticati di togliere il "muto" alla scheda. Ci sar&agrave; bisogno di
"amixer" o "alsamixer" per farlo, sono tutti e due nel
pacchetto ALSA-utilities. Si digiti solamente

<tscreen><verb>amixer set -c 1 Master 70 unmute
amixer set -c 1 PCM 70 unmute
amixer set -c 1 CD 70 unmute</verb></tscreen>

che dovrebbe funzionare per la maggior parte delle applicazioni. Si noti 
che usando programmi amixer pi&ugrave; vecchi sar&agrave; necessario tralasciare la 
parte "set" nella riga di comando.

<sect2>
Gain
<p>
Quasi tutte le schede audio dispongono di un componente del mixer a parte per
l'amplificazione degli input/output aggiuntivi. Questo componente &egrave;
spesso chiamato "gain", "in-gain" per l'input ed "out-gain"
per l'output. L'impostazione di questo componente ad un livello
adeguato permetter&agrave; di ottenere il massimo volume dai propri altoparlanti
(si pensi comunque ai propri genitori/vicini/orecchie). Quindi un
comando come

<tscreen><verb>amixer set out-gain 100 unmute</verb></tscreen>

probabilmente sar&agrave; di aiuto.

<sect2>
Compatibilit&agrave; con OSS/Linux
<p>
Se questa &egrave; la prima volta che si usano i driver ALSA e prima
si usavano i driver audio del kernel, probabilmente si vorr&agrave; avere un
driver audio compatibile con quello precedente (ad esempio per usare i 
dispositivi /dev/pcmX). Si dovr&agrave; caricare il "driver di
compatibilit&agrave; OSS" per ottenere questo risultato. Si dia il comando
<tt>modprobe snd-pcm1-oss && modprobe snd-mixer-oss</tt> (si veda la 
sezione che riguarda il caricamento del driver). Si noti che snd-pcm1-oss 
non &egrave; la stessa cosa di snd-pcm1, ci sar&agrave; <bf>bisogno</bf> di snd-pcm1-oss 
per ottenere il supporto audio vecchio stile e di snd-mixer-oss per il mixer.

<sect2>
Impossibile aprire il mixer
<p>
Provando ad installare diverse versioni di ALSA a volte il mixer diventa 
inaccessibile. Accade se si &egrave; provata la versione
0.3.2 e si &egrave; tentato di ritornare alla 0.3.0-pre4 (IIRC). Si dovranno 
cancellare tutti i file libasound ed i collegamenti ad essi da /usr/lib e 
quindi ricompilare librerie e programmi di utilit&agrave;:

<tscreen><verb>rm /usr/lib/libasound.*</verb></tscreen>

Solo per sicurezza cancellare tutti i driver ALSA quindi ricompilare, 
installare e caricare i driver.

<sect1>
Suggerimenti generici
<p>

<sect2>
Provare con "insmod"
<p>
&Egrave; sempre utile partire con il comando "insmod" invece che con kerneld.
Si avr&agrave; cos&igrave; modo di vedere gli errori sullo schermo.

<sect2>
Leggere il file INSTALL
<p>
Si possono trovare molte informazioni nel file INSTALL presente
nella directory dei driver. Se il driver si rifiuta di
funzionare si controlli se sono disponibili informazioni
aggiuntive.

<sect2>
Messaggi di debug
<p>
Come ultima risorsa &egrave; possibile ricompilare il driver in modo
da fargli inviare le informazioni di debug su /var/log/messages. Andare
nella directory del driver con <tt>cd /usr/src/alsa-driver-....</tt> e
digitare:

<tscreen><verb>./configure --with-debug=detect; make clean; make</verb></tscreen>

Si rimuova il driver (se esso &egrave; attivo si veda pi&ugrave; avanti un comando generico
per la rimozione). Si usi il comando "modprobe" usato prima per caricare 
il driver appena compilato. Si veda /var/log/messages per controllare se 
ci sono messaggi.

<sect2>
Se tutto il resto fallisce...
<p>
Se questi messaggi non sono di aiuto, mandare un messaggio alla mailing 
list degli utenti di ALSA,
<htmlurl url="mailto:alsa-user@alsa-project.org" name="alsa-user@alsa-project.org">.

Includere le seguenti informazioni:
<itemize>

<item>
nome della scheda audio + chip presenti sulla scheda audio</item>

<item>
sezioni pertinenti del file isapnp.conf per chi ha una scheda ISA PnP</item>

<item>
il file conf.modules o la riga usata per attivare i driver ALSA</item>

<item>
tutti i messaggi di /var/log/messages di pertinenza del driver ALSA</item>
</itemize>

<sect1>
Segnalazioni di bug
<p>
Se si trova un bug, gli sviluppatori di ALSA vorranno sapere (al minimo) 
le seguenti cose:

<enum>
<item>versioni del driver e del kernel : 'cat /proc/asound/version'
<item>informazioni sulla scheda audio
<itemize>
<item>nome con il quale la scheda audio viene chiamata dal fabbricante
<item>lista dei chip che compongono la scheda audio
<item>contenuto di 'cat /proc/asound/cards'
</itemize>
<item>tutti i messaggi di /var/log/messages di pertinenza del driver ALSA
<item>descrizione del problema
</enum>

<sect1>
Suggerimento: riprodurre CD
<p>
Se si usa kmod/kerneld ed i driver ALSA per riprodurre i CD,
probabilmente kmod/kerneld non carica i driver come dovrebbe. Questo &egrave;
dovuto al fatto che un riproduttore di CD dice solo al CD di cominciare a
riprodurre senza utilizzare alcuno dei dispositivi che avvisano
kmod/kerneld della necessit&agrave; del suono. Usare modprobe
potrebbe essere l'unica soluzione a questo problema.

<sect1>
Suggerimento: installare il driver seriale MIDI
<p>
Normalmente la porta di IO del dispositivo seriale &egrave; di propriet&agrave; del
driver del dispositivo seriale standard. Quindi prima di dare il comando
"modprobe snd-serial" si dovr&agrave; dire al driver di rilasciare il
dispositivo seriale.

Questa &egrave; la procedura.

<tscreen><verb>setserial /dev/ttyS0 uart none
modprobe snd-serial</verb></tscreen>

(Si sostituisca /dev/ttyS0 con l'opportuno dispositivo /dev/ttySx se il
MIDI usa un diverso dispositivo seriale).

<sect1>
Suggerimento: nuovo kernel? nuovi moduli!
<p>
Dopo aver aggiornato il kernel probabilmente ci sar&agrave; bisogno di
ricompilare i driver ALSA. Se sono ancora nella directory originaria
/usr/src, non ci si dimentichi di dare un <tt>make clean</tt> prima di
./configure, make, make install.

Ah, c'&egrave; una anomalia nella numerazione dei kernel: lo script di
configurazione dice che un kernel "2.2.0ac1" &egrave; un "not a number"
(non un numero, ndt). Penso che sia stato risolto nei nuovi
script di configurazione altrimenti si dovr&agrave; cambiare la versione del
kernel nei sorgenti.

<sect1>
Suggerimento: KDE e i driver ALSA
<p>
Supponiamo di avere KDE funzionante e di non riuscire a far
funzionare i suoni di sistema, quelli usati all'apertura delle finestre, o 
cambiando desktop ecc. L'audio in generale funziona. Se il riproduttore cd
e mp3 ed il mixer funzionano normalmente probabilmente quello che non
funziona &egrave; solo "kwmsound".

Quindi ci si assicuri che "kwmsound" sia nello script di avvio ($KDEDIR/bin/startkde)

<sect1>
Suggerimento: uso dei dispositivi ALSA
<p>
Se si aveva gi&agrave; precedentemente il supporto per il suono nel proprio
sistema Linux &egrave; probabile che tutte le applicazioni puntino a
/dev/pcm0, /dev/audio e /dev/mixer. Questo va bene se si usa il
modulo di compatibilit&agrave; con OSS, snd-pcm1-oss. Potrebbe essere meglio,
comunque, usare i dispositivi ALSA veri, quelli che si trovano in /dev/snd/.

<sect1>
Suggerimento: rimuovere tutti i moduli
<p>
La rimozione di 10 o pi&ugrave; moduli uno ad uno non &egrave; la cosa giusta da fare.
Fortunatamente tutti i moduli iniziano con il prefisso "snd-", quindi
un po' di programmazione da riga di comando potrebbe fare al caso nostro. 
Si potranno facilmente rimuovere i driver ALSA con un comando di
questo tipo:

<tscreen><verb>cat /proc/modules|gawk '/^snd-/{print $1}'|xargs -i rmmod {}</verb></tscreen>

Juergen Kahrs ha scritto: "Ho uno script che rimuove anche soundcore,
soundlow e sound se sono presenti e se non sono utilizzati. Lo script
processa /proc/modules tre volte quindi non dovrebbero restare troppi
moduli dopo la sua esecuzione". Ecco la sua soluzione:

<tscreen><verb>awk '/^snd/||/^sound/&amp;&amp;(&dollar;3==0){system("rmmod " 
$1)}' /proc/modules /proc/modules /proc/modules</verb></tscreen>

Si noti che se qualche modulo dipende da qualche altro modulo non si
pu&ugrave; semplicemente rimuovere il modulo "pi&ugrave; alto". Questo significa
che si potrebbe aver bisogno di una seconda esecuzione del comando di
rimozione (comunque non ho mai incontrato questa situazione, sembra
che i moduli ALSA possano essere rimossi nell'ordine in cui appaiono nel 
file /proc/modules).

</article>
