ALSA (Italiano)
From ArchWiki
i18n |
---|
English |
Español |
Deutsch |
Italiano |
Nederlands |
Русский |
Slovensky |
Česky |
中文(简体) |
עברית |
Рolski |
Português do Brasil |
ไทย |
Introduzione
Advanced Linux Sound Architecture (ALSA) è un componente del kernel Linux progettato per fornire i driver di schede audio.
Guardare OSS per vedere le possibili alternative.
Questo documento spiega come utilizzare ALSA con il kernel 2.6. Guardare anche come permettere ai programmi di riprodurre il suono immediatamente.
Installazione
Driver del kernel
Alsa è stato incluso nei kernel 2.6 e in tutti i pacchetti kernel26* di archlinux. Se avete un kernel personalizzato, non dimenticate di abilitare il corretto driver di alsa.
Tutti i moduli necessari dovrebbero essere rilevati e caricati automaticamente da udev. Non deve essere fatta nessuna configurazione speciale a meno che usiate schede ISA. Non usate mai alsaconf se avete una scheda audio PCI o ISAPNP, perchè alsaconf la aggiunge nel file modprobe.conf e ciò potrebbe causare problemi con l'autorilevamento di udev.
Utility
- Richiesto per i programmi e la gestione nativa di alsa
# pacman -Sy alsa-lib alsa-utils
- Raccomandato se volete usare applicazioni con il supporto audio OSS in combinazione con dmix
# pacman -S alsa-oss
Tutti i programmi di alsa avranno molto probabilmente alsa-lib come dipendenza.
Configurazione
Assicurarsi che il modulo snd_pcsp sia caricato per ultimo
Di default, il kernel viene fornito con il modulo snd_pcsp. Nella maggioranza dei casi questo modulo viene caricato prima del modulo della vostra scheda, e ciò può creare dei problemi. snd_pcsp è in pratica il modulo che gestisce lo speaker della scheda madre.
Per far si che snd_pcsp sia caricato per ultimo, aggiungete il codice seguente al file
/etc/modprobe.conf
options snd-pcsp index=2
Oppure se preferite, potete anche non caricare del tutto questo modulo aggiungendo questo al vostro
/etc/rc.conf
MODULES=(... !snd_pcsp)
Assicurarsi che i moduli audio siano caricati
Potete verificare che udev abbia rilevato automaticamente il vostro audio, compreso i moduli di compatibilità di OSS, con il comando
$ lsmod|grep '^snd' snd_usb_audio 69696 0 snd_usb_lib 13504 1 snd_usb_audio snd_rawmidi 20064 1 snd_usb_lib snd_hwdep 7044 1 snd_usb_audio snd_seq_oss 29412 0 snd_seq_midi_event 6080 1 snd_seq_oss snd_seq 46220 4 snd_seq_oss,snd_seq_midi_event snd_seq_device 6796 3 snd_rawmidi,snd_seq_oss,snd_seq snd_pcm_oss 45216 0 snd_mixer_oss 15232 1 snd_pcm_oss snd_intel8x0 27932 0 snd_ac97_codec 87648 1 snd_intel8x0 snd_ac97_bus 1792 1 snd_ac97_codec snd_pcm 76296 4 snd_usb_audio,snd_pcm_oss,snd_intel8x0,snd_ac97_codec snd_timer 19780 2 snd_seq,snd_pcm snd 43776 12 snd_usb_audio,snd_rawmidi,snd_hwdep,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer snd_page_alloc 7944 2 snd_intel8x0,snd_pcm
Se l'output è simile, i vostri driver audio sono stati autorilevati con successo (nota che in questo caso, snd_intel8x0 e snd_usb_audio sono i driver per le periferiche hardware). Potreste anche voler controllare la directory /dev/snd per i giusti file del dispositivo:
$ ls -l /dev/snd/ total 0 crw-rw---- 1 root audio 116, 0 Apr 8 14:17 controlC0 crw-rw---- 1 root audio 116, 32 Apr 8 14:17 controlC1 crw-rw---- 1 root audio 116, 24 Apr 8 14:17 pcmC0D0c crw-rw---- 1 root audio 116, 16 Apr 8 14:17 pcmC0D0p crw-rw---- 1 root audio 116, 25 Apr 8 14:17 pcmC0D1c crw-rw---- 1 root audio 116, 56 Apr 8 14:17 pcmC1D0c crw-rw---- 1 root audio 116, 48 Apr 8 14:17 pcmC1D0p crw-rw---- 1 root audio 116, 1 Apr 8 14:17 seq crw-rw---- 1 root audio 116, 33 Apr 8 14:17 timer
Se avete almeno i dispositivi controlC0 e pcmC0D0p o simili, allora i vostri moduli audio sono stati rilevati e caricati correttamente.
Se non è questo il caso, i vostri moduli audio non sono stati rilevati correttamente. Se volete qualche aiuto su IRC o sui forum, per favore postate l'output dei comandi di sopra. Per risolvere questo, potete provare caricando i moduli manualmente:
- Individuare il modulo della vostra scheda audio: http://www.alsa-project.org/alsa-doc/ Il modulo sarà preceduto dal suffisso 'snd-' (per esempio: 'snd-via82xx').
- Caricare i moduli:
# modprobe snd-NAME-OF-MODULE # modprobe snd-pcm-oss
- Controllare i file del dispositivo in /dev/snd (vedi sopra) e/o provare se alsamixer o amixer hanno una ragionevole uscita.
- Aggiungere snd-NOME-DEL-MODULO e snd-pcm-oss alla lista dei MODULI in /etc/rc.conf per assicurarsi che essi siano caricati la prossima volta (assicuratevi che snd-NOME-DEL-MODULO stia prima di snd-pcm-oss).
Attivare i canali e testare la scheda audio
In questa sezione, supponiamo che siate loggati come root. Se volete compiere questi passi come un utente non privilegiato, dovete prima passare alla prossima sezione Setup dei permessi.
- Attiva scheda audio
L'attuale versione di ALSA imposta tutti i canali disattivati di default, anche se l'installazione è eseguita con successo e tutti i dispositivi sono impostati correttamente voi non sentirete suoni. Bisognerà attivare i canali manualmente. E' consigliato l'uso di 'alsamixer
' per farlo. Da alsamixer, l'etichetta "MM" prima di un canale indica che quel canale è disabilitato, e "00" indica che è attivo. Premi il tasto 'm' per passare da MM/00. Usa i tasti freccia sinistra e freccia destra per muoverti nei canali e i tasti freccia sopra e freccia sotto per impostare il volume.
NOTA: Quando usate amixer, assicuratevi di attivare i canali, e alzate i volumi ad uno specifico livello in percentuale, il che significa che dovrete usare il simbolo "%". Questo vuol dire che amixer è in grado di comprendere solo valori in percentuale, e non numerici. Infatti, specificando un valore come 90, amixer lo assumerà come 100%, rischiando così di danneggiare i vostri altoparlanti.
# amixer set Master 90% unmute # amixer set PCM 85% unmute
- Prova a far partire un file WAV
# aplay /usr/share/sounds/alsa/Front_Center.wav
NOTE: Alcune schede (come, la Soundblaster Audigy LS) deve avere l'output digitale disabilitato per riprodurre qualsiasi suono.
If you cannot hear anything, double check your mixer settings, being sure to unmute PCM, MASTER (and some machines such as the IBM Thinkpad have an additional 'SPEAKER' channel) and try the alsaconf utility as root:
# alsaconf
Setup dei permessi
Per poter usare la scheda audio come utente normale, seguite questi passi:
- Aggiungere il vostro utente al gruppo audio:
# gpasswd -a USERNAME audio
- Terminare la sessione e rifare il login per essere sicuri che il gruppo audio sia caricato.
Ripristina le impostazioni di Alsa Mixer all'avvio
- Avviare 'alsactl' una volta per creare '/etc/asound.state'
alsactl store
- Editare '/etc/rc.conf' e aggiungere 'alsa' alla lista dei demoni da far partire all'avvio. Questo salverà le regolazioni del mixer a ogni arresto del sistema e le ripristinerà all'avvio.
- If the mixer settings are not loaded on boot-up, add the following line to '
/etc/rc.local
'
alsactl restore
Ottenere un output SPDIF
(da gralves dai forum di Gentoo)
- Nel Controllo Volume di GNOME, sotto il tab delle opzioni, cambiate IEC958 in PCM. Questa opzione può essere abilitata nelle preferenze.
- Se non avete installato il Controllo Volume di GNOME,
- Editate /etc/asound.state. Questo file è dove alsasound salva le regolazioni del tuo mixer.
- Trovate una riga che dice: 'IEC958 Playback Switch'. Vicino ad essa troverete una riga che dice value:false. Cambiatela in value:true.
- Adesso trovate questa riga: 'IEC958 Playback AC97-SPSA'. Cambiate il suo valore in 0.
- Riavviate alsa.
Un modo alternativo per abilitare un output SPDIF automaticamente al login (testato su una SoundBlaster Audigy):
- aggiungere le seguenti righe in /etc/rc.local:
# Use COAX-digital output amixer set 'IEC958 Optical' 100 unmute amixer set 'Audigy Analog/Digital Output Jack' on
Potete vedere il nome dell'uscita digitale della vostra scheda con:
amixer scontrols
Impostazioni KDE
- Avvia KDE:
# startx
- Regolate i volumi come li preferite per questo utente (ogni utente ha le proprie regolazioni):
# alsamixer
Esci e rientra come utente xyz per far funzionare il suono (io ho dovuto terminare X, uscire e rientrare come user xyz, quindi far partire X e aprire firefox e l'audio ha funzionato su youtube)
- KDE 3.3 Andare al Menu K > Multimedia > KMix
- Impostazioni > Configura KMix...
- Leva la spunta all'opzione "Ripristina i volumi al prossimo riavvio"
- Premere OK, dovrebbe essere tutto a posto. Ora i volumi saranno identici sia dalla linea di comando sia all'interno di KDE.
Equalizzatore di sistema (per tutti gli utenti)
- sarà necessario, oltre alle utility precedentemente menzionate, anche il pacchetto alsa-plugins
pacman -S alsa-plugins
- installate i pacchetti ladspa e swh-plugins se già non li avete
pacman -S ladspa swh-plugins
- se non lo avete ancora fatto, sarà necessario avere uno dei file fra ~/.asoundrc oppure /etc/asound.conf, dunque create uno dei due
nano ~/.asoundrc
- inserite le righe seguenti nel vostro file di configurazione di ALSA (~/.asoundrc oppure /etc/asound.conf)
pcm.eq { type ladspa # The output from the EQ can either go direct to a hardware device # (if you have a hardware mixer, e.g. SBLive/Audigy) or it can go # to the software mixer shown here. #slave.pcm "plughw:0,0" slave.pcm "plug:dmix"
# Sometimes you may need to specify the path to the plugins, # especially if you've just installed them. Once you've logged # out/restarted this shouldn't be necessary, but if you get errors # about being unable to find plugins, try uncommenting this. #path "/usr/lib/ladspa"
plugins [ { label mbeq id 1197 input { #this setting is here by example, edit to your own taste #bands: 50hz, 100hz, 156hz, 220hz, 311hz, 440hz, 622hz, 880hz, 1250hz, 1750hz, 25000hz, #50000hz, 10000hz, 20000hz controls [ -5 -5 -5 -5 -5 -10 -20 -15 -10 -10 -10 -10 -10 -3 -2 ] } } ] } # Redirect the default device to go via the EQ - you may want to do # this last, once you're sure everything is working. Otherwise all # your audio programs will break/crash if something has gone wrong.
pcm.!default { type plug slave.pcm "eq" }
# Redirect the OSS emulation through the EQ too (when programs are running through "aoss")
pcm.dsp0 { type plug slave.pcm "eq" }
- ricaricate le impostazioni di alsa (da utente root)
/etc/rc.d/alsa restart
- ora tutto dovrebbe essere sistemato
Soluzione dei problemi
L'audio continua a non funzionare?
Ricorda, ALSA viene installato con tutti i canali disabilitati di default (guarda la sezione precendete, attivare la scheda audio). Comunque, se sei sicuro che tutto è attivo, che i tuoi driver sono installati correttamente, e che il volume è giusto, ma non senti ancora nessun suono, prova ad aggiungere le seguenti linee di codice in /etc/modprobe.conf
che dovrebbero risolvere il problema:
options snd-NAME-OF-MODULE ac97_quirk=0
La sopracitata correzione funziona con via82xx
options snd-NAME-OF-MODULE ac97_quirk=1
La sopracitata correzione funziona con snd_intel8x0
Nessun suono con Onboard Intel Sound Card
Ci potrebbe essere un conflitto tra due moduli caricati, chiamati snd_intel8x0
e snd_intel8x0m
. In questo caso, modifica rc.conf
e nell'array MODULES metti in blacklist l'ultimo in modo tale da avere !snd_intel8x0m
.
La qualità dell'audio è bassa?
Se hai una bassa qualità d'audio, prova ad impostare il volume di PCM (in alsamixer) ad un livello di gain 0.
Rumore di scarica quando inizi e finisci di riprodurre un suono?
Alcuni moduli posso spegnere la scheda audio quando questa non è utilizzata. Questo può creare un rumore quando spegne la scheda audio. Se questo non ti piace prova "modinfo snd-MY-MODULE", e cerca un'opzione dei moduli che modifica o disabilita questa caratteristica.
per esempio: per disabilitare il risparmio energetico utilizzando snd-hda-intel aggiungi "options snd-hda-intel power_save=0" in /etc/modprobe.conf o prova con "modprobe snd-hda-intel power_save=0"
Alsamixer non si avvia
Se avvii alsamixer, non funziona e ricevi il seguente errore:
alsamixer: function snd_ctl_open failed for default: No such device
Reinstalla il kernel. Esegui 'pacman -S kernel26' o qualsiasi il patchset che preferisci usare.
Link esterni
Altre informazioni possono essere trovate ai seguenti link: