Mumble es un sistema de mensajerÃa y VoIP multiplataforma, funciona bien en la mayorÃa de sistemas pero bajo FreeBSD da algunos problemas. Utilizando OSS directamente es un desastre, hay que reiniciar en cada cambio de configuración y en cuanto se aplica la configuración y se vuelve a la ventana principal deja de capturar el audio del micrófono, pero estos problemas se solventan al utilizar Jackd(servidor de audio), el único inconveniente es que tendremos que compilar Mumble desde los ports.
Primero debemos saber de que tarjetas de audio disponemos en el sistema:
hdac1@pci0:0:31:3: class=0x040300 card=0x86911043 chip=0xa1708086 rev=0x31 hdr=0x00
vendor = 'Intel Corporation'
device = '100 Series/C230 Series Chipset Family HD Audio Controller'
class = multimedia
subclass = HDA
hdac0@pci0:1:0:1: class=0x040300 card=0x61633842 chip=0x10f110de rev=0xa1 hdr=0x00
vendor = 'NVIDIA Corporation'
device = 'GP106 High Definition Audio Controller'
class = multimedia
subclass = HDA
La primera es la tarjeta de audio de la placa y la segunda es la de la tarjeta gráfica para poder sacar audio por HDMI.
Ahora listamos los dispositivos de audio creados por el sistema operativo:
Installed devices:
pcm0: <NVIDIA (0x0084) (HDMI/DP 8ch)> (play)
pcm1: <NVIDIA (0x0084) (HDMI/DP 8ch)> (play)
pcm2: <NVIDIA (0x0084) (HDMI/DP 8ch)> (play)
pcm3: <NVIDIA (0x0084) (HDMI/DP 8ch)> (play)
pcm4: <Realtek ALC1150 (Analog 5.1+HP/2.0)> (play/rec) default
pcm5: <Realtek ALC1150 (Rear Digital)> (play)
pcm6: <Realtek ALC1150 (Front Analog Mic)> (rec)
pcm7: <USB audio> (rec)
No devices installed from userspace.
Para identificar los dispositivos de salida iremos cambiando la tarjeta por defecto y reproduciremos un fichero de audio.
En este caso cambiamos la salida por defecto al dispositivo pcm3:
Reproducimos el fichero de audio con mpv por ejemplo:
Para la grabación utilizaremos sox e iremos probando los distintos AUDIODEV hasta que logremos grabar del micro:
Reproducimos el fichero grabado con mpv:
Probando la reproducción de audio y la grabación he llegado a la siguiente conclusión:
- pcm4: <Realtek ALC1150 (Analog 5.1+HP/2.0)> (play/rec) default -> Salida jack
- pcm6: <Realtek ALC1150 (Front Analog Mic)> (rec) -> Entrada micrófono
Debemos compilar Mumble con la opción de Jackd, para ello utilizaremos el sistema de ports pero hay que tener en cuenta que una vez se utilicen ports ya debemos gestionar toda la paqueterÃa a partir de estos, en este artÃculo anterior se explica como gestionar los paquetes desde ports.
Compilamos e instalamos Mumbe con la opción jack habilitada:
make config
Compilamos e instalamos:
Instalamos Jackd:
cd /usr/ports/audio/qjackctl
make config
make
make install
make clean
Configuramos Jackd, indicando el usuario que lo utilizará y los dispositivos de entrada/salida:
jackd_enable=\"yes\"
jackd_user="kr0m"
jackd_rtprio="YES"
jackd_args="-R -doss -r48000 -p1024 -n3 -w16 --capture /dev/dsp6 --playback /dev/dsp4"
NOTA: Esta configuración impone la limitación de que solo el usuario kr0m podrá utilizar el servidor de sonido, un posible workaround serÃa reconfigurarlo mediante un script que utilizase sudo y sysrc en el arranque de las X de cada usuario.
Arrancamos el servicio:
Arrancamos mumble y nos dirigimos a las opciones de entrada de audio donde indicaremos:
System: JACK
Transit: Signal to Noise
En el apartado de salida de audio:
System: JACK
Device: Stereo
Con esta configuración ya podremos disfrutar de Mumble sin ningún tipo de problema.