Configuración de Bluetooth en Linux parte 2 – hcitool, bluez y rfcomm

Usted puede hacer mucho con los dispositivos bluetooth en Linux con los comandos hcitool, bluez y rfcomm. Tal como fuente y reproductor de audio, la comunicación serial sobre el bluetooth,  el establecimiento de una red y así sucesivamente.

En un tutorial anterior, escribí acerca de la configuración básica de bluetooth en linux, como escanear, hacer ping, conectar y emparejar dispositivos bluetooth. También les mostré como hacer alguna transferencia de archivos con el comando bt-obex.

Así que en este tutorial te mostraré cómo puedes un poco de cosas más completas, vamos a empezar …

Comprobación rápida

Suponiendo que hayas instalado todo para que el bluetooth funcione en Linux, si no compruebas el enlace hacía el mi artículo anterior.

Sólo para asegurarse de que el dispositivo bluetooth no está bloqueado por rfkill.

sudo rfkill unblock bluetooth

Ahora asegúrese de que el servicio bluetooth se está ejecutando.

sudo systemctl status bluetooth.service

Sólo si el servicio bluetooth no se está ejecutando, inícielo.

sudo systemctl start bluetooth.service

Ahora, abra el dispositivo bluetooth y comience a escanear sus dispositivos.

sudo hciconfig hci0 up

hcitool scan

Anote la dirección MAC bluetooth del dispositivo de destino y cópielo a un archivo fácilmente accesible, como un archivo de texto. Vas a necesitar eso más tarde.

Descubrimiento del servicio Bluetooth

Este paso es crucial para saber qué puede hacer con sus dispositivos compatibles con bluetooth.
Puede hacerlo con el comando sdptool, que se utiliza para realizar consultas SDP en dispositivos Bluetooth.

sdptool browse E4:5D:75:7C:DC:B3

El resultado de salida es enorme, por lo que debe filtrar el resultado para conocer fácilmente los servicios disponibles y sus canales Bluetooth asociados.

sdptool browse E4:5D:75:7C:DC:B3 | grep -E 'Service Name:|Channel:'

Bluetooth rfcomm puerta de enlace de audio

Si desea utilizar su computadora portátil/escritorio Linux como una pasarela de audio Bluetooth, debe encontrar el canal rfcomm correcto con el comando sdptool.

En mi caso, el canal es 9, puedo conectarme a un teléfono (Samsung) con el comando rfcomm, necesita privilegio root.

sudo rfcomm connect E4:5D:75:7C:DC:B3 9

Puede ver el teléfono como fuente de entrada en el Control de Volumen de Pulse (pavucontrol)

Control de Entrada de Audio Bluetooth

También puede obtener la lista de conexión activa con el comando hcitool

hcitool con
Connections:

 > ACL E4:5D:75:7C:DC:B3 handle 21 state 1 lm SLAVE AUTH ENCRYPT


Puede conectar auriculares bluetooth o altavoces inalámbricos en el mismo enfoque, un tutorial más detallado sobre esto próximamente.

Linux de acceso telefónico a través de bluetooth

Aunque la red de acceso telefónico no es muy popular en estos días, pero en algún momento puede que tenga que compartir el Internet de su teléfono a la PC a través de bluetooth.

El procedimiento es casi el mismo para todos. Primero tienes que averiguar si el dispositivo soporta el perfil DUN bluetoth o no, luego el canal rfcomm correcto.

Muchos teléfonos recientes dejaron caer el protocolo DUN y adoptaron el protocolo BNEP más reciente, que es similar al de LAN. Así que estoy usando un viejo teléfono Nokia  para probar el bluetooth DUN.

Tienes que enlazar el canal rfcomm correcto para buscar el dispositivo /dev/rfcomm0, en mi caso el canal es 15.

sudo rfcomm bind 83:23:26:15:54:46 15 > /dev/null 2>&1 &

Básicamente, el comando anterior enlaza el canal 15 del dispositivo de destino y bifurca el proceso al fondo, todas las salidas son redirigidas a /dev/null.

Si la coincidencia de conexión y contraseña tiene éxito, debería ver un dispositivo rfcomm0 en el directorio /dev.

Más detalles disponibles aquí.

Comunicación en serie sobre bluetooth en Linux

Es exactamente igual que el acceso telefónico a redes. Tienes que usar rfcomm para enlazar el canal adecuado, eso es todo.

Es particularmente útil para los módulos de serie bluetooth como cc2541 o HM-10.

Redes Bluetooth BNEP en Linux

Conectar dos dispositivos a través de BNEP no implica rfcomm, todos los protocolos son manejados por bluez sobre el protocolo L2CAP.

Todo lo que necesitas hacer es instalar el último bluez y el último NetworkManager, entonces puedes agregar conexiones bluetooth.

Algunas capturas de pantalla a continuación, agregue una conexión bluetooth.

Conexión Linux BNEP

Así se muestra una conexión LAN bluetooth en el applet de NetworkManager.

Cómo networkmanager muestra una información de conexión Bluetooth BNEP.

Eso es todo para este tutorial, espero que te haya gustado!

Comparta sus sugerencias y preguntas a continuación en la sección de comentarios.

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. Continuar leyendo “Cómo configurar el bluetooth en Linux con bluez y hcitool”