Auricular Bluetooth en GNU/Linux

De GALPon WiKi

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 :-)

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)

Otros programas

http://wiki.bluez.org/wiki/HOWTO/AudioDevices