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

muto

#!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

nonmuto

Edit 26/11/2009: ho corretto un errore negli script.

playback 100%