Cómo configurar el bluetooth en Linux con bluez y hcitool

Los dispositivos Bluetooth son bastante ubicuos hoy, se encuentran en casi todas partes, es una manera simple y barata de agregar conectividad inalámbrica a un dispositivo.

Un sistema Linux podría utilizar muchos protocolos como OBEX, A2DP, DUN, HID etc. etc. para interactuar con diferentes dispositivos para diferentes propósitos. Así que podemos conectar, sincronizar y administrar esos dispositivos bluetooth desde una PC con Linux, empecemos.

Configuración inicial

La mayoría de los adaptadores bluetoth están basados en USB y pueden configurarse con utilidades HCI, algunos dispositivos bluetooth como los adaptadores bluetooth Atheros pueden requerir firmware del dispositivo instalado en el sistema.

Para instalar los paquetes de software necesarios en Debian u otros derivados de Debian como Ubuntu, Linux Mint ejecute los comandos que se muestran a continuación.

El siguiente puede ser necesario para el correcto funcionamiento del adaptador bluetooth, es posible que desee reemplazar el paquete firmware-atheros con el paquete de firmware que coincida con su dispositivo como firmware-realtek.

Ahora inicie el servicio bluetooth

Exploración de dispositivos bluetooth

Antes de comenzar a escanear, asegúrese de que su dispositivo bluetooth esté encendido y no bloqueado, puede comprobarlo con el comando rfkill.

Si el dispositivo bluetooth está bloqueado (bloqueo blando o duro), desbloquearlo con el comando rfkill nuevamente

Trae el dispositivo bluetooth con el comando hciconfig y comienza a escanear, asegúrate de que el bluetooth del dispositivo de destino esté encendido y sea detectable.

Espere pocos momentos para completar el escaneo, los resultados serán algo como muestro abajo.

Aquí es la dirección MAC bluetooth es 83:23:26:15:54:46 y Mi-Nokia es el nombre del dispositivo bluetooth, es decir, un teléfono Nokia.

Descubrimiento del servicio Bluetooth

Ahora que tenemos la dirección MAC de dispostivo bluetooth de destino, utilice el comando sdptool para saber qué servicios (como DUN, Audio manos libres) están disponibles en ese dispositivo de destino.

Compruebe la salida del comando sdptool, es posible que desee filtrar el resultado con el comando grep.

También puede utilizar la herramienta interactiva bluetoothctl para este propósito.

Ping a dispositivos bluetooth

Si el dispositivo de destino está presente, puede hacer ping con el comando l2ping, requiere privilegio de root

Conexión y emparejamiento del dispositivo

Conectando al dispositivo bluetooth con rfcomm, este comando requiere privilegio de root, así que use sudo

Un ejemplo de conexión del bluetooth al dispositivo hci0 a un dispositivo cliente en el canal 2

El dispositivo /phone le pedirá que acepte esta solicitud de conexión. Ahora el dispositivo cliente bluetooth debe estar disponible como /dev/rfcomm0

Ahora puede enviar un archivo a través de OBEX/OPP a un dispositivo bluetooth remoto, el primer comando es un ejemplo genérico.

Ahora reciba algún archivo del dispositivo remoto, un ejemplo de servidor OBEX, primero inicie bt-obex en modo servidor escuchando la conexión Bluetooth.

Reemplace la carpeta /path/a/directorio/salida  con una carpeta de su elección, como / tmp. Ahora envíe un archivo desde el dispositivo cliente bluetooth, es decir, un teléfono. El archivo enviado debe estar en la carpeta de salida bt-obex

Start a FTP session with bt-obex

Conclusión

He probado los comandos anteriores con un Nokia 5230 y todas las funciones están funcionando bien, excepto el audio de manos libres. En el próximo tutorial sobre bluetoth voy a mostrar cómo configurar una conexión de acceso telefónico a través de bluetooth en Linux.

La gestión de dispositivos bluetooth podría ser aún más fácil con herramientas gráficas como bluedevil para escritorio KDE, Gnome-Bluetooth para escritorio Gnome o aplicaciones de uso general blueman de Gtk2. Así, ¿cuando estos comandos son útiles? Para los servidores, las máquinas accedidas vía SSH, o simplemente saber lo que está pasando detrás de la escena.

Si tiene alguna sugerencia o pregunta, simplemente deje un comentario, no olvide compartirlo con sus amigos.

 

Deja un comentario

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.