Thanks to Mathieu Bouffard, he helped me to to workaround the issue with my mic in Acer Aspire One 1410.
Issue:
Somehow the ALSA driver is trying to pass to PulseAudio an stereo output that PulseAudio doesn’t understand.
Solution:
Use jackd as a “proxy” between ALSA and PulseAudio, jackd will capture the input in mono from the ALSA driver, and pass it to PulseAudio.
Download his module for PulseAudio:
# yum install pulseaudio-module-jack
Configure PulseAudio to no auto respawn when killed.
echo "autospawn = no" > ~/.pulse/client.conf
Create a file in our home directory ~/jackd.pa
#!/usr/bin/pulseaudio -nF
###
# these modules will connect to JACK
load-module module-jack-sink
load-module module-jack-source
###
#add-autoload-sink output module-jack-sink channels=2
#add-autoload-source input module-jack-source channels=2
#load-module module-esound-protocol-unix
load-module module-native-protocol-unix
load-module module-volume-restore
#load-module module-stream-restore
load-module module-rescue-streams
.nofail
###
load-module module-x11-publish
load-module module-gconf
###
# Load LIRC for Pulse
# load-module module-lirc sink=jack_out config=/home/mbouffard/.lircrc
Create the config file for ALSA: ~/.asoundrc
# .asoundrc
pcm.!default {
type pulse
hint.description "Default Audio Device"
}
ctl.!default {
type pulse
}
and last but not least, create a mini-script to launch PulseAudio using this configuration. I called it ~/pulsejack:
killall jackd ; pulseaudio --kill
/usr/bin/jackd -S -v -r -dalsa -dhw:0 -r48000 -p1024 -n2 &
pulseaudio -n -F jackd.pa
while [ $? -eq 137 ]; do
sleep 5; #sometimes after get started pulseaudio got killed somehow
pulseaudio -n -F jackd.pa
done
We run our script:
chmod +x ~/pulsejack
~/pulsejack
A patch was submitted to the alsa devel team to fix this problem at ALSA level.
Español
Gracias a Mathieu Bouffard, él me ayudo a a configurar mi micrófono en mi Acer Aspire One 1410.
Problema:
De algún modo el driver de ALSA esta tratando de pasarle a PulseAudio una salida stereo que PulseAudio no entiende.
Solución:
Usando jackd como un “proxy” entre ALSA y PulseAudio. Jackd va a capturar la entrada mono desde el driver de ALSA y se lo va a pasar a PulseAudio
Descargamos el siguiente modulo de PulseAudio:
# yum install pulseaudio-module-jack
Configuramos PulseAUdio para no auto-reiniciarse cuando lo matamos.
echo "autospawn = no" > ~/.pulse/client.conf
Creamos el siguiente archivo en nuestro home: ~/jackd.pa
#!/usr/bin/pulseaudio -nF
###
# these modules will connect to JACK
load-module module-jack-sink
load-module module-jack-source
###
#add-autoload-sink output module-jack-sink channels=2
#add-autoload-source input module-jack-source channels=2
#load-module module-esound-protocol-unix
load-module module-native-protocol-unix
load-module module-volume-restore
#load-module module-stream-restore
load-module module-rescue-streams
.nofail
###
load-module module-x11-publish
load-module module-gconf
###
# Load LIRC for Pulse
# load-module module-lirc sink=jack_out config=/home/mbouffard/.lircrc
Creamos el archivo de configuración para ALSA: ~/.asoundrc
# .asoundrc
pcm.!default {
type pulse
hint.description "Default Audio Device"
}
ctl.!default {
type pulse
}
Y por ultimo, creamos un mini-script para lanzar PulseAudio usando esta configuración. Yo lo llame ~/pulsejack:
killall jackd ; pulseaudio --kill
/usr/bin/jackd -S -v -r -dalsa -dhw:0 -r48000 -p1024 -n2 &
pulseaudio -n -F jackd.pa
while [ $? -eq 137 ]; do
sleep 5; # a veces despues de iniciar alguien o algo mata a pulseaudio
pulseaudio -n -F jackd.pa
done
Ejecutamos nuestro script:
chmod +x ~/pulsejack
~/pulsejack
Un patch fue enviado al team de ALSA para solucionar este problema desde el driver.