Bluetooth en linux

Durante la tarde/noche de ayer pasaron múltiples melodías y fotos por su memoria, todo ello vía Bluetooth con otros móviles similares, pero no era suficiente. Teniendo en cuenta que el iBook viene con módulo para la tecnología inalámbrica azúl, algo me llevó a ir más allá.
En MacOSX es coser y cantar, con abrir las Preferencias del sistema y activar Bluetooth en ambos gadgets lo tendremos disponible en el escritorio como si de un HD remoto se tratara. Una limitación importante del gestor de Apple es que la transferencia de archivos no es OBEX, con lo que nada de juegos/aplicaciones JAVA, debía conformarme con melodías y logos :(.
Linux parecía mi salvación y un reto complicado a la vez, pero poco duró la diversión, en poco más de 3 pasos todo estaba funcionando:
1.- Instalación del software
Debemos instalar por una parte bluez-utils, que son un conjunto de utilidades específicas para la conexión usando la tecnología BlueTooth. Principalmente los comandos más importantes son hcitool, hciconfig y hid2hci, además del resto de archivos de configuración, daemons y demás...Y por otra parte Gnome-Bluetooth, usaremos este 'interfaz' para transferir datos en doble dirección (aunque de momento solo hablaré del flujo ibook->v550), los comandos más importantes son gnome-obex-send y gnome-obex-server, ¡y viene con un frontend gráfico para gestionar intuitivamente las transferencias! (no probado xD).
root@ibook:/home/r0sk/Movil/Juegos # apt-get install bluez-utils gnome-bluetooth
2.- Verificación de hardware
Antes de seguir, ahora que podemos con las nuevas utilidades instaladas puesto que dmesg es de poca ayuda aquí, miraremos si nuestro hardware tiene soporte Bluez, hciconfig(8):
root@ibook:/home/r0sk/Movil/Juegos # hciconfig -a
hci0: Type: USB
BD Address: 00:0D:93:13:CB:95 ACL MTU: 192:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:49016 acl:1832 sco:0 events:3068 errors:0
TX bytes:604177 acl:4087 sco:0 commands:44 errors:0
Features: 0xff 0xff 0x8f 0x78 0x18 0x18 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: ACCEPT MASTER
Name: 'ibook-0'
Class: 0x000100
Service Classes: Unspecified
Device Class: Computer, Uncategorized
HCI Ver: 1.2 (0x2) HCI Rev: 0x4d9 LMP Ver: 1.2 (0x2) LMP Subver: 0x4d9
Manufacturer: Cambridge Silicon Radio (10)
3.- Escaneando el entorno
Un poco más contentos al saber que el módulo está soportado, activamos dicha tecnología en el móvil y escaneamos dispositivos, hcitool(1):
root@ibook:/home/r0sk/Movil/Juegos # hcitool scan
Scanning ...
00:12:8A:26:64:A3 r0sk
4.- Transferencia
Genial, lo hemos encontrado, nos quedaremos con la MAC del teléfono y ahora, con gnome-obex-send enviamos el archivo que queramos (en este caso un juego para los ratos muertos):
root@ibook:/home/r0sk/Movil/Juegos # gnome-obex-send Caveman_103.jar --dest=00:12:8A:26:64:A3
(gnome-obex-send:17237): GnomeUI-WARNING **: While connecting to session manager:
Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed.
Browsing 00:12:8A:26:64:A3 ...
Service Name: OBEX Object Push
Service Description: OBEX Object Push
Service Provider: Motorola
Service RecHandle: 0x10008
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 8
"OBEX" (0x0008)
Service Class ID List:
"OBEX Object Push" (0x1105)
** Message: device 00:12:8A:26:64:A3 (OBEX Object Push) port 8
En la pantalla del móvil advierte de la conexión con ibook-0 (nombre que asigna Bluez por defecto al portátil, totalmente configurable :D) y la entrada de un Juego, aceptamos su instalación y listo para jugar.
Comentarios
Hablo de la linea pin_helper del hcid.conf.
¿Alguien sabe el porqué de esto?