Configuración de Bluetooth desde la terminal de Linux.
Autor: Joel Barrios
Friday 2nd of September 3:58 PM

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 dednf
―como ALDOS― reemplazardnf
poryum
en los siguientes procedimientos. - Para distribuciones que utilicen
apt-get
en lugar dednf
, reemplazardnf
porapt-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