
Le principali caratteristiche di ALSA includono un supporto efficiente per tutti i tipi di interfacce audio, da quelle normali a quelle professionali, driver totalmente modularizzati, supporto SMP e al multi-threading, retro-compatibilità con OSS e una libreria per gli utenti, alsa-lib, per facilitare la programmazione delle applicazioni.
Come prima cosa è necessario sapere quali sono i driver necessari per la propria scheda sonora. Nella maggior parte dei casi, le schede sonore (integrate e di altro tipo) sono basate su PCI e lspci vi aiuterà nella ricerca delle informazioni. Effettuare l'emerge di sys-apps/pciutils per ottenere lspci, se non è già installato. Se si ha una scheda sonora USB, lsusb da sys-apps/usbutils potrebbe essere di aiuto. Per schede ISA, provare ad usare sys-apps/isapnptools. Le seguenti pagine potrebbero aiutare gli utenti con schede sonore basate ISA:
Nota: Per facilità di uso/spiegazione, nel resto della guida si assume di avere una scheda sonora PCI |
Codice 2.1: Dettagli della scheda sonora |
# <span class="code-input">lspci -v | grep -i audio</span> 0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06) |
Se si vuole utilizzare il supporto MIDI, aggiungere midi alle flag USE in /etc/make.conf prima di emergere qualsiasi pacchetto ALSA. In una parte successiva della guida verrà mostrato come configurare il supporto MIDI.
Nota: Dal rilascio 2005.0, Gentoo Linux usa il 2.6 come kernel predefinito. Controllare se il proprio kernel è della serie 2.6. Questo metodo non funzionerà con un kernel 2.4. |
Importante: Gli utenti che hanno usato genkernel dovrebbero eseguire genkernel --menuconfig all e poi seguire le istruzioni in Opzioni del kernel per ALSA. |
Codice 2.2: Entrare nei sorgenti |
# <span class="code-input">cd /usr/src/linux</span><br /># <span class="code-input">make menuconfig</span><br /> |
Nota: L'esempio sopra presuppone che il collegamento simbolico /usr/src/linux punti ai sorgenti del kernel che si desidera utlizzare. Assicurarsi che sia così prima di continuare. |
È da notare che, per praticità, tutti gli esempi mostrano ALSA compilato come modulo. E' consigliato seguire questa impostazione poichè in seguito permetterà l'utilizzo di alsaconf, strumento assai utile per configurare la scheda. Non saltare la sezione Configurazione di questo documento. Se si vogliono mantenere le opzioni compilate staticamente nel kernel, modificare la configurazione di conseguenza.
Codice 2.3: Opzioni del kernel per ALSA |
Device Drivers ---><br /> Sound ---><br /><br /><span class="code-comment">(Questa voce dev'essere abilitata)</span><br /><M> Sound card support<br /><br /><span class="code-comment">(Assicurarsi che OSS sia disabilitato)</span><br />Open Sound System ---><br /> < > Open Sound System (DEPRECATED)<br /><br /><span class="code-comment">(Tornare indietro di un passo ed entrare in ALSA)</span><br />Advanced Linux Sound Architecture ---><br /> <M> Advanced Linux Sound Architecture<br /> <span class="code-comment">(Selezionare questo voce per MIDI sequencing e routing)</span><br /> <M> Sequencer support<br /> <span class="code-comment">(Supporto /dev/mixer* e /dev/dsp* vecchio stile. Raccomandato.)</span><br /> <M> OSS Mixer API<br /> <M> OSS PCM (digital audio) API<br /><br /><span class="code-comment">(A questo punto verrà proposto un elenco di dispositivi per i quali<br />abilitare il supporto. Generalmente si avrà solamente un tipo di dispositivo, in<br />caso contrario abilitare tutti i supporti)</span><br /><br /><span class="code-comment">(Le opzioni contenute nel menù seguente possono servire principalmente<br />per scopo di test e sviluppo, non sono invece necessarie agli utenti normali a<br />meno di sapere quello che si sta facendo.)</span><br />Generic devices ---><br /><br /><span class="code-comment">(Per schede sonore ISA)</span><br />ISA devices ---><br /><span class="code-comment">(Se si ha Gravis, selezionare questa opzione)</span><br /> <M> Gravis UltraSound Extreme<br /><br /><span class="code-comment">(Entrare in PCI devices. Molte schede sonore sono dispositivi PCI)</span><br />PCI devices ---><br /> <span class="code-comment">(Selezionare il driver emu10k1 per la scheda)</span><br /> <M> Emu10k1 (SB Live!, Audigy, E-mu APS)<br /> <span class="code-comment">(O per una scheda Intel))</span><br /> <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller<br /> <span class="code-comment">(O per una scheda VIA)</span><br /> <M> VIA 82C686A/B, 8233/8235 AC97 Controller<br /><br /><span class="code-comment">(Tornare indietro di un livello ed entrare nel menù seguente se si ha una scheda sonora USB)</span><br />USB Devices ---><br /> |
alsa-utils è una parte integrante di ALSA e contiene diversi programmi molto utili, inclusi gli script di avvio ALSA; eer questi motivi ne viene caldamente raccomandata l'installazione.
Codice 3.1: Installare alsa-utils |
# <span class="code-input">emerge alsa-utils</span><br /> |
Nota: Se ALSA non è stato compilato come modulo, procedere alla sezione Script di avvio ALSA. Le restanti persone avranno bisogno di configurare ALSA, compito facilitato dallo strumento alsaconf, fornito da alsa-utils. |
Nota: Chiudere i programmi che potrebbero accedere alla scheda sonora mentre si esegue alsaconf. |
Codice 3.2: Aprire alsaconf |
# <span class="code-input">alsaconf</span><br /> |
A questo punto è quasi tutto configurato. A prescindere dalla modalità di installazione di ALSA, è necessario avere uno strumento per caricare i moduli o inizializzare ALSA e ripristinare le impostazioni del volume all'avvio del sistema. Lo script di avvio ALSA gestisce tutto questo ed è chiamato alsasound. Aggiungerlo al runlevel di boot.
Codice 3.3: Aggiungere ALSA al runlevel di boot |
# <span class="code-input">rc-update add alsasound boot</span><br /> * alsasound added to runlevel boot<br /> * rc-update complete.<br /> |
C'è ancora una cosa importante da impostare. Una regola nei sistemi operativi *nix è quella di non eseguire qualcosa come root se non strettamente necessario, ed è naturalmente applicabile anche in questo caso. Per la maggior parte del tempo si utilizzerà il sistema come utente non privilegiato: nel caso si volesse ascoltare musica o accedere alla scheda sonora, sarà necessario appartenere al gruppo "audio". Per evitare problemi di permessi nell'accesso alle periferiche audio, aggiungere gli utenti al gruppo audio, utilizzando gpasswd da utente root.
Codice 3.4: Aggiungere utenti al gruppo audio |
<span class="code-comment">(Sostituire <nomeutente> con il nome del proprio utente)</span><br /># <span class="code-input">gpasswd -a <nomeutente> audio </span><br />Adding user <nomeutente> to group audio<br /> |
Codice 3.5: Fare partire il servizio |
# <span class="code-input">/etc/init.d/alsasound start</span><br /> |
Codice 3.6: Eseguire alsamixer |
<span class="code-comment">(Aprire una console. Vengono mostrate solamente le impostazioni richieste)</span><br /># <span class="code-input">alsamixer</span><br /> |
Figura 3.1: Finestra principale di Alsa Mixer, Muto |
Togliere il muto ai canali, e impostare il volume al livello desiderato.
Avvertenza: Entrambi i canali Master e PCM devono essere attivati e impostati ad un livello di volume udibile per ascoltare qualche suono dalle proprio casse. |
- Per spostarsi tra i canali usare i tasti sinistra e destra. (<-&->)
- Per cambiare il livello mute, spostarsi sul canale specifico, per esempio Master, e premere il tasto m.
- Per aumentare e diminuire il livello di volume, usare i tasti sù e giù.
Nota: Attenzione a impostare i valori Bass e Treble. 50 è un buon numero per tutte e due. Alti valori di Bass potrebbero causare delle vibrazioni nelle casse, pericolose nel caso in cui quest'ultime non siano progettate per gestirle adeguatamente. |
Figura 3.2: Alsa Mixer pronto |
È ora di sentire qualche canzone. Un modo veloce è quello di usare strumenti a riga di comando come media-sound/madplay. È possibile usare anche mpg123.Se si è fan di ogg, usare ogg123 fornito da media-sound/vorbis-tools. È comunque possibile utilizzare il lettore audio più consono alle proprie necessità, basta emergere quello desiderato.
Codice 3.7: Ottenere il software |
<span class="code-comment">(Installare l'applicazione desiderata)</span><br /># <span class="code-input">emerge madplay mpg123</span><br /><span class="code-comment">(Per ascoltare i file .ogg)</span><br /># <span class="code-input">emerge vorbis-tools</span><br /> |
Codice 3.8: Ascoltare musica |
# <span class="code-input">madplay -v /mnt/shyam/Music/Paul\ Oakenfold\ -\ Dread\ Rock.mp3</span><br />MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.<br /> Title: Dread Rock<br /> Artist: Paul Oakenfold<br /> Album: Matrix Reloaded<br /> Year: 2003<br /> Genre: Soundtrack<br /> Soundtrack<br /> 00:04:19 Layer III, 160 kbps, 44100 Hz, joint stereo (MS), no CRC<br /><br /># <span class="code-input">ogg123 Paul\ Oakenfold\ -\ Dread\ Rock.ogg</span><br />Audio Device: Advanced Linux Sound Architecture (ALSA) output<br /><br />Playing: Paul Oakenfold - Dread Rock.ogg<br />Ogg Vorbis stream: 2 channel, 44100 Hz<br />Genre: Soundtrack<br />Transcoded: mp3;160<br />Title: Dread Rock<br />Artist: Paul Oakenfold<br />Date: 2003<br />Album: Matrix Reloaded<br />Time: 00:11.31 [04:28.75] of 04:40.06 (200.6 kbps) Output Buffer 96.9%<br /> |
Se per qualche ragione il sonoro non dovesse funzionare, la prima cosa da controllare sono le impostazioni di alsamixer. L'80% dei problemi si risolvono perchè i canali erano muti o il volume era basso. Controllare anche gli applet del proprio Window Manager e verificare che i volumi siano impostati a livelli accettabili.
/proc e /proc/asound sono ulteriori fonti di informazioni da controllare.
Codice 3.9: /proc/asound |
<span class="code-comment">(Primo, se /proc/asound/cards mostra la scheda in uso, ALSA l'ha<br />scelta bene.)</span><br /># <span class="code-input">cat /proc/asound/cards</span><br />0 [Live ]: EMU10K1 - Sound Blaster Live!<br /> Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11<br /><br /><span class="code-comment">(Qui viene visualizzata la versione attualmente in esecuzione)</span><br /># <span class="code-input">cat /proc/asound/version</span><br />Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).<br /><br /><span class="code-comment">(Dettagli sull'emulazione OSS di ALSA)</span><br /># <span class="code-input">cat /proc/asound/oss/sndstat</span><br />Sound Driver:3.8.1a-980706 (ALSA v1.0.8 emulation code)<br />Kernel: Linux airwolf.zion 2.6.11ac1 #2 Wed May 4 00:35:08 IST 2005 i686<br />Config options: 0<br /><br />Installed drivers:<br />Type 10: ALSA emulation<br /><br />Card config:<br />Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11<br /><br />Audio devices:<br />0: EMU10K1 (DUPLEX)<br /><br />Synth devices: NOT ENABLED IN CONFIG<br /><br />Midi devices:<br />0: EMU10K1 MPU-401 (UART)<br /><br />Timers:<br />7: system timer<br /><br />Mixers:<br />0: SigmaTel STAC9721/23<br /> |
Codice 3.10: Errore Unknown symbol in module |
# <span class="code-input">/etc/init.d/alsasound start</span><br /> * Loading ALSA modules ...<br /> * Loading: snd-card-0 ... [ ok ]<br /> * Loading: snd-pcm-oss ...<br />WARNING: Error inserting snd_mixer_oss<br />(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown<br />symbol in module, or unknown parameter (see dmesg) FATAL: Error inserting<br />snd_pcm_oss<br />(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-pcm-oss.ko): Unknown<br />symbol in module, or unknown parameter (see dmesg)<br /> [ !! ]<br /> * Loading: snd-mixer-oss ...<br />FATAL: Error inserting snd_mixer_oss<br />(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown<br />symbol in module, or unknown parameter (see dmesg)<br /> [ !! ]<br /> * Loading: snd-seq ... [ ok ]<br /> * Loading: snd-emu10k1-synth ... [ ok ]<br /> * Loading: snd-seq-midi ... [ ok ]<br /> * Restoring Mixer Levels ... [ ok ]<br /> |
Codice 3.11: dmesg output |
<span class="code-comment">(Sono mostrate solo parti rilevanti)</span><br /># <span class="code-input">dmesg | less</span><br />ACPI: PCI Interrupt 0000:02:06.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 209<br />snd_mixer_oss: Unknown symbol snd_unregister_oss_device<br />snd_mixer_oss: Unknown symbol snd_register_oss_device<br />snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback<br />snd_mixer_oss: Unknown symbol snd_oss_info_register<br />snd_pcm_oss: Unknown symbol snd_unregister_oss_device<br />snd_pcm_oss: Unknown symbol snd_register_oss_device<br />snd_pcm_oss: Unknown symbol snd_mixer_oss_ioctl_card<br />snd_pcm_oss: Unknown symbol snd_oss_info_register<br />snd_mixer_oss: Unknown symbol snd_unregister_oss_device<br />snd_mixer_oss: Unknown symbol snd_register_oss_device<br />snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback<br />snd_mixer_oss: Unknown symbol snd_oss_info_register<br /> |
La soluzione è abbastanza semplice. Si deve rimuovere manualmente il problema a seguito della rimozione di alsa-driver. Assicurarsi di rimuovere la versione del kernel corretta e non quella corrente!
Codice 3.12: Rimuovere i moduli di alsa-driver |
# <span class="code-input">rm -rf /lib/modules/$(uname -r)/alsa-driver</span><br /> |
Codice 3.13: Conferma e ricerca di device_mode |
<span class="code-comment">(Controllare dmesg per conferma)</span><br /># <span class="code-input">dmesg | grep device_mode</span><br />snd: Unknown parameter `device_mode'<br /><span class="code-comment">(A questo punto, recuperare la fonte del problema)</span><br /># <span class="code-input">grep device_mode /etc/modprobe.d/*</span><br /> |
Per prima cosa assicurarsi di abilitare la flag USE midi in/etc/make.conf, se non è già stato fatto in precedenza. Bisognerà ri-emergere ogni pacchetto ALSA contenente la flag midi, come alsa-lib, alsa-utils e alsa-driver.
Se la propria scheda sonora ha un sintetizzatore MIDI, per ascoltare i file .mid bisogna installare awesfx, ovvero un insieme di programmi per controllare il driver AWE32. Per prima cosa è necessario installarlo. Se non si ha un sintetizzatore hardware si può usarne uno virtuale. Vedere la sezione Sintetizzatore virtuale per ulteriori informazioni.
Codice 4.1: Installare awesfx |
# <span class="code-input">emerge awesfx</span><br /> |
Nota: Copiare i file SoundFont (SF2) dal CD con i driver della scheda sonora o da una installazione Windows in /usr/share/sounds/sf2/. Per esempio un file di font audio per la scheda Creative SBLive! potrebbe essere 8MBGMSFX.SF2. |
Nota: Il percorso /mnt mostrato qui di seguito potrebbe non essere uguale a quello sulla propria macchina. E' solo un esempio. Cambiare il percorso in base alle proprie opzioni. |
Codice 4.2: Caricare Soundfonts |
<span class="code-comment">(Copiare Soundfont)</span><br /># <span class="code-input">cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/</span><br /><span class="code-comment">(O scaricarlo dal CD SoundBlaster)</span><br /># <span class="code-input">cp /mnt/cdrom/AUDIO/ENGLISH/SFBANK/8MBGMSFX.SF2 /usr/share/sounds/sf2/</span><br /><span class="code-comment">(Caricare lo specifico Soundfont)</span><br /># <span class="code-input">asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2</span><br /> |
Codice 4.3: Ascoltare un MIDI |
<span class="code-comment">(Controllare le porte aperte)</span><br /># <span class="code-input">aplaymidi -l</span><br /> Port Client name Port name<br /> 64:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART)<br /> 65:0 Emu10k1 WaveTable Emu10k1 Port 0<br /> 65:1 Emu10k1 WaveTable Emu10k1 Port 1<br /> 65:2 Emu10k1 WaveTable Emu10k1 Port 2<br /> 65:3 Emu10k1 WaveTable Emu10k1 Port 3<br /><span class="code-comment">(Scegliere una porta e ascoltare un file mid)</span><br /># <span class="code-input"> aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid</span><br /> |
Codice 4.4: Installare timidity++ |
# <span class="code-input">emerge timidity++</span><br /> |
Codice 4.5: Cambiare la configurazione |
# <span class="code-input"> eselect timidity list</span><br /># <span class="code-input"> eselect timidity eawpatches</span><br /> |
Codice 4.6: Aggiungere timidity al runlevel di default |
# <span class="code-input">rc-update add timidity default</span><br /># <span class="code-input">/etc/init.d/timidity start</span><br /> |
Alcune schede audio possono beneficiare di alcuni strumenti forniti dai pacchetti alsa-tools e alsa-firmware. È possibile installare entrambi tramite un semplice emerge.
Codice 4.7: Installare ALSA Tools |
# <span class="code-input">emerge alsa-tools</span><br /> |
Codice 4.8: Due schede sonore in /etc/modprobe.d/alsa.conf |
options snd-emu10k1 index=0<br />options snd-via82xx index=1<br /> |
Codice 4.9: Schede sonore multiple in /etc/modprobe.d/alsa.conf |
options snd-ymfpci index=0<br />options snd-hda-intel index=1,2<br /> |
Codice 4.10: Installare alsa-plugins |
# <span class="code-input">emerge -avt alsa-plugins</span><br /> |

Ricerca personalizzata
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

Trovato questo articolo interessante? Condividilo sulla tua rete di contatti in Twitter, sulla tua bacheca su Facebook, in Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!
0 commenti:
Posta un commento