El topic suena interesante , eh ?? pues aun encima es mas fácil de lo que parece, empecemos con los pasos a seguir ...
Debemos tener un nucleo que tenga compilado ó en forma de modulo lo siguiente :
hci_usb (seguramente ya lo tengamos metido)
rfcomm (para las comunicaciones)
l2cap (idem)
bluetooth (logico, no ?)
No pienso explicar como recompilar el nucleo , hay cientos de páginas que dicen como hacerlo ...
Instalamos tambien los paquetes relacionados con bluetooth, pongo el caso de la debian, si usais otra distribución ejecutar el comando equivalente.
apt-get install bluez-utils bluez-pin bluez-firmware bluez-hcidump bluetooth
La transferencia de archivos la vamos a hacer "a mano" pues la interface grafica a mi aun no me funciona ...
Antes de empezar metemos el bluetooth en una ranura USB y vemos los LOGS que deberia aparecer algo como esto :
Jun 1 18:57:48 localhost kernel: usb 4-2: new full speed USB device using uhci_hcd and address 3
Jun 1 18:57:48 localhost kernel: Bluetooth: HCI USB driver ver 2.9
Jun 1 18:57:48 localhost kernel: usbcore: registered new driver hci_usb
Jun 1 18:57:48 localhost usb.agent[22990]: hci_usb: loaded successfully
Jun 1 18:57:48 localhost usb.agent[22989]: hci_usb: loaded successfully
Con lo que
1.- Descubrimos la ID de nuestro teléfono movil (es único para cada telefono y este es un ejemplo)
zoidberg:~# hcitool scan
Scanning ...
00:16:4E:0C:2B:91 O jato
2.- Ponemos una password (p.ej. 1111) al bluetooth del PC:
# echo "1111" > /etc/bluetooth/pin
3.- Vemos el canal que usa nuestro móvil para el envio y recepción de archivos (que es el de Nombre OBEX File Transfer) :
vic@zoidberg:Elephant$
sdptool browse 00:16:4E:0C:2B:91
Browsing 00:16:4E:0C:2B:91 ...
Service Name: Hands-Free Audio Gateway
Service RecHandle: 0x10000
Service Class ID List:
"Handfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Handfree Audio Gateway" (0x111f)
Version: 0x0101
Service Name: OBEX File Transfer
Service RecHandle: 0x1000a
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 10
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100
En mi caso el número de Canal para la transferencia de archivos es el 10 (OBEX File Transfer).
Ponemos al bluethooth del ordenador en espera de conexiones en ese canal ...
$ sdptool add --channel=10 OPUSH
$ obexserver
Vinculamos desde el telefono movil ... dandole en Bluetooth->buscar dispositivos-> ... -> Asociar
y a enviar archivos ...
Cada vez que queramos enviar un archivo tenemos que volver a ejecutar el obexserver.
Links:
http://www.e-oss.net/wordpress/?p=12
http://usefulinc.com/software/gnome-bluetooth
http://es.wikibooks.org/wiki/Hacks_para_sistemas_operativos_Unix-like/Redes/Bluetooth/Linux
