HowTo:PostInstall:Audio

De Luispa

Cambios en el Audio (OBSOLETO)

ESTE ARTÍTCULO ESTÁ OBSOLETO (lo dejo a modo de referencia)

Nota: El artículo de Audio definitivo y más actual es: Audio: ALSA y PulseAudio (configuración final)


He tenido muchos problemas de inestabildiad con el Audio y en Junio de 2009 decidí realizar varias acciones, entre ellas leer más artículos, como este donde describe cómo hacer un setup correcto de pulseaudio, actualización de versiones, etc. Estos y otros posteriores son los cambios realizados:

1.- Migrar a la versión más reciente posible de PulseAudio en amd64, que se trataba de la 0.9.14, aunque una 
    actualización rutinaria me ha llevado (Julio09) a la 0.9.15

    Ahora tengo las siguientes versiones:
 
    Sun Jul  5 08:04:22 2009 >>> media-sound/alsa-headers-1.0.19
    Sun Jul  5 08:09:19 2009 >>> media-libs/alsa-lib-1.0.19
    Sun Jul  5 08:09:39 2009 >>> media-sound/alsa-utils-1.0.19-r2
    Sun Jul  5 08:16:27 2009 >>> media-plugins/alsa-plugins-1.0.19

    Mon Jul 13 17:59:11 2009 >>> media-sound/pulseaudio-0.9.15-r50

2.- He compilado alsa-oss para intentar que el emulador de OSS de Alsa también pueda mezclarse.

3.- He recompilado la librería Xine-Lib con la opción de "pulseaudio" para que quien la use sean capaz de conectar
    vía pulseaudio. Un ejemplo es Amarok !!!

4.- He cambiado la config de Amarok para que use pulseaudio

5.- He eliminado el arranque de /etc/init.d/pulseaudio (ahora se desaconseja) y pasado a arrancar el 
    daemon al entrar en gnome (ver más abajo).

6.- He instaldo gst-plugins-pulse para que el sistema GStreamer de Audio de Gnome use pulseaudio
    es decir, que desde preferencias->sonido pueda seleccionar PulseAudio.

Nota "libtool"

Nota: Para migrar a la 0.9.15 de pulseaudio hay que instalar libtool 2, y esto requiere obligatoriamente hacer un "revdep-rebuild" posterior !!!! MUY IMPORTANTE !!!!


Monitorizar los cambios

Recomiendo tener arrancado "PulseAudio Volume Meter (playback)". Con este pequeño programa podemos comprobar si el audio está pasando por pulseaudio.

1. Aplicaciones->Audio/Video->PulseAudio Volume Meter (Playback)

2. Ejecuto cualquier programa que "consuma" audio, por ejemplo: 

  $ aplay -D pulse /opt/skype/sounds/SkypeLogin.wav

3. Las barras de Volujme Meter deberían moverse !

Nota: Recuerda que tienes que modificar el fichero $HOME/.asoundrc para indicar a Alsa que siempre use pulseaudio. A partir de ese momento el siguiente comando también usará pulseaudio aunque no se indique la opción -D

aplay /opt/skype/sounds/SkypeLogin.wav



Actualización a PulseAudio 0.9.14

Nota: Para poder actualizar a PulseAudio 0.9.14 tienes que actualizar tu sistema a Baselayout 2 .

Nota: Unos días después se actualizó ALSA y pude pasar a la versión 0.9.15 de pulseaudio.


  • Dejo aquí doucmentados los pasos a la versión 0.9.14. El paso posterior a la .15 fue rutinario...
  • Preparo el fichero package.keywords y package.use
=media-sound/pulseaudio-0.9.14                         ~amd64
# Audio
media-plugins/alsa-plugins    pulseaudio
media-sound/pulseaudio        hal


  • Realizo la instalación de pulseaudio
Código:
# emerge -v pulseaudio
bolica ~ # emerge -v pulseaudio

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] dev-util/unifdef-1.20  65 kB
[ebuild     U ] media-sound/pulseaudio-0.9.14 [0.9.9] USE="X alsa avahi glib%* gnome hal tcpd -asyncns -bluetooth -caps -dbus -jack -libsamplerate -lirc -oss (-policykit)" 1,273 kB

Total: 2 packages (1 upgrade, 1 new), Size of downloads: 1,337 kB
:


  • Ejecuto etc-update y acepto todos los ficheros reemplazando los originales, más rápido, dado que sólo hay que modificar uno de ellos.
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24    <== Añadida
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24    <== Añadida
load-module module-zeroconf-publish


System sounds de Gnome

Preferencias Sonido Gnome
  • Instalo los plugins de GStreamer para Gnome para pulse audio
# emerge -v gst-plugins-pulse
  • Configuro las Preferencias de Audio de Gnome.
Sistema->Preferencias->Sonido


Abandono del daemon /etc/init.d/pulseaudio

Arranque en Gnome
  • Por lo tanto yo ya no arranco pulseaudio durante boot, de hecho lo que quitado:
# rc-update del pulseaudio default
* pulseaudio removed from runlevel default
  • Ahora sólo lo arranco al entrar en Gnome
Sistema->Preferencias->Sesiones->"Sistema de Sonido PulseAudio"


Compilo alsa-oss

Verifico que tengo el emulador de OSS en la configuración y en el Kernel.

Fichero: /etc/conf.d/alsasound
ENABLE_OSS_EMUL="yes"
  • Instalo alsa-oss
# emerge -v alsa-oss


Cambio de Xine-Lib para usar PulseAudio

  • Recompilar la librería xine-lib para que NO use "esd" y pase a emplear "pulseaudio".
# Para que Xine use pulseaudio
media-libs/xine-lib           X a52 alsa dts dvd gnome gtk imagemagick ipv6 mad modplug musepack nls opengl samba theora truetype v4l vorbis xcb xv xvmc -esd aac aalib -arts -directfb -dxr3 -fbcon flac -jack -libcaca -mmap -mng -oss pulseaudio -sdl -speex -vcd -wavpack -xinerama
  • Recompilo la librería
Código:
# emerge -v xine-lib
bolica ~ # emerge -v xine-lib


Cambio Amarok para que use PulseAudio (via xine-lib)

  • Configurado Amarok para que use pulseaudio
Amarok:
Preferencias->Configurar Amarok-> Reproducción ->Sistema de Sonido <configurar> -> He sudio "Pulseaudio" a la primera posición.

Conclusiones

  • Por fin se mezcla el audio!!. Si por ejemplo se está reproduciendo una canción con Amarok también se oirán los "Sonidos del Sistema", o se mezclará el audio de la salida de "aplay /opt/skype/sounds/SkypeLogin.wav"
  • También se mezcla con VirtualBox y sus Guest, es decir, un Windows puede estar reproduciendo su música a la vez que funciona una reproducción en linux o los system sounds.
  • Lo que no va es VMWare, debido a que sigue usando OSS (/dev/dsp) y los diferentes wrappers que he probado no funcionan (oss vía alsa, oss vía pulseaudio). El resultado es que cuando vmware arranca o intenta conectar con la tarjeta de audio, si en ese momento hay sonido en Linux (por ejemplo el sonido de pulsación de un botón de los system sounds), entonces "no conectará con el dispositivo del audio". La única solución que he encontrado hasta ahora es:
1.- Quitar la opción Sistema->Prefencias->Sonido->Sonidos-> ( ) Reproducir efectos de sonido al pulsar botones
2.- No estar reproduciendo música en Linux cuando VMWare accede al audio.
3.- Arrancar VMWare o bien "Icono Sound Card->Connect"



Enlaces y Créditos

[1] http://www.pulseaudio.org/wiki/PerfectSetup PUlseAudio y cómo hacer una configuración perfecta
[2] http://www.gentoo.org/doc/es/openrc-migration.xml Guía de migración a Baselayout 2 + OpenRC.
[3] http://bocabyte.wordpress.com/2007/10/23/sonido-full-duplex-en-linux-configurando-aoss-y-asoundrc/ Otra guía
[4] http://ubuntuforums.org/showthread.php?t=843012 Documento interesante


Volver a la página de Role como Estación de trabajo

--Luis 19:25 10 jun 2009 (CEST)