Translation(s): English - Français - Italiano - Русский


Hardware > Audio


ALSA

ALSA, Advanced Linux Sound Architecture (Architettura sonora avanzata per Linux), è sia un progetto sia un insieme di software. Il progetto è iniziato perché l'architettura OSS è in alcuni aspetti debole e la versione libera di OSS manca di alcuni driver presenti solamente in quella commerciale. Per svariati anni il software ALSA è stato sviluppato indipendentemente da Linux. I driver sono stati aggiunti alla base del codice di Linux durante lo sviluppo della serie 2.5 e sono diventati il sistema standard per i driver audio in Linux 2.6.

ALSA non è semplicemente un insieme di driver audio; è anche una libreria con un'API estensibile che dà alle applicazioni accesso alle più moderne funzionalità delle schede audio (es., canali audio multipli, Dolby AC3, ecc.). ALSA fornisce un efficace supporto per molte applicazioni, è completamente modularizzato e gestisce in maniera sicura SMP e i thread.

Le applicazioni scritte per OSS possono essere fatte funzionare con ALSA per mezzo dell'emulazione in spazio utente (usando il caricatore di programmi aoss) oppure l'emulazione nel kernel (i driver snd-*-oss). In ogni caso, non si possono usare contemporaneamente entrambi i driver ALSA e OSS.

N.B. I nomi dei driver ALSA iniziano sempre con snd- .

Pacchetti

Caricare i moduli

I pacchetti alsa-base sono progettati "semplicemente" per funzionare. Il pacchetto alsa-base non carica moduli; piuttosto è udev a rilevare l'hardware audio e a caricare i moduli ALSA appropriati e poi alsa-base si occupa di impostare i valori dei livelli del mixer utilizzabili.

Configurare alsa eseguendo il comando 'alsactl init' come utente root. Ignorare i messaggi di errore del tipo "Unknown hardware" (Hardware sconosciuto) (questo problema dovrebbe essere stato risolto in alsa-utils .20), poi riavviare e provare a testare l'audio. Per ulteriori dettagli guardare questa discussione.

Si può anche provare a rilevare e configurare la propria scheda audio in modo manuale.

Si può ora guardare la Tabella delle schede audio di ALSA per scoprire quale nome di driver debba essere usato per il chipset trovato.

ALSA e OSS

Se il proprio sistema è già configurato per caricare i driver OSS per la propria scheda audio, allora si guardino gli attuali file di configurazione del caricatore di moduli. Ci saranno voci per i moduli OSS che possono dare un indizio sui chipset della propria scheda audio. Non ci si dimentichi di disabilitare queste voci prima di riconfigurare le cose in modo da caricare i moduli ALSA.

Se non si rimuovono tutti i moduli OSS dal kernel allora i moduli ALSA non potranno essere inizializzati (o funzionare correttamente) perché il driver OSS interferirà con l'hardware audio che i driver ALSA devono controllare. Se si vede un messaggio riguardante la scheda sonora che non è stata rilevata ("sound card not detected") e si è certi che si ha il driver ALSA corretto, la causa dell'errore potrebbe essere la presenza di un modulo OSS.

Test

Testare il driver, usando aplay, mplay o xmms per esempio.

Per testare i midi, si può usare aplaymidi.

Condividere una scheda tra più processi

È spesso desiderabile essere in grando di condividere una scheda audio tra diversi processi in esecuzione contemporaneamente. Questo richiede la capacità di mixare l'output audio di questi processi in un flusso audio unico.

Se la propria scheda audio economica non supporta il missaggio hardware, provare il plugin dmix. Questo viene impostato automaticamente a partire dalla versione 1.0.10-2 di libasound2; per le versioni precedenti, guardare /usr/share/doc/libasound2/examples/asound.conf_dmix per vedere come abilitare DMIX in /etc/asound.conf (per tutti gli utenti) o ~.asoundrc (per il solo proprio utente).

Metodo alternativo

Se la propria scheda audio ha un chipset Realtek e non si riesce a far funzionare l'audio, si provi questo metodo:

1. Scaricare il driver Realtek HD Audio Codec. Seguire il collegamento nella pagina principale http://www.realtek.com.tw sotto"Quick Links", accettare le condizioni e poi scaricare il driver corretto per Linux.

2. Aprire il file scaricato, scompattarlo in una posizione (per esempio, la propria directory home), aprire un terminale come root ed eseguire lo script di installazione.

./install

Nota Bene:

1. Assicurarsi di avere già il necessario ambiente di compilazione (gcc, make, build-essential, linux-headers per il proprio kernel, ecc.) prima di eseguire il suddetto script di installazione.

2. Se ci sono errori, provare a rimuovere (completamente con l'opzione "purge") alcuni pacchetti alsa come alsa-base e alsa-oss (se sono installati), riavviare ed eseguire di nuovo lo script di installazione.

Risoluzione dei problemi

Per vedere quali indici sono stati assegnati alle schede, eseguire:

  cat /proc/asound/cards

Ala prima scheda trovata da ALSA viene normalmente assegnato l'indice 0 ed è perciò di solito la scheda audio 'predefinita'. Se si è sfortunati la prima scheda audio trovata non è adatta per riprodurre i suoni di sistema. (Tuttavia un errore del tipo "Unknown PCM default" (PCM predefinito sconosciuto) in fase di riproduzione audio avviene quando l'utente non è un membro del gruppo 'audio'; eseguire "sudo adduser <nome_utente> audio" e poi "newgrp" da utente normale).

Ci sono due modi di risolvere questo problema.

1. Forzare le schede a caricarsi in un ordine diverso. Ho scelto questa strada e ho aggiunto quanto segue al mio file /etc/modprobe.d/sound:

  options snd-trident index=0
  options snd-usb-audio index=1

Questo forza la mia scheda Trident come predefinita (scheda 0) ed il mio microfono USB come scheda 1.

2. Cambiare la scheda predefinita modificando il file /etc/asound.conf o ~/.asoundrc. Ulteriori informazioni su questo argomento sono nelle FAQ di Alsa.

Il reboot bypassa il BIOS e il menu di GRUB? Potrebbe essere causato da kexec-tools che permette appunto di bypassare il BIOS durante il reboot e impedire la corretta inizializzazione dei vari device. Modificare il file /etc/default/kexec come utente root e aggiornare la variabile LOAD_KEXEC a:

LOAD_KEXEC=false

Questa operazione permetterà al BIOS di inizializzare correttamente l'audio e gli altri device ad ogni riavvio.

Lista di controllo

* se l'audio non funziona dopo un riavvio del sistema, disabilitare kexec-tools

Versione

Guardare /proc/asound/version.

Strumenti

Ulteriori informazioni

Per ulteriori informazioni, leggere i file README.Debian nei pacchetti alsa-base e alsa-source o guardare http://www.alsa-project.org e http://alsa.opensrc.org.

Notare che con Debian Sarge la mia scheda audio è attualemte funzionante, ma non ho NULLA in /proc/asound sebbene lsmod mostri snd_intel8x0 e un mucchio di altre cose relative all'audio.

Vedere anche: AlsaMidi.

Novità:

Più vecchi


CategorySound