La configuración de dispositivos Bluetooth en el escritorio Linux suele ser algo que puede resultar o muy simple o muy complicado, dependiendo del software instalado en el sistema y de si el dispositivo está soportado por la versión de Bluez instalada y el la versión núcleo de Linux. A continuación presentamos un breve documento orientado a la configuración de dispositivos Bluetooth desde la terminal Linux.

Ventajas de hacer las conexiones por terminal

  • Diagnósticos son más fáciles de hacer
  • Permite ver los mensajes de error que se generen
  • Permite hacer las conexiones sin demora

Paquetes necesarios

  • Todos los procedimientos a continuación se ejecutan como root o bien se pueden ejecutar con sudo.
  • Para distribuciones que utilicen yum en lugar de dnf ―como ALDOS― reemplazar dnf por yum en los siguientes procedimientos.
  • Para distribuciones que utilicen apt-get en lugar de dnf, reemplazar dnf por apt-get en los siguientes procedimientos.

Instalar paquete mínimo necesario:

dnf -y install bluez

Instalar soporte para ratones y teclados Bluetooth:

dnf -y install bluez-hid2hci

Instalar soporte para redes Bluetooth de gran escala (Mesh):

dnf -y install bluez-mesh

Forzar que UDEV vuelva a leer las reglas de dispositivos:

udevadm control --reload-rules

Instalar interfaz gráfica para el escritorio Cinnamon, MATE o Xfce:

dnf -y install blueman

Interfaz gráfica para KDE Plasma:

dnf -y install bluedevil

GNOME generalmente incluye por defecto los paquetes necesarios dentro de su Centro de Control.

El servicio para el soporte Bluetooth se puede iniciar de dos formas, dependiendo de las distribución de Linux

La primera es reiniciando el sistema.

La segunda es iniciando manualmente el servicio que activa el soporte para dispositivos Bluetooth.

ALDOS y distribuciones Linux que utilizan upstart, requieren se inicie el servicio ejecutando lo siguiente:

initctl start btattach-bcm

Distribuciones como Fedora, Ubuntu, Debian, etc. que utilizan SystemD, requieren se inicie el servicio ejecutando lo siguiente:

systemctl enable --now bluetooth

El soporte para audio a través de Bluetooth requiere esté instalado el módulo correspondiente para pulseaudio o pipewire.

dnf -y install pulseaudio-module-bluetooth

Se requiere estén habilitadas las siguientes líneas en el archivo /etc/pulseaudio/default.pa. En ALDOS están habilitadas de modo predeterminado.

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif

.ifexists module-bluez5-device.so
load-module module-bluez5-device
.endif

.ifexists module-bluez5-discover.so
load-module module-bluez5-discover
.endif

Utilizando bluetoothctl

Todos los siguientes procedimientos se realizan desde una terminal, como usuario regular.

Buscar dispositivos Bluetooth:

bluetoothctl scan on

Hacer que dispositivo Bluetooth local se pueda descubrir:

bluetoothctl discoverable on

Hacer que dispositivo Bluetooth local deje de poder ser descubierto:

bluetoothctl discoverable off

Hacer que dispositivo sea visible sólo por una cantidad determinada de segundos:

bluetoothctl discoverable-timeout 300

Mostrar dispositivos que están en el rango de Bluetooth:

bluetoothctl devices

En los siguiente ejemplos de uso de bluetoothctl se utiliza XX:XX:XX:XX:XX:XX. Reemplazar por la dirección de hardware del dispositivo con el que se quiera realizar las pruebas de procedimientos.

Confiar en un dispositivo:

bluetoothctl trust XX:XX:XX:XX:XX:XX

Emparejar con dispositivo:

bluetoothctl pair XX:XX:XX:XX:XX:XX

Conectar al dispositivo:

bluetoothctl connect XX:XX:XX:XX:XX:XX

Mostrar lista de dispositivos emparejados:

bluetoothctl paired-devices

Desconectar dispositivo:

bluetoothctl disconnect XX:XX:XX:XX:XX:XX

Eliminar confianza de dispositivo:

bluetoothctl untrust XX:XX:XX:XX:XX:XX

Eliminar dispositivo:

bluetoothctl remove XX:XX:XX:XX:XX:XX

Bloquear un dispositivo:

bluetoothctl block XX:XX:XX:XX:XX:XX

Desbloquear un dispositivo:

bluetoothctl unblock XX:XX:XX:XX:XX:XX

Siguiente Entrada Entrada Anterior