BlueTooth en Linux HOWTO



El comenzar a utilizar dispositivos Bluetooth bajo Linux puede ser un poco traumatico, ya no por la configuracion, que es similar a de otros dispositivos hardware, si no por que, como y con que programas le podemos sacar probecho a este tipo de conexion, en este howto intentaremos dar una pequeña introduccion a las cosas que se pueden hacer con dispositivos Bluetooth.

1. Introduccion

1.1 Informacion de Copyright

Este HowTo es Copyright de Alvaro Alea Fernandez.

1.2 Condiciones de Uso

Se distribuye con licencia Creative Commons tipo FIX, puedes leer el contenido exacto de esta licencia en:

1.3 Nuevas Versiones

Podras encontarar la ultima version de este documento a traves de mi weblog,
http://www.asturlinux.org/~alvaro

1.4 Creditos

Mucha de la informacion ha sido obtenida de estas paginas web:



http://datadevil.papuaos.org/docs/bluetooth.php

1.5 Comentarios

Como podras observar, muchas de las secciones aun estan sin rellenar, si utilizas bluetooth y has echo alguna de ellas, no dudes en ponerte en contacto conmigo y contarme tus experiencias, problemas, asi como trucos, scripts, direcciones web o cualquier cosa que encuentres util.


De igual manera esto abierto a cualquier comentarios sobre el contenido actual, errores, faltas de ortografica, aclaraciones, etc...


1.6 Traducciones

Actualmente no estan disponibles traducciones de este documento a otros idiomas, si quieres hacer, o has echo una traduccion de este documento, no dudes en comunicarmelo para que pueda poner una enlace aqui.

2. Configuracion

2.1 Soporte

Lo primero es saber si tu dispositivo BT esta soportado en linux, en
http://www.holtmann.org/linux/bluetooth/devices.html puedes ver si tu adaptador funciona.

2.2 El kernel

BT depende de un "stack" el que actualmente esta mas en desarrollo (de echo viene incluido en los kernel) es el
BlueZ, que entre otras cosas proporciona los driver para el adaptador que tengas.

Si dispones de un kernel moderno (serie 2.6 o superior) y tienes correctamente instalado devfs o udeb deberia instalar solo los modulos que necesitas y ver una entrada similar a esta (si tu adaptador no es USB puede variar) en el dmesg:





Bluetooth: Core ver 2.6
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: HCI USB driver ver 2.7
usbcore: registered new driver hci_usb



En caso de no funcionar, es posible que necesites actualizar o recompliar el kernel, instalar el parche para bluez o configurar el sistema de modulos, estos son los modulos que se me instalan por defecto (extracto de la salida de lsmod):




hci_usb 13760 0
bluetooth 49476 1 hci_usb
uhci_hcd 32944 0



PENDIENTE: imac y dispositivos que necesitan Firmware

2.3 El software

Software necesario

Yo utilizo la distribucion Debian en su version Sid, y una buena parte de los programas necesario vienen incluidos, asi que tengo instalado: bluez-utils y sus dependencias, puede ser necesario tambien que descarges el firmware necesario para tu adaptador.

Gnome tiene algunas utilidades para bluetooth pero no estan incluidas en la distribucion oficial, pero si en estan empaquetados, estas son las lineas a añadir a /etc/apt/sources.list:



#cosas del bluetooth
deb http://debian.usefulinc.com/gnome ./
deb-src http://debian.usefulinc.com/gnome ./


Configuracion del software

La configuracion se encuentra en /etc/bluetooth, asi, /etc/bluetooth/pin contiene la clave para las conexiones autentificadas.

En /etc/bluetooth/hcid.conf configuraras el nombre que el resto de la gente vera, si es visible para otros y alguna cosa mas.

3. Ver "El ambiente"

3.1 CLI

con hcitool scan podras ver un listado de los dispositivos y su direccion.

Una vez que tenemos la direccion de los dispositivos con sdptool browse direccion veremos los servicios que tiene disponibles.

3.2 Gnome

con gnome-bluetooth-manager es posible ver de manera grafica los dispositivos al alcance, tras arrancarlo se ejecuta escanear, y aparecera iconos de cada dispositivo con su nombre, y no hace nada mas en la version actual :-/

3.3 Fuse

FUSE es una manera de montar sistemas de ficheros como aplicaciones de usuario, de manera que es posible acceder a ciertas capacidades como si de un directorio mas del sistema se tratase.


En
http://www.mulliner.org/bluetooth/btfs.php puedes encontrar el modulo.


Una vez instalado podras ver los dispositivos listando el directorio, y enviar archivos a esos dispositivos copiandolos en la carpeta OPUSH

4. Administraccion de Archivos

4.1 Enviar y Recibir Archivos

Entre las utilidades gnome-bluetooth, esta gnome-obex-server, que crea un icono en la barra de avisos, y se prepara para recibir archivos, para enviarlos, aparece una opcion en el menu contextual de nautilus, o utilizando gnome-obex-send -d direccion archivo


4.2 Montar un dispositivo como un disco

Aun no se han realizado investigaciones en esta linea, aunque existen dos posibilidades, por medio del vfs de gnome, o con fuse (probablemente tambien para kde con kioslave).

5. Utilizar el PC como sistema de Audio

Aun no se han realizado investigaciones en esta linea.


Hay dos cosas que se pueden hacer, utilizar el pc como "manos libres", para lo que no he encontrado informacion, y utilizar un dispositivo bluetooth como "tarjeta de sonido" para lo que existe un driver para alsa en
http://www.dcs.gla.ac.uk/~jp/snd-bt-sco/

6. Conectar con un dispositivo "Serie"

La idea es hacer algo asi: rfcomm connect 0 dir 1, y con eso se crea un device tipo /dev/rfcomm0 con el que puedes hablar con el dispositivo (modem, movil, etc..., cuando canses de utilizarlo pulsa Ctrl-C.


Una forma mas fina es utilizar bind en lugar de connect, asi funciona en segundo plano, y solo se realiza la conexion cuando se necesita, lo cual es util por que algunos aparatos tiene limitado el numero de canales que pueden utilizar. En estos casos para desconfigurarlo se utiliza rfcomm release 0, 0 en estos casos es el numero de dispositivo que ese crea.

7. Envio y recepcion de FAX

Aun no se han realizado investigaciones en esta linea.

8. Conectar a un dispositivo de red

Existen dos modos de lograrlo:


8.1 Conexion a dispositivos con "modem", o por puerto serie.

Se realiza a traves del servico de puerto serie, tal como se explico en el punto anterior, una vez realizada la conexion se utiliza como un modem normal y corriente, esta es probablemente el metodo utilizado para conexiones a inet a traves de telefonos moviles con tecnologia GPRS o UTMS.

En estos casos lo habitual es utilizar una conexion por PPP

8.2 Conexion por el servicio Dial-Up Networking (DUN)

Hay dos modalidades:

Punto de Acceso

Este sistema permite tener dispositivo que se conectan al servidor, sin necesidad de tener reservado un canal y una conexion serie.


dund --listen --sdp --channel 1 crea el servicio al que luego se conectan los clientes.

Cliente

dund --search --sdp se conecta al primero que encuentre y dund --connect BD:AD:DR:ES:S0 --channel 1 se conecta a uno en concreto

9. Conectar con un movil

9.1 Gnome-phone-manager

Hasta donde yo se esta utilidad solo sirve para que aparezca un dialogo en la pantalla cuando recibes un mensaje (SMS), tambien permite enviarlos y en el futuro alguna cosa mas, probablemente relacionada con dashboard o con la libreta de direcciones.


9.2 MultiSync

Esta utilidad permite sincronizar agenda, libreta de direcciones (no la del sim, la del telefono), y notas con evolution o con otros dispositivo

10. Imprimir a o desde dispositivos bluetooth

Existen 3 metodos de impresion por medio de bluetooth, Serial Printer Port (SPP), Basic Printing (BPP) y Hardcopy Cable Replacement (HCRP), solo el primero esta soportado (aunque se esta trabajando en los otros), como un modulo (backend) para CUPS, puedes encontrarlo empaquetado para debian sid con el nombre de bluez-cups o en
http://www.holtmann.org/linux/bluetooth/cups.html

11. Utilizar con Dispositivos de Interface Humanos (HID)

Basicamente consiste en lanzar hidd --server que se encarga de encontrar los dispositivos y crear los devices adecuados para usarlos normalmente.


En caso de ser necesario conectar con el dispositivo se hara con hidd --connect XX:XX:XX:XX:XX:XX

Como no tengo ninguno, no puedo hacer mayores investigaciones, si alguien me dona un
logitech mx900 o un teclado o raton microsoft bluetooth estare encantado de ampliar esta seccion :-)


11.1 Ratones

Las utilidades xmodpam y imwhell seran de gran ayuda para configurar el resto de botones que traiga el raton.

11.2 Teclados

11.3 Joysticks

12. Frikadas

12.1 Ver la TV en el movil

Probablemente solo este disponible para telefonos con el S.O. Symbian.


Basicamente consiste en tres pasos, realizar una conexion en red por medio del bluetooth, instalar un servidor de video por streaming en un ordenador con tarjeta de tv, y utilizar en el movil un software de reproduccion de video que admita streaming, por ejemplo Helyx Player, no doy mas informacion por que aun no se han realizado investigaciones en esta linea.