[ Español | English ]

GNU/Linux + Bluetooth

Abstracto

Este artículo explica cómo instalar, configurar y utilizar el Bluetooth en GNU/Linux. Tanto para enviar y recibir archivos, como para sincronizar nuestro terminal móvil con nuestra agenda favorita, hacer conexiones para navegar por Internet mediante enrutado, etc. Como nota importante, decir que todo está pensado para una distribución concreta de GNU/Linux, Debian Sid, que es la que yo uso; pero la instalación en otra distribución no debería variar mucho con respecto a ésta.

Preparación previa

Todo lo que necesitamos para instalar el Bluetooth en nuestro ordenador son las siguientes cosas:

Yo utilizo la distribución Debian Sid, aunque el Bluetooth funcionará con cualquier distribución. Es más, distribuciones modernas como Ubuntu o Fedora Core integran ya todo el sistema Bluetooth instalado y configurado, listo para utilizar.

Para conseguir el último kernel, basta con ir a www.kernel.org y descargar la última versión. Yo uso 2.6.15.

A la hora de compilar el kernel, tenemos que tener las siguientes opciones activadas:

Networking support -> Bluetooth subsystem support
  • L2CAP protocol support
  • (opcional) SCO links support (para streaming de audio)
  • RFCOMM protocol support
  • RFCOMM TTY support
  • (opcional) BNEP protocol support (para Audio-profiles)
  • (opcional) HIDP protocol support (para teclado y ratón remotos)
    • Bluetooth device drivers --->
    • HCI USB drive

Aparte de todo esto, aseguráos de que tenéis el soporte USB correctamente y activado el driver EHCI (soporte USB 2.0), simplemente por si el transmisor Bluetooth necesitara la especificación USB 2.0.

Lo único que nos falta es descargar e instalar el software Bluetooth para comprobar que todo funciona perfectamente. Para ello necesitaremos descargar los siguientes paquetes:

Yo siempre suelo recomendar instalar todos los paquetes e intentar configurar todo. Sé que es tedioso, pero merece la pena. Por ejemplo, poca gente sabe que es posible utilizar los altavoces/micrófono del ordenador a modo de manos libres, o conectarse a Internet utilizando el teléfono como módem; pues así, hay una lista de cosas que, aunque parezcan mágicas o que sólo funcionan en hasefroch, también funcionan en GNU/Linux perfectamente.

Instalación

Para instalar los paquetes anteriormente mencionados, en Debian, basta con hacer lo siguiente:

apt-get install bluez-hcidump bluez-pin bluez-utils obexftp obexserver gnome-bluetooth

Una vez tengamos todo instalado y, por supuesto, corramos con el nuevo kernel con soporte Bluetooth, lo siguiente es conectar el transmisor Bluetooth y probarlo usando el comando hciconfig sin argumentos.

Este comando debería mostrarnos algo así como hay en el siguiente screenshot:

../files/hci_sshot.jpg
Captura de los comandos hciconfig y hcitool

Como se puede observar, el comando hciconfig, sin argumentos, nos da la configuración de el dispositivo(s) Bluetooth que hay en el ordenador. Este comando permite especificar muchos parámetros para la conexión, como el tipo de conexión, el perfil bluetooth, etc. Pero de momento nos basta con esto. Si el comando hciconfig no nos mostrara nada, significaría que no tenemos soporte Bluetooth bien configurado en el kernel o bien el dispositivo no está bien conectado.

También se puede observar en el screenshot el comando hcitool. Este comando sirve para llevar a cabo varias acciones, tales como búsquedas de dispositivos o configuraciones específicas de las conexiones a realizar. hcitool scan nos busca los dispositivos visibles en rango y nos informa de su dirección MAC y su nombre a mostrar. hcitool inq busca dispositivos en rango imprimiendo sus direcciones MAC, la diferencia de reloj y la clase de dispositivo.

¿Qué más podemos hacer ahora? Bien, ahora que tenemos instalado el software y vemos que nuestro transmisor bluetooth está soportado por el kernel, pasemos a configurar los parámetros de la conexión y los dispositivos. Si nuestro dispositivo bluetooth no funciona, tendremos que ir a la página www.linux-usb.org para averiguar si el dispositivo USB está soportado o no, es todo lo que puedo decir.

Configuración

Lo primero que vamos a configurar va a ser el PIN a pedir/enviar en nuestras conexiones bluetooth asociadas a nuestro ordenador. Para ello tendremos que editar el fichero /etc/bluetooth/pin y meter el código numérico a utilizar. Por defecto, este número es 1234.

Para configurar nuestro ordenador para recibir archivos, antes de ejecutar el comando obexserver necesitamos registrar el servicio OPUSH con el siguiente comando:

sdptool add --channel=10 OPUSH

Para poder enviar archivos no hace falta registrar ningún servicio. Para emparejar nuestro móvil con el ordenador, tendremos que buscar dispositivos bluetooth con el móvil y seleccionar aquel que aparezca con nombre igual al del host del ordenador. Y sugiero configurar el ordenador como un dispositivo fiable y que no se pida confirmación para ninguna conexión. Para encontrar a nuestro móvil desde el ordenador tendremos que ejecutar: hcitool scan. Luego, cogemos la MAC y haremos un ping al dispositivo de este modo: l2ping MAC_ADDRESS. Si el dispositivo no responde al ping, significa que algo anda mal, pero si hcitool encuentra al móvil y el móvil encuentra al ordenador, es raro que l2ping no funcione.

Usando el Bluetooth

Yo utilizo el paquete gnome-bluetooth; que está disponible en Debian, aunque los sources no son oficiales aún. Aparte de este software, tenemos también el framework kdebluetooth para entornos Qt y KDE. Y para los amantes de la consola, tenemos las utilidades obex_test, obexftp y obexserver.

Antes de hacer apt-get, necesitamos añadir una línea en nuestro /etc/apt/sources.list:

deb http://cslug.linux.it/cslug/gnome-bluetooth/ ./
apt-get install gnome-bluetooth kdebluetooth

El comando en Gnome para enviar un archivo es el siguiente: gnome-obex-send.

En KDE, el sistema Bluetooth va integrado en los menús de archivo, así que bastará con ir sobre uno o varios archivos seleccionados, pulsar botón derecho del ratón y elegir Enviar por Bluetooth.