gnome-volume-control fissato con il “muto”
Dopo l’aggiornamento a ubuntu 9.10 – Karmic Koala – ho riscontrato che spesso, dopo il riavvio del computer la scheda audio viene messa arbitrariamente in “mute”. L’errore credo sia nella nuova applicazione che è stata introdotta per la gestione della scheda audio e dei vari volumi in gnome: gnome-volume-control.
A prescindere dal fatto che è scomodo dover, tutte le volte che si accende il computer, ripristinare il “muto” della propria scheda; esistono anche dei casi in cui non è possibile aprire l’applicazione con il mouse, dal desktop di gnome.
E’ infatti il caso in cui un cretino (a caso), dopo aver passato ore a settare il proprio media center basato su linux e xbmc, sdraiato sul divano, fa partire dal suo telecomando la visione di un film e non sente un bel niente.
Non ci sono versi, il cretino le prova tutte: abbassa ed alza il volume, mette e toglie il muto, riavvia xbmc, riavvia il computer… niente, la scheda audio è e rimane sempre in muto.
Allora sono passato alle maniere forti: prendo il portatile, accedo in ssh al media center ed apro “alsamixer”, tolgo il muto dalle periferiche e riprovo… niente, è ancora in muto. Perchè?
Mi tocca attaccare il mouse e la tastiera al media center, esco dalla sessione con xbmc e accedo a gnome. Levo la spunta da “muto” nel pannello e… magia, l’audio torna perfettamente funzionante. Se però contemporaneamente smanetto su alsamixer, quando metto in muto con gnome-volume-control non riesco più a ripristinarlo. Perchè?
Dopo tante domande, finalmente sono giunto ad una risposta.
Infatti ho scoperto che quando gnome-volume-control imposta il “muto”, agisce su 3 diversi canali: Master, Headphone e Speaker.
Per questo motivo, anche levando il muto solo da Master o Speaker, il simbolo di muto non va via da gnome e l’audio non torna a funzionare.
Il motivo per cui però, il programma tende sempre a resettare lo stato della scheda audio mi è tutt’ora ignoto.
Comunque, per risolvere basta dare questi tre comandi da una console:
amixer -- set Master unmute amixer -- set Headphone unmute amixer -- set Speaker unmute
Volendo, per essere sicuri che tutto vada per il meglio, si può anche forzare amixer di settare i volumi al 100%:
amixer -- set Master playback 100% unmute amixer -- set Headphone playback 100% unmute amixer -- set Speaker playback 100% unmute
Per essere sicuro di non scordarmi nulla e di non dover più agire manualmente, la mia soluzione preferita è, come al solito, crearmi uno script… anzi due: uno per mettere in muto ed uno per levare il muto. E già che ci sono (a morte l’avarizia!) lo faccio anche colorato!
Ah, per risolvere il mio problemino in xbmc mi basta a questo punto far eseguire lo script ad ogni avvio del programma.
#!bin/sh amixer -- set Master mute amixer -- set Headphone mute amixer -- set Speaker mute echo "Master \033[31;5;148m[MUTO]" tput sgr0 echo "Headphone \033[31;5;148m[MUTO]" tput sgr0 echo "Speaker \033[31;5;148m[MUTO]" tput sgr0

#!bin/sh amixer -- set Master speaker 100% unmute amixer -- set Headphone speaker 100% unmute amixer -- set Speaker speaker 100% unmute echo "Master \033[38;5;148m[NON-MUTO]" tput sgr0 echo "Headphone \033[38;5;148m[NON-MUTO]" tput sgr0 echo "Speaker \033[38;5;148m[NON-MUTO]" tput sgr0

Edit 26/11/2009: ho corretto un errore negli script.
playback 100%
gennaio 27th, 2010 at 16:22
Non in tutti i casi il problema si risolve… All’avvio del sistema ho sempre l’audio muto ed a volume bassissimo.
Io ho dovuto mettere all’avvio quest’accrocchio per intimare a pulseaudio di smettere di fare i capricci:
echo “set-sink-mute {nomedellascheda} 0″ |pacmd
echo “set-sink-volume {nomedellascheda} 0×10000″ |pacmd
{nomedellascheda} è il nome della scheda ottenuto con il comando: pacmd list-sinks. Nel mio caso è {alsa_output.pci-0000_00_11.5.analog-stereo}. teoricamente è sufficiente dargli l’index che si ottiene alla stessa maniera, ma non so per quale motivo mi dice picche.
Spero torni utile anche a qualcun altro!
gennaio 27th, 2010 at 17:27
ho trovato una guida in inglese per xfce e l’ho tradotta e completata (spero in maniera chiara) che risolve il problema in maniera più sensata:
Regola manualmente le impostazioni del volume ad un livello che consideri ottimale come volume standard.
Abilitai i permessi lettura/scrittura per gruppo/altri del file /var/lib/alsa/asound.state
(Se non sai come fare: premi sulla tastiera i tasti alt+F2 (se non riesci o non funziona apri un terminale) e digita il comando gksu nautilus. Verrà richiesta la propria password perchè l’operazione comporta la modifica di un file di sistema. Cerca la cartella /var/lib/alsa/, quindi fai clic col pulsante destro del mouse sul file asound.state, seleziona Proprietà, e vai a permessi. Una volta modificati i permessi chiudi subito la finestra per evitare di fare confusione con i permessi da superuser!).
Premi sulla tastiera i tasti alt+F2 (se non riuscite o non funziona aprite un terminale) e digitai il comando “alsactl store” (senza le virgolette).
In questo modo si memorizzano le impostazioni del mixer in /var/lib/alsa/asound.state (il file al quale abbiamo cambiato i permessi per poter fare questa modifica).
A seconda del window manager che usiamo possiamo avviare all’accensione il comando per impostare il volume al livello standard.
Ubuntu: nel menu Preferenze trovare la voce “applicazioni d’avvio”. Nella scheda “Programmi d’avvio” fare clic sul pulsante Aggiungi. Inserire il comando “alsactl restore” (senza le virgolette) ed un nome e commento a vostra scelta.
Xubuntu: nel menu trovare Impostazioni, aprire “Sessioni e avvio”. Nella scheda “Applicazioni Autostart” fare clic sul pulsante Aggiungi. inserire il comando “alsactl restore” (senza le virgolette) ed un nome e commento a vostra scelta.
Pekwm: aprire il file ~/.pekwm/start, aggiungere “alsactl restore &” alla fine del file
Fluxbox: aprire il file ~/.fluxbox/startup, aggiungere “alsactl restore &” prima della riga: # And last but not least we start fluxbox.
In questo modo all’avvio del sistema il comando di “ripristino” alsactl sarà eseguito automaticamente.