Auricular Bluetooth en GNU/Linux
Documento creado por capri99 (Carlos Rodríguez). Cualquier aportación será bienvenida :-)
Información sacada de:
Ante todo disculpad mi escaso conocimiento técnico en la materia :-)
Contenido
Introducción
Hay varias formas de conectar un auricular (headset) bluetooth en GNU/Linux. Voy a explicar 2 maneras:
- una es utilizando el driver "legacy" (o antiguo) que me funciona correctamente,
- y la otra es sólo con las utilidades "bluez-utils" que me funciona, pero parcialmente.
Para poder continuar, primero debemos tener soporte bluetooth en nuestro equipo. Lo podemos ver haciendo un "dmesg" del sistema para reconocer si hay soporte o no. Para verificarlo:
hciconfig -a
Y nos dará una salida parecida a esta (en mi caso tengo una llave USB como adaptador Bluetooth):
hci0: Type: USB BD Address: 00:09:DD:XX:XX:XX ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING PSCAN ISCAN RX bytes:167027 acl:62 sco:3047 events:418 errors:0 TX bytes:161307 acl:40 sco:3039 commands:240 errors:0 Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH HOLD SNIFF PARK Link mode: SLAVE ACCEPT Name: 'nombre-equipo' Class: 0x180104 Service Classes: Capturing, Object Transfer Device Class: Computer, Desktop workstation HCI Ver: 2.0 (0x3) HCI Rev: 0xc5c LMP Ver: 2.0 (0x3) LMP Subver: 0xc5c Manufacturer: Cambridge Silicon Radio (10)
Ahora debemos conocer cuál es la dirección MAC de nuestro auricular (headset). Para ello lo ponemos en modo "emparejable", es decir, lo desconectaremos de cualquier otro dispositivo (teléfono móvil, pda, ...).
Haremos entonces un escaneo para reconocer la MAC del auricular:
hcitool scan
y saldrá algo como:
Scanning ... 00:08:C6:XX:XX:XX Nokia HS-21W
Si no nos ha salido nada, entonces es que no tenemos el auricular en modo "emparejable". Debes desemparejarlo del móvil o cualquier otro dispositivo.
Empleando el legacy driver "snd-bt-sco"
Instalación de paquetes
Nos hacen falta (al menos) los siguientes paquetes (el resto serán instalados según las dependencias):
bluez-btsco bluez-utils
Además para los que tengan KDE es necesario instalar:
kdebluetooth
Para los de GNOME creo que es:
gnome-bluetooth
Cargando el módulo del kernel
Doy por supuesto que en nuestro kernel disponemos de este módulo "snd-bt-sco". En mi caso, dependiendo de la versión del kernel, me deja cargar el módulo correctamente o no. Como superusuario:
modprobe snd-bt-sco
Nota: You need a kernel with the emu10k1 driver selected (this is one of the drivers that forces the inclusion of the implementation of "snd_hwdep_new").
Emparejando el auricular (headset)
Se puede hacer con alguna herramienta, ya sea de KDE o GNOME.
En KDE
kbluetooth --> configuración --> dispositivos de entrada --> Añadir dispositivo nuevo
Cuando lo queramos emparejar nos pedirá el código PIN (en nuestro caso "0000").
También tengo entendido que para pasarle el PIN se puede hacer desde modo consola con passkey-agent.
Activando el manipulador
Tan sólo deberemos ejecutarlo junto con la dirección MAC del auricular.
btsco MAC
MAC la hemos obtenido antes mediante hcitool scan, en mi caso era 00:08:C6:XX:XX:XX
Nuevo dispositivo de audio
Una vez activado el manipulador, sin haber obtenido ningún error, ya disponemos de un dispositivo de audio nuevo que configuraremos en las aplicaciones de audio.
Sin legacy driver (funciona pero no aparece nuevo dispositivo alsa)
Este método es el más novedoso pero no he conseguido detectar el dispositivo alsa en vlc, ekiga, etc. Debe ser alguna tontería pero no conozco.
Extraído de http://wiki.bluez.org/wiki/HOWTO/AudioDevices
Nota: you will not need bluetooth-alsa, plugz, btsco or the like for audio to work. They are obsolete.
Instalación de paquetes
Nos hace falta (al menos) el siguiente paquete (el resto serán instalados según las dependencias):
bluez-utils
Además para los que tengan KDE es necesario instalar:
kdebluetooth
Para los de GNOME creo que es:
gnome-bluetooth
Nota: No hace falta cargar ningún módulo "snd-bt-btsco"
Emparejando el auricular (headset) igual que antes
Se puede hacer con alguna herramienta, ya sea de KDE o GNOME.
En KDE
kbluetooth --> configuración --> dispositivos de entrada --> Añadir dispositivo nuevo
Cuando lo queramos emparejar nos pedirá el código PIN (en nuestro caso "0000").
También tengo entendido que para pasarle el PIN se puede desde modo consola con passkey-agent.
Creación del archivo ~/.asoundrc
Modificar el archivo en nuestro directorio ~/.asoundrc para que tenga:
pcm.bluetooth { type bluetooth device MAC }
MAC la hemos obtenido antes mediante hcitool scan, en mi caso era 00:08:C6:XX:XX:XX
Configuración aplicación de audio
Se deberá modificar la configuración de la aplicación de audio para que utilice el nuevo dispositivo "bluetooth".
El problema es que no me detecta el dispositivo "bluetooth" en programas como ekiga o vlc.
En cambio funciona correctamente:
arecord -D bluetooth -f S16_LE | aplay -D bluetooth -f S16_LE
o
gst-launch -v alsasrc device=bluetooth ! audioconvert ! audioresample ! alsasink device=bluetooth sync=false
Cualquier ayuda se agradece :-)
Ejemplos
Utilizando Xine
Abrir la configuración del Xine
Audio --> Manejador de audio a usar: alsa
Audio --> dispositivo usado para salida monoaural: bluetooth (en lugar de default)
Audio --> dispositivo usado para salida stereo: bluetooth (en lugar de default)