ALSA, Advanced Linux Sound Architecture, fornisce le funzionalità audio e MIDI (Musical Instrument Digital Interface) al sistema operativo Linux. ALSA è il sottosistema audio predefinito nei kernel 2.6 e sostituisce OSS (Open Sound System), usato nei kernel 2.4.
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.
In passato, Gentoo offriva due modalità per far funzionare ALSA: il driver interno al kernel e il pacchetto esterno alsa-driver. Le due soluzione facevano essenzialmente la stessa cosa; ciò rendeva il supporto al pacchetto esterno estremamente difficoltoso e dispendioso in termini di tempo. I mantenitori di Gentoo hanno deciso di rendere discontinuo il supporto per il pacchetto alsa-driver, concentrando le loro risorse sui driver ALSA disponibili all'interno del kernel Linux.. Questa guida si focalizzerà solamente sulla configurazione di ALSA tramite i driver interni al kernel.
Se si necessita ancora del pacchetto alsa-driver si prega di mandare un'e-mail ai mantenitori di ALSA in Gentoo con la spiegazione del perché i driver interni al kernel non vanno nel proprio sistema. Assicurarsi di includere i log di errore dettagliati.
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:
A questo punto si devono rilevare i dettagli della scheda sonora.
Ora si sa che la scheda sonora è una Sound Blaster Live! della Creative Labs. Andare in ALSA Soundcard Matrix e selezionare Creative Labs dall'elenco, per spostarsi nella pagina contenente l'elenco delle schede audio Creative Labs supportate; dall'elenco si può vedere che la SB Live! usa il modulo emu10k1. Questa è l'informazione che servirà successivamente. Per ulteriori informazioni, cliccare sul collegamento a fianco della voce "Details" per andare nella pagina delle specifiche per emu10k1.
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.
Configurare il kernel per abilitare ALSA.
Verranno viste alcune delle opzioni da abilitare nel kernel 2.6 per ottenere un supporto ALSA appropriato per la propria scheda sonora.
È 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.
Dopo aver impostato le opzioni si può (ri)compilare il kernel: il supporto ALSA per la propria scheda dovrebbe funzionare dopo il riavvio. Non dimenticarsi di aggiornare la configurazione di GRUB per usare il nuovo kernel. Procedere con la sezione ALSA Utility e verificare se tutto funziona.
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.
Versioni recenti di udev (>=udev-103) forniscono una specie di autoconfigurazione delle scheda sonora a livello kernel. Affidarsi, se possibile, alla configurazione automatica della scheda sonora da parte del kernel. Altrimenti usare alsaconf per configurare la propria scheda, come mostrato di seguito.
Per configurare la propria scheda sonora digitare alsaconf in una shell come utente root.
Si entrerà in un'interfaccia a menù guidata che controllerà i dispositivi, cercando di individuare la scheda sonora, la cui selezione verrà proposta tramite un elenco. Successivamente verrà chiesta l'autorizzazione per effettuare i cambiamenti necessari a /etc/modprobe.d/alsa.conf. Infine verrà impostato il volume in modo adeguato, eseguito update-modules ed avviato il servizio /etc/init.d/alsasound. Dopo la chiusura di alsaconf, si può procedere con l'impostazione dello script di avvio ALSA.
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.
Controllare il file /etc/conf.d/alsasound e assicurarsi che la variabile SAVE_ON_STOP sia impostata a yes. Questa opzione salva le impostazioni sonore all'arresto del sistema.
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.
Avviare ALSA. Se è stato eseguito alsaconf si può saltare questo passo.
Controllare il volume poichè in certi casi è muto. Per fare ciò usare alsamixer.
ALSA Mixer dovrebbe mostrarsi così la prima volta che viene eseguito. Attenzione ai canali Master e PCM che hanno un MM. Significa che sono muti. Se si prova a ascoltare qualcosa con alsamixer in questo stato non si sentirà nulla.
Togliere il muto ai canali, e impostare il volume al livello desiderato.
ALSA Mixer dovrebbe essere simile alla figura sottostante. Notare 00 invece di MM ed i livelli di volume impostati a valori ottimali.
È 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.
Ora è possibile ascoltare la propria canzone preferita.
Per abilitare il supporto ALSA alle applicazioni che ne fanno uso, è possibile aggiungere la flag USE alsa a /etc/make.conf. Architetture come x86 e amd64 hanno la flag abilitata in modo predefinito.
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.
Altro errore comune è il messaggio "Unknown symbol in module". Un esempio è mostrato di seguito.
Quando si guarda dmesg si vede:
Il problema è causato dal passaggio da alsa-driver ad ALSA nel kernel perchè quando si toglie alsa-driver i moduli sono protetti dalla cancellazione per cui vengono preservati. Quando si passa ai driver nel kernel, eseguendo modprobe viene rilevato un miscuglio tra i moduli di alsa-driver e del kernel, causando gli errori sopraccitati.
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!
Un'altra causa di messaggi di errore simili a quello appena visto potrebbe essere un file in /etc/modprobe.d che fornisce un parametro device_mode quando esso non è richiesto. Verificare che il problema dipenda da ciò ed individuare il file colpevole.
Solitamente è un file chiamato alsa contenente la riga options snd device_mode=0666. Rimuovere questa riga e riavviare il servizio alsasound per risolvere questo problema.
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.
Dopo aver copiato i file Soundfont, si può ascoltare un file midi. Ino ltre è possibile aggiungere il comando asfxload in /etc/conf.d/local.start, per caricare automaticamente il font audio ad ogni avvio del sistema.
Si possono ascoltare i file midi con un programma come aplaymidi. Eseguire aplaymidi -l per avere la lista delle porte disponibili e selezionarne una per ascoltare il file.
Se la propria scheda sonora non ha un sintetizzatore hardware, è possibile utilizzare timidity++.
Timidity, per funzionare, ha bisogno di un font audio . Fortunatamente, l'ebuild ne installerà automaticamente alcuni. Ci sono altri pacchetti di font disponibili in Portage, tra cui timidity-freepats e timidity-eawpatches. Si possono avere varie configurazioni di font audio installate,e posizionare le proprie in /usr/share/timidity/. Per passare da una configurazione ad un'altra, usare eselect.
Non dimenticarsi di aggiungere timidity al runlevel di default.
Ora si può provare ad ascoltare i file MIDI.
Alcune schede audio possono beneficiare di alcuni strumenti forniti dai pacchetti alsa-tools e alsa-firmware. È possibile installare entrambi tramite un semplice emerge.
È possibile gestire contemporaneamente più schede audio nel proprio sistema, grazie alla compilazione modulare di ALSA nel kernel. Basta specificare quale dev'essere avviata per prima tramite il file /etc/modprobe.d/alsa.conf. In questo file le schede sono identificate tramite i nomi dei corrispondenti driver. 0 è la prima scheda, 1 la seconda, e così via. Viene proposto un esempio per un sistema con due schede sonore.
Oppure, se si hanno due schede che utilizzano lo stesso driver, si può specificarle entrambe sulla stessa riga, usando numeri separati da virgole. Viene mostrato un esempio per un sistema con tre schede sonore, due delle quali sono la stessa scheda Intel High Definition Audio.
È possibile installare dei plugin per ottenere funzionalità aggiuntive. alsa-plugins è una collezione di utili plugin, che include: uscita PulseAudio, un convertitore di frequenza di campionamento, jack (un server audio a bassa latenza), un encoder che permette un uscita a 6 canali tramite una connessione digitale S/PFID (sia ottica che coassiale). Si può scegliere quale di questi plugin installare aggiungendo le rispettive flag USE in /etc/portage/package.use.
Tutti quelli che hanno contribuito alla versione precedente della Guida ALSA Gentoo: Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft e Erwin.
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