Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Alsa: l'audio per Linux

Link copiato negli appunti

Linux, per chi vuole usarlo come sistema operativo desktop, dispone di praticamente tutti gli strumenti necessari per il multimedia. Fino a poco tempo fa uno dei limiti maggiori in questo senso era il supporto all'hardware, che non sempre era garantito in modo completo per tutte le periferiche.

Ad esempio Jaroslav Kysela, non contento dei driver inclusi nel kernel per la sua Gravis Ultrasound, decise di scriverne uno tutto suo. La cosa ebbe molto successo tanto che Jaroslav continuò il suo lavoro avviando il progetto ALSA (Advanced Linux Sound Architecture) con l'obiettivo di dare a Linux un supporto migliore (modulare e sotto licenza GPL o LGPL) per tutte le schede audio, dando allo stesso tempo la compatibilità delle applicazioni che supportano i driver "classici" inclusi nel kernel.

Il progetto alla scrittura di questo articolo è giunto ormai prossimo alla versione 0.9.0 (è disponibile la 0.9.0rc3). I driver ALSA sono stati inclusi nel kernel 2.5 per cui faranno parte del kernel stabile a partire dalla versione 2.6. SuSE ha anche ufficialmente adottato i driver ALSA, sostituendoli a quelli originali. Se non riuscite a far funzionare la vostra scheda audio, se non è supportata dal kernel Linux che utilizzate, se volete giovarvi di un supporto più avanzato per la vostra scheda, potete utilizzare i driver ALSA. Vedremo quindi in questo articolo le istruzioni passo passo per poterli installare.

Prima di continuare avremo bisogno dei sorgenti del kernel. E' consigliabile utilizzare quelli del kernel in uso ovviamente, meglio uno degli ultimi. Sarà necessario avere un kernel con il supporto a soundcore, meglio se come modulo. Nel 99% dei casi la vostra distribuzione dovrebbe già averlo. In alcuni casi però sono stati riscontrati degli errori se il kernel usato ha incluso il supporto ai driver OSS (quelli presenti nel kernel fino ad ora).

Prima di tutto scarichiamo i sorgenti necessari. In particolare ci servono i files alsa-driver (ftp://ftp.alsa-project.org/pub/driver), alsa-lib (ftp://ftp.alsa-project.org/pub/lib) e alsa-utils (ftp://ftp.alsa-project.org/pub/utils). Molte distribuzioni forniscono sui CD di installazione i files RPM contenenti i binari precompilati; in questo articolo parleremo solo dei pacchetti con il codice sorgente per maggiore uniformità anche alla luce del fatto che l'installazione dipende dal kernel utilizzato (in caso di aggiornamento del kernel i driver ALSA andrebbero comunque reinstallati).

La procedura di installazione, apparentemente complessa, non dovrebbe invece creare problemi se si seguono attentamente i passaggi nel giusto ordine:

1) Decomprimere il pacchetto alsa-driver. Ad esempio:

lnxbox1:~# tar xfvj alsa-driver-0.9.0rc3.tar.bz2

2) Entrare nella directory appena creata e lanciare lo script ./configure. Alcuni parametri di questo script potrebbero esserci utili. In particolare è possibile abilitare il supporto alle periferiche ISA con --with-isapnp=yes oppure al sequencer con --with-sequencer=yes oppure aumentare il livello di informazioni specificate con --with-debug=full. Ad esempio:

lnxbox1:~# cd alsa-driver-0.9.0rc3 lnxbox1:~/alsa-driver-0.9.0rc3# ./configure --with-isapnp=yes --with-debug=full

3) Lanciare il comando make per avviare la compilazione.

lnxbox1:~/alsa-driver-0.9.0rc3# make

4) Lanciare make install.

lnxbox1:~/alsa-driver-0.9.0rc3# make install

5) A questo punto si può passare all'installazione delle alsa-lib. Anche in questo caso decomprimiamo il pacchetto relativo:

lnxbox1:~# tar xfvj alsa-lib-0.9.0rc3.tar.bz2

6) Entriamo nella directory alsa-lib-0.9.0rc3 e lanciamo ./configure

lnxbox1:~# cd alsa-lib-0.9.0rc3 lnxbox1:~/alsa-lib-0.9.0rc3# ./configure

7) Diamo make e quindi make install

lnxbox1:~/alsa-lib-0.9.0rc3# make lnxbox1:~/alsa-lib-0.9.0rc3# make install

8) Ora tocca a alsa-utils. Decomprimiamolo:

lnxbox1:~# tar xfvj alsa-utils-0.9.0rc3.tar.bz2

9) Entriamo nella directory appena creata e lanciamo ./configure:

lnxbox1:~# cd alsa-utils-0.9.0rc3 lnxbox1:~/alsa-utils-0.9.0rc3# ./configure

10) Diamo make e make install

lnxbox1:~/alsa-utils-0.9.0rc3# make lnxbox1:~/alsa-utils-0.9.0rc3# make install

A questo punto dovremmo aver installato tutto quello di cui c'è bisogno.

11) Entriamo nella directory con i sorgenti di alsa-driver e lanciamo il programma ./snddevices che si occuperà della creazione dei device in /dev. Se il sistema utilizza devfs (potrete controllare la presenza del daemon devfsd con ps waux | grep devfsd) non bisogna eseguire questo script.

lnxbox1:~/alsa-driver-0.9.0rc3# ./snddevices

A questo punto basterà caricare in memoria i moduli relativi alla nostra scheda audio. Se ad esempio possediamo una scheda Sound Blaster Live! possiamo utilizzare il modulo snd-emu10k1:

lnxbox1:~/alsa-driver-0.9.0rc3# modprobe snd-emu10k1

Per conoscere il nome del modulo relativo alla vostra scheda potete consultare il file CARDS-STATUS all'interno del pacchetto alsa-driver. In alternativa è possibile utilizzare l'utility alsaconf per la messa a punto dei file di configurazione. Personalmente preferisco caricare manualmente i moduli (o farli lanciare da uno script di boot).

Due altri moduli che è conveniente caricare sono: snd-pcm-oss e snd-mixer-oss. Il primo provvederà all'emulazione di OSS garantendoci l'utilizzo delle applicazioni studiate o compilate per quel tipo di driver, il secondo ci permetterà di utilizzare anche i mixer per OSS. A questo proposito è bene far presente che appena installato ALSA imposta la scheda per essere muta. A questo si può porre rimedio con amixer (il mixer ALSA, abbastanza complesso e ostico da usare) oppure con un altro mixer, se avete caricato snd-mixer-oss. Se la vostra periferica è ISA, dovrete prima ricorrere alla configurazione con isapnp e pnpdump, cosa che probabilmente ha già fatto la vostra distribuzione in fase di installazione. Un'ultima avvertenza: sono stati riscontrati dei problemi con l'ultima versione delle alsa-driver (0.9.0rc3) e l'ultima versione del kernel (2.4.19). In caso di mancata compilazione, vi consiglio di utilizzare una versione precedente di ALSA.

Detto questo non mi rimane altro che augurarvi: Buon Ascolto!

Ti consigliamo anche