Aqui van los manuales sobre bluetooth.
Por fin puedo acceder en Linux a las fotos que tomo con él ¡Chao windows! :-P
Cable DKU-5 Serial-to-USB (puerto serie a USB)

[root@sempron danny]# dmesg usb 4-2: new full speed USB device using uhci_hcd and address 2 usb 4-2: configuration #1 chosen from 1 choice usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial support registered for generic usbcore: registered new driver usbserial_generic drivers/usb/serial/usb-serial.c: USB Serial Driver core drivers/usb/serial/usb-serial.c: USB Serial support registered for pl2303 pl2303 4-2:1.0: pl2303 converter detected usb 4-2: pl2303 converter now attached to ttyUSB0 usbcore: registered new driver pl2303 drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver
[root@sempron danny]# lsusb Bus 005 Device 001: ID 0000:0000 Bus 004 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000
Todo bien hasta aquí, el cable y el celular son detectados y los datos arriba nos servirán para buscar más detalles en Google por si lo necesitamos.
[root@sempron danny]# urpmi gammu
To satisfy dependencies, the following package is going to be installed:
gammu-1.09.00-1mdv2007.1.i586
libgammu0.0-1.09.00-1mdv2007.1.i586
Proceed with the installation of the 2 packages? (3 MB) (Y/n) y
ftp://ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/official/2007.1/...
contrib/release/libgammu0.0-1.09.00-1mdv2007.1.i586.rpm
ftp://ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/official/2007.1/...
contrib/release/gammu-1.09.00-1mdv2007.1.i586.rpm
installing libgammu0.0-1.09.00-1mdv2007.1.i586.rpm gammu-1.09.00-1mdv2007.1.i586.rpm from /var/cache/urpmi/rpms
Preparing... #############################################
1/2: libgammu0.0 #############################################
2/2: gammu #############################################
[root@sempron danny]Ahora tenemos que configurarlo. Ya sin root creamos en huestro home un simple archivo de texto llamado .gammurc y en él agregamos (con Kwrite, Midnight Commander, Gedit o lo que sea) estas líneas:
[gammu] port=/dev/ttyUSB0 connection=dlr3 name=gammu
Vamos a comprobar que Gammu reconozca el teléfono y el modelo con el siguiente comando:
[danny@sempron ~]$ /usr/bin/gammu --identify Manufacturer : Nokia Model : 3220 (RH-49) Firmware : 05.10 I (07-09-05) Hardware : 6203 IMEI : 359359009758415 Original IMEI : 359359/00/975841/5 Manufactured : 07/2006 Product code : 0532577 UEM : 400
Hasta aquí todo perfecto. Ahora viene lo mejor :-)
Tenemos que ver ahora en qué directorio de la memoria del celular están almacenadas las fotos. Para esto el comando es:
gammu --getfilesystem -flatall
Saldrá una lista muy larga (demasiado como para pegarlo aquí), toma su tiempo así que hay que ser pacientes. Debemos identificar dónde estan las fotos que, en mi caso, los nombres las asigna automáticamte el teléfono como Imagen000.jpg, Imagen001.jpg y así sucesivamente. El directorio dónde están se llama d:/predefgallery/predefphotos/
El comando para pasarlas a nuestro home es
gammu --getfilefolder d:/predefgallery/predefphotos
[danny@sempron ~]$ /usr/bin/gammu --getfilefolder d:/predefgallery/predefphotos Getting "Imagen001.jpg" 100 percent Saving to Imagen001.jpg Getting "Imagen000.jpg" 100 percent Saving to Imagen000.jpg [danny@sempron ~]
Aquí una muestra:

Este modelo toma fotos a una cálidad básica, como una webcam: 640x480 300K
Como para salir del apuro está bien, para cosas serias uso la cámara digital ;-)
¡Y eso es todo amigos!
Guía en la que me basé.
La verdad, no hay mucho que explicar. Yo, hasta el momento en que Jesuán (mi amigo) me dió ese Bluetooth, jamás había usado esa tecnología.
Lo primero que hice fue enchufar el Bluetooth al puerto USB. Nada ocurre. Ni ventanas de notificación ni nada.
Acto seguido, como no tenía idea que hacer me fui a RPMDrake y en la búsqueda escribí "bluetooth".
De los resultados obtenidos, instalé el paquete kdebluetooth con sus correspondientes dependiencias. Aclaro que estos paquetes están disponibles en el DVD Free. Yo no tengo conexión a internet, pero todo estuvo disponible sin problemas.
Una vez instalado, lancé la aplicación kbtobexclient (que está en la categoría RED), que es la aplicación mediante la cual envío archivos a los teléfonos.
En la interfaz de esta aplicación hay un botón que dice "Search". Le di click y ahí estaban listados los dos teléfonos celulares.
No hice nada mas (lo juro). La ventana de la aplicación está dividida en tres partes:
* Una ocupa la mitad superior (se puede redimensionar arrastrando el borde con el mouse); y sirve para navegar tu PC.
La mitad inferior se divide nuevamente a la mitad:
* La mitad izquierda tiene listados los dispositivos detectados.
* La mitad derecha es donde se sueltan los elementos que se quieren transferir al teléfono. Se maneja "arrastrando y soltando". Se puede arrastrar elementos desde la mitad superior o desde cualquier ventana de navegación de archivos (como Konqueror).
Una vez que se han soltado los elementos, se presiona el botón "Send" y el celular se ilumina preguntando si se acepta el elemento entrante.
Cuando alguien envía un elemento desde el celular hacia la PC, aparece una pequeña ventana de notificación, que pregunta si se acepta o no el elemento entrante; y también en que carpeta depositarlo. Muy sencillo.
Los teléfonos celulares con los que se llevó a cabo este "experimento" son:
* Sony Ericsson W 300i
* Nokia N73
Con respecto a la marca del dispositivo Bluetooth, no tiene impresa ninguna. A pesar de que la carcaza es transparente, los componentes no muestran ninguna marca. Lo que sí puedo detallar es lo siguiente:
Al ir a MCC --> Hardware --> Examinar y configurar el hardware con mi pequeño dispositivo Bluetooth conectado al puerto USB; antes de listar nada, aparece una pequeña ventana en la parte superior izquierda que dice Detección en progreso.
A los pocos segundos esta ventana desaparece y aparece otra que me pide instalar el paquete gnome-bluetooth (¿será esto porque además de KDE, que es mi escritorio por defecto y desde donde estoy haciendo todo este experimento, tengo instalado Gnome?). Le doy Sí y ahora sí, me lista todo el hardware, incluído mi Bluetooth USB.
La información listada en este apartado (Drakconf --> Hardware --> Examinar y configurar el Hardware --> Hardware detectado --> Dispositivos Bluetooth --> ISSCBTA) es:
Identificación
Fabricante: Desconocido
Descripción: ISSCBTA
Clase de soporte: Wireless|Radio Frequency|Bluetooth
Conexión
Bus: USB
Bus PCI nº: 1
Dispositivo PCI nº: 3
ID del fabricante: 0x1131
ID del dispositivo: 0x1001
Sub-ID del fabricante: 0x0000
Sub-ID del dispositivo: 0x0000
Varios
Módulo: hci_usb
Por su parte, KInfoCenter (KInfoCenter --> Dispositivos USB --> OHCI Host Controller (1) --> ISSCBTA) muestra la siguiente información:
ISSCBTA
Clase 224 (Wireless)
Subclase 0
Protocolo 0
Versión USB 1.10
ID del vendedor 0x1131 (Integrated System Solution Corp.)
ID del producto 0x1001 (KY-BT100 Bluetooth Adapter)
Revisión 3.73
Velocidad 12 Mbit/s
Canales 0
Tamaño máximo del paquete 0
Los que han tenido oportunidad de leer el post original, se darán cuenta que lo he editado añadiendo toda la información sobre el dispositivo Bluetooth, que me fue posible encontrar.
Como comentario final, quiero decir que lo anecdótico de esto, es que Jesuán me regaló el pequeño llaverito bluetoth porque se cansó de tratar de hacerlo funcionar en su XP y nunca anduvo. Y en mi Mandriva 2008.0 funciónó a la primera.
Espero que esta información resulte de utilidad. Quedo a vuestra disposición para ayudar hasta donde me dé el conocimiento.
Un abrazo
T@villo
Después de haber asistido a un par de acaloradas discusiones (dentro y fuera de la comunidad) sobre el uso de telefonos Motorola en Mandriva, en concreto el V3, me decanto por hacer este pequeño manual.
El software que tenemos disponible para poder conectar nuestro Motorola V3 con Mandriva y descargar/subir a el archivos con imágenes y musica, principalmente es Moto4lin. Este software no esta disponible en repositorios, así que no queda mñas remedio que compilarlo. De todos modos, su autor es bastante apañado y la compilación es sencilla.
Lo primero que vamos a hacer es descargarnos el software:
http://sourceforge.net/project/showfiles.php?group_id=132142
En esta dirección se nos ofrece la posibilidad de descargar dos programas:
moto4lin --> El software que emplearemos para conectarnos.
p2kmoto ---> Permite conectar el teléfono como sistema P2K (si alguien sabe que significa, agradezco explicaciones).
Ambos son necesarios, así que los descargamos los dos a nuestra home y los descomprimimos cada uno en su carpeta.
Ahora llega el momento de meterle mano. Pero antes de fundirnos, pensemos detenidamente si tenemos instalado todo lo que se necesita siempre para compilar: gcc, make, etc. Si todo esta listo, le echamos un vistazo a las dependencias del programa.
ATENTO: Si algo he aprendido en los años que llevo con linux, es a mirar los README de los tar que me descargo. Te ofrecen información valiosa como las dependecias del software, creditos y licencia. No olvides revisarlos.
Las dependencias de moto4lin son las siguientes, tal y como indica el fichero INSTALL:
To compile you need: * QT Library 3.3.3 (c++ headers and binary lib) * libusb-devel 0.8 (headers and binary lib) * g++
Los dos primeros corresponden a estos paquetes en Mandriva:
*qt3-common-3.3.8b-1mdv2008.1.i586 *libusb-devel-0.1.12-9mdv2008.1.i586
G++ es el paquete de compiladores de GNU. Si no quieres pasarte la tade buscando este paquete, echa un vistazo a este hilo. Seguimos su consejo, nos vamos a la consola y le damos un repaso a urpmi:
urpmi qt urpmi libusb-devel urpmi task-c++-devel
Además, si te fijas hay un fichero en la carpeta de moto4lin llamado "moto4lin.kdevelop". Esto indica que necesitará librerías de desarrollo de KDevelop, para interfaz grafica. Pues nada, nos curamos en salud y tambien.
urpmi kdevelop
La instalación total es de alrededor de 300Mb, creo que algo más. Tardará al menos unos 20 min. En realizarse, pero por lo menos lo tendremos todo listo para no tener problemas.
Cuando este todo preparado ya podemos ir a la carpeta donde hayamos descomprimido el moto4lin para empezar a compilar. En el archivo INSTALL de la carpeta te indica como debes hacerlo (cita textual):
Installing
========
1. qmake
make
2. Now you can run application.
Tal cual. Desde la consola, como usuario root, nos posicionamos en la carpeta de moto4lin y ejecutamos
qmake make
Ambas operaciones tardan un rato largo, dependiendo de la maquina que tengas. Una vez este hecho, verás en la carpeta de moto4lin un fichero con idéntico nombre. Enlazalo al escritorio para tener un acceso directo y ya esta. Cmomprobarás que ya puedes arrancar la aplicación, pero no puedes conectar el teléfono.
Ahora vamos a instalar el otro paquete. Las dependencias son las mismas, así que sin mayor problema vamos a la consola y, como usuario root, entramos en la carpeta e introduciomos nuestro "sota, caballo y rey":
./configure make make install
La instalación debería ser limpia. Si no, revisa si te estadando problemas por acceso a carpetas o falta de dependencias, aunque no debería.
Con esto ya esta listo para funcionar.
Ahora, cada teléfono tiene su porpia historia. A la hora de configurar tu telefono pasate por el Wiki de Moto4lin (en inglés) y busca información para tu modelo de telefono. En mi caso, vamos a ver como configuramos y usamos un Motorla V3:
Para el Motorola V3, consulta los pormenores aquí. Igualmente esta en inglés. Lo primero veamos como lo configuramos:
cd [ruta donde lo hayas descargado] su moto4lin
echo AT+MODE=8 > /dev/ttyACM0
para que reconozca el dispositivo conectado como tipo P2K, en lugar del predeterminado, AT.
Seleccionamos el telefono y clickamos en "Set as P2K device". Presionamos Ok. Salimos de la aplicacion y desconectamos el teléfono.
A partir de aquí, cada vez que lo tengais que conectar seguid estos pasos:
Y ya esta conectado. Ahora veamos como se usa. Es sencillo para cualquiera que haya utilizado un front-end grafico de administraciond e ficheros (konqueror, nautilus. ¿explorador de windows?). Para comenzar, hay que visualizar los ficheros. Para ello clickamos en "Update List". Esto nos hace aparecer a la izquierda la estructura de directorios y a la derecha los ficheros del directorio actual. Debemos hacer esto cada vez que cambiemos de directorio, subamos o borremos ficheros:
Ahora es tan sencillo como emplear los botones "Download" para descargar un fichero desde el movil al PC, "Upload" para subirlo del PC al movil, y "Delete" para eliminar un fichero del telefono.
NOTA MUY IMPORTANTE "NO METAMOS LA PATA": Como recomendación personal, os digo que apliquéis la norma "Si o no lo he puesto ahí, mejor no lo toco". Con moto4lin se tiene acceso a todos los ficheros del telefono, algunos estan bloqueados por el fabricante o el operador que os lo haya vendido, y pueden causar mal funcionamiento si se eliminan. Algunos incluso, pueden hacer que vuestro movil no vuelva a iniciarse, pues pertenecen al sistema.
Las carpetas seguras donde se almacenan las fotos y la musica son audio y pictures. Las fotos tomadas con la camara del telefono tienen nombres como 30-04-08_1607.jpg.
Una vez hayáis cacharreado con vuestros ficheros todo lo necesario, sencillamente hacemos click en "Connect" para desconectar el telefono y cerramos la aplicación.
Para cualquier tipo de problema os remito directamente a la pagina del proyecto moto4lin en sourceforge, asi como al Wiki de Moto4Lin, o si hay algo que quizás yo os pueda contestar, a través de este mismo foro.
Que disfrutéis con vuestro movil sin renunciar jamás al software libre.
ACTUALIZADO: Aunque no es mi estilo dar las cosas hechas y dejar a la imaginacion de la gente estas cosas, os adjunto un script que se me ha ocurrido y nos quita el engorro de tener que abir la consola para pasar el comando de cambio a modo P2K. Moto4lin en un solo click, solamente ajustando el valor de la variable RUTA por el directorio donde está el ejecutable de motolin (dependiendo de donde lo pusierais al instalarlo). A mi me funciona chévere:
#!/bin/bash # # Lanzamiento de moto4lin para el Motorola V3. # # Una tontería a su disposición por Kursordriver en BlogDrake (2008). # Agradecimientos y anonimos por favor a traves del foro. # Con este sencillo script arrancas moto4lin y ejecutas el comando para el modo P2K # sin abrir terminales ni despeinarte. # # Para comenzar, ajusta la variable RUTA a la ruta donde tienes el ejecutable de moto4lin RUTA=/home/kursordriver/moto4lin-0.3/moto_ui # Ya esta. Cambiamos al directorio donde esta moto4lin cd $RUTA # Ejecutamos moto4lin en segundo plano (con un ampersand al final) ./moto4lin & # Ejecutamos mientras tanto el comando para el cambio a P2K echo AT+MODE=8 > /dev/ttyACM0 # Veras como con un solo click, el telefono esta listo para usar automagicamente.
Gracias a tavillo1980 por su manual.
Me prestaron por un rato estos dos chismes así que a Googlear e investigar.
- Dakota Bluetooth 2.0 EDR USB Dongle Class 1 de Conitech Italia
Lo primero es instalar el soporte para Bluetooth en KDE vía urpmi:
[root@sempron ~]# urpmi kdebluetooth
Para satisfacer las dependencias, se instalarán los paquetes siguientes:
Package Version Release Arch
(medium "main")
bluez-utils 3.15 3mdv2008.0 i586
kdebluetooth 1.0 0.beta8.5mdv> i586
libkdebluetooth0 1.0 0.beta8.5mdv> i586
libopenobex1 1.3 3mdv2008.0 i586
(medium "non-free")
bluez-firmware 1.2 3mdv2008.0 i586 (suggested)
4.9MB of additional disk space will be used.
¿Efectuar la instalación de los 5 paquetes? (S/n) s
ftp://ftp.proxad.net/pub/Distributions_Linux/MandrivaLinux/official/2008...
main/release/bluez-utils-3.15-3mdv2008.0.i586.rpm
ftp://ftp.proxad.net/pub/Distributions_Linux/MandrivaLinux/official/2008...
main/release/libopenobex1-1.3-3mdv2008.0.i586.rpm
ftp://ftp.proxad.net/pub/Distributions_Linux/MandrivaLinux/official/2008...
main/release/libkdebluetooth0-1.0-0.beta8.5mdv2008.0.i586.rpm
ftp://ftp.proxad.net/pub/Distributions_Linux/MandrivaLinux/official/2008...
main/release/kdebluetooth-1.0-0.beta8.5mdv2008.0.i586.rpm
ftp://ftp.proxad.net/pub/Distributions_Linux/MandrivaLinux/official/2008...
non-free/release/bluez-firmware-1.2-3mdv2008.0.i586.rpm
instalando bluez-utils-3.15-3mdv2008.0.i586.rpm bluez-firmware-1.2-3mdv2008.0.i586.rpm libkdebluetooth0-1.0-0.beta8.5mdv2008.0.i586.rpm
libopenobex1-1.3-3mdv2008.0.i586.rpm kdebluetooth-1.0-0.beta8.5mdv2008.0.i586.rpm desde /var/cache/urpmi/rpms
Preparando... #############################################
1/5: libopenobex1 #############################################
2/5: libkdebluetooth0 #############################################
3/5: bluez-firmware #############################################
4/5: kdebluetooth #############################################
5/5: bluez-utils #############################################
Conecto el adaptador y veo cómo lo detecta Linux:
[root@sempron ~]# lsusb Unknown line at line 2389 Bus 003 Device 002: ID 0a5c:2101 Broadcom Corp. Bus 003 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 005 Device 002: ID 05a9:8519 OmniVision Technologies, Inc. Bus 005 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000
y dmesg me da esto:
usb 3-2: new full speed USB device using uhci_hcd and address 2 usb 3-2: configuration #1 chosen from 1 choice Bluetooth: Core ver 2.11 NET: Registered protocol family 31 Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized Bluetooth: HCI USB driver ver 2.9 usbcore: registered new interface driver hci_usb Bluetooth: L2CAP ver 2.8 Bluetooth: L2CAP socket layer initialized Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM ver 1.8 Bluetooth: HIDP (Human Interface Emulation) ver 1.2
Seguí los pasos de este manual: Mandriva Linux Tips for Free - Configuration of Mandriva 2005 Limited Edition, la sección que dice Bluetooth mobile phone communication. Así que después de la instalación con urpmi, y con el celular con la opción Bluetooth activada, inicié el servicio en Linux que está en el Menú K --» Herramientas --» Herramientas del sistema --» kbluetooth. Aparecerá un ícono en el tray o bandeja del sistema e informará que ha encontrado el adaptador USB. Para detectar los dispositivos Bluetooth (en este caso el celular Samsung) hay que ingresar esta URL bluetooth:/ en Konqueror.
Lanzamos kbtobexclient que está en Menú K --» Red
Y con él he podido enviar MP3s e imágenes GIF/JPG al teléfono. Automáticamente se van a un folder llamado Archivos descargados (o algo así). No he podido hacer más pruebas pues no eran míos pero en general todo ha ido bien. Espero que les sirva :-)
Bueno, pues hace un par de días, me compré un pinganillo (headset) bluetooth para poderlo usar en skype, concretamente el modelo Voyager 510 de Plantronics en unión a mi bluetooth USB del carrefour (Energy sistem - Linnker 1550).
Deciros que el dispositivo es una maravilla. La batería dura bastante, es muy cómodo y tiene un led azul muy bonito XDD
Pero el sistema bluetooth en linux aún tiene muuuuucho que crecer. Me ha costado bastante emparejar (saber cómo) el dispositivo y eso que se supone que no debe ser complicado... el sistema pin_helper ha cambiado y ya no se usa como antes.
Os comento los pasos que he seguido:
0.- Antes de nada, necesitareis el kdebluetooth, bluez y demás rpms relacionados con el tema bluetooth instalados en Mandriva2007.
1.- Me hice con el archivo "btsco-0.42.tar.gz" de la web:
http://sourceforge.net/projects/bluetooth-alsa/
2.- Lo descomprimí (como root), abrí una consola y lo compilé:
cd btsco-0.42 ./configure --prefix=/usr make make install cd kernel make make install
Con esto compilamos el módulo para el kernel y los programas necesarios.
El primer problema que me encuentro es que el módulo se me instala en el directorio "/lib/modules/2.6.17-5mdvcustom/extra" en lugar de meterse en el "/lib/modules/2.6.17-5mdv/kernel/extra" por lo que lo hice a mano. Copiando la carpeta extra de un lado al otro.
3.- Luego ejecuté el comando (como root):
modprobe snd-bt-sco modprobe -ae
Y comprobé con:
lsmod | grep snd
que estaba cargado
Ya tenia soporte para mi pinganillo, al menos en el kernel. Ahora venia la locura del emparejamiento.
4.- Para emparejar el dispositivo tuve que ejecutar (como root) el comando:
passkey-agent --default /usr/bin/bluez-pin
Ya que por lo visto, no se usa el sistema "pin_helper" del archivo "/etc/bluetooth/hci.conf". El programa de emparejamiento de Kdebluetooth no me funciona y el de gnome tampoco por lo que usé el propio de bluez: /usr/bin/bluez-pin
Posteriormente metí ese comando en "/etc/rc.local" para que se ejecutara en cada arranque y poder así emparejar cualquier otro dispositivo.
5.- Luego accedí al dispositivo de la siguiente manera (como root):
5a.- Debemos conocer la MAC del dispositivo por lo que lo puse en modo emparejamiento (mira las instrucciones, el mio necesita pulsar 2 teclas a la vez) y ejecuté el comando:
hcitool -i hci0 scan
Y obtendrás las MACs de los diferentes dispositivos al alcance.
5b.- Intenta realizar una conexión al dispositivo mediante (como root):
hcitool cc 00:00:00:00:00:00
Con esto nos debería salir una ventana pidiéndonos el PIN
6.- Con el dispositivo ya emparejado, podemos conectar el pinganillo para empezar a usar skype. Y a partir de ahora sin ser root, ejecutamos:
btsco -v 00:00:00:00:00:00
Con eso, el icono de Kdebluetoothd deberia estar en azul continuo y deberíais poder acceder (con el botón derecho sobre él) a la opción "connection details".
7.- Ahora vamos al skype, dentro de herramientas, opciones, dispositivos de sonido. Seleccionamos el motor ALSA y en las dos pestañas ponemos: BT Headset y reiniciamos el skype.
8.- De vuelta en el Skype, añadimos al usuario "echo123" y le llamamos. Es un usuario de prueba de skype para ver si funciona todo.
9.- Para la próxima vez que arranques el ordenador, sólo bastaría con meter el modulo de nuevo en el kernel ("modprobe snd-bt-sco") y ejecutar como usuario normal: "btsco -v 00:00:00:00:00:00" ya que el emparejamiento se mantiene.
Espero que no tengáis tantos problemas como yo y esta "guía" os solucione algún problemilla o al menos os sirva para encarrilar vuestra búsqueda.
Un saludo.
Esta semana pasada configuré una red Bluetooth con 2 dispositivos USB Bluetooth de 22 euros cada uno: los Conceptronics CBT100U (alcance de 100 metros). Estos dispositivos son bastante baratos y me han permitido montar una red inalámbrica fácilmente entre mi servidor Debian Woody y mi portátil MandrakeLinux 10.1, permitiéndo a este el acceso a Internet así como al resto de equipos de mi red local.
En este artículo explico paso a paso cómo he realizado la configuración.
Tendréis siempre una versión actualizada del Howto en mi página web:
http://pinsa.escomposlinux.org/sromero/linux/bluetooth_ht.php
En cualquier caso, voy a reproducir aquí la versión actual del howto para los lectores de BlogDrake:
Este documento es un pequeño y rápido howto que muestra la configuración
de mi red con 2 dispositos de bluetooth. El objetivo del montaje era que
mi portátil pudiera acceder al servidor y, a ser posible, a Internet,
estando conectados el portátil y el servidor por 2 Bluetooth USB modelo
Conceptronics CBT100U.
Mi portátil es Mandrake GNU/Linux y mi servidor es Debian GNU/Linux, de
modo que el Howto muestra la configuración en ambos sistemas. En este ejemplo
se ha configurado Mandrake (el portatil) como cliente PANU y Debian (el
servidor) como NAP, es decir, Debian será la que dará acceso a Internet
al portátil con Mandrake.
Cabe destacar también que con la presente configuración un portátil
Windows configurado con la IP adecuada (192.168.6.69 en este caso),
y el PIN/clave adecuado (el que estableceremos en la configuración
del BT en Linux) también podrá emparejarse con el servidor Linux y
salir a internet a través de él (utilizando el software para Windows
que viene normalmente con los USB). Escaneando en Windows el entorno
veremos el servidor Bluetooth Linux y podremos conectar a él y usar
su "Acceso a red" para navegar.
Mandrake GNU/Linux
En Mandrake debemos instalar los siguientes paquetes:
$ urpmi hotplug $ urpmi bluez-hcidump bluez-hciemu bluez-pin bluez-utils
Hay que asegurarse de que se tienen insertados los módulos adecuados para
el chipset USB de nuestra placa, entre los siguientes (si no se
tienen, insertarlos con modprobe):
uhci-hcd ohci-hcd ehci-hcd
El kernel tiene que tener compilado como módulo el soporte
de bluetooth (en el kernel oficial de Mandrake 2.6.x viene así).
En mi caso, al insertar los 2 Conceptronics USBde 100 metros
(modelo CBT100U), se inserta el modulo usb_hci, así como el
resto de módulos de bluetooth.
Debian GNU/Linux
En esencia, la configuración se realiza igual que en Mandrake,
pero con las siguientes particularidades:
Para instalar el software, añadir las siguientes fuentes de apt:
# Software de bluetooth para Debian Woody deb http://bluez.sourceforge.net/download/debian/woody ./
o bien:
# Software de bluetooth para Debian Sarge deb http://bluez.sourceforge.net/download/debian/ ./
Instalar los siguientes paquetes:
$ apt-get install bluez-utils bluez-sdp bluez-hcidump bluez-pan $ apt-get install hotplug
Recompilar el kernel activando las opciones de USB y Bluetooth
necesarias como modulos.
Detectando el dispositivo USB BT
Al tener instalado Hotplug y pinchar el bluetooth se detecta
automáticamente, y aparece lo siguiente en los logs:
/var/log/kernel/info: compiler kernel: usb 3-1: new full speed USB device using address 2 compiler kernel: Bluetooth: HCI USB driver ver 2.7 compiler kernel: usbcore: registered new driver hci_usb compiler kernel: Bluetooth: HIDP (Human Interface Emulation) ver 1.0 compiler kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.2 compiler kernel: Bluetooth: BNEP filters: protocol multicast
Tras realizar esto en ambas máquinas, ambos dispositivos bluetooth deberían verse.
Podemos chequear el estado de nuestro dispositivo con el comando
"hcitool dev", y realizar una búsqueda de dispositivos bluetooth
disponibles mediante "hcitool scan". En este último veremos la
MAC de los dispositivos, de forma que podemos hacer un ping a
nivel 2 (l2ping) para ver si responde nuestro dispositivo
remoto, mediante "l2ping MAC" (ej: l2ping 00:30:A5:10:80:10).
# hcitool dev
Devices:
hci0 00:80:A5:03:8C:41
# hcitool scan
Scanning ...
00:80:A5:03:8C:2D pinsa (0)
# l2ping 00:80:A5:03:8C:2D
Ping: 00:80:A5:03:8C:2D from 00:80:5A:30:8C:41 (data size 20) ...
20 bytes from 00:80:A5:03:8C:2D id 200 time 25.25ms
20 bytes from 00:80:A5:03:8C:2D id 201 time 12.02ms
20 bytes from 00:80:A5:03:8C:2D id 202 time 25.02ms
3 sent, 3 received, 0% loss
Si el dispositivo responde, tenemos enlace a nivel 2, es decir,
ambos dispositivos se ven y podemos hacer ping entre ellos
a nivel casi físico. Ahora es necesario crear una capa TCP/IP
sobre ellos para poder asignar una IP a cada uno de ellos.
Antes de continuar es imprescindible que podamos hacer ping
de nivel 2 desde cada uno de los 2 dispositivos al otro.
PIN o clave de comunicaciones entre 2 dispositivos
Obviamente, no vamos a permitir a cualquier otro dispositivo
bluetooth que se conecte a nuestro servidor para tener acceso a
nuestra red, por lo que deberemos configurar ambos dispositivos
(tanto cliente como servidor) con el mismo PIN o clave (debe de
ser una clave fuerte, que no se pueda averiguar fácilmente).
Podemos configurar el PIN para la conexion en /etc/bluetooth/pin .
$ cat /etc/bluetooth/pin clave123456789
Configuración del enlace
Editamos el fichero /etc/bluetooth/hcid.conf para que contenga los
siguientes valores de configuración:
(
Para el servidor sería el siguiente fichero (para el cliente
sería igual, pero con las opciones que van comentadas con
triple comentario o ### delante):
).
#
# HCI daemon configuration file.
#
# $Id: hcid.conf,v 1.4 2004/04/29 20:14:21 holtmann Exp $
#
# HCId options
options {
# Automatically initialize new devices
autoinit yes;
# Security Manager mode
# none - Security manager disabled
# auto - Use local PIN for incoming connections
# user - Always ask user for a PIN
security auto;
# Pairing mode
# none - Pairing disabled
# multi - Allow pairing with already paired devices
# once - Pair once and deny successive attempts
pairing multi;
# PIN helper
pin_helper /bin/bluepin;
# D-Bus PIN helper
dbus_pin_helper;
}
# Default settings for HCI devices
device {
# Local device name
# %d - device id
# %h - host name
name "%h-%d";
# Local device class
###class 0x120104;
class 0x100;
# Default packet type
#pkt_type DH1,DM1,HV1;
# Inquiry and Page scan
iscan enable; pscan enable;
# Default link mode
# none - no specific policy
# accept - always accept incoming connections
# master - become master on incoming connections,
# deny role switch on outgoing connections
#
#lm accept,master;
#
lm accept;
# Default link policy
# none - no specific policy
# rswitch - allow role switch
# hold - allow hold mode
# sniff - allow sniff mode
# park - allow park mode
#
#lp hold,sniff;
#
###lp rswitch,hold,sniff,park;
lp hold,sniff,park;
# Authentication and Encryption
#auth enable;
#encrypt enable;
}
Estableciendo el enlace bnep0
A continuación configuramos pand para permitir conexiones entrantes en el caso
del servidor y para conectarse al servidor remoto de forma
continuada en el caso del cliente, mediante el fichero
/etc/sysconfig/pand en caso de Mandrake o /etc/default/bluez-pan.
Para el servidor:
$ cat /etc/default/bluez-pan. DUND_ENABLED=0 PAND_ENABLED=1 PAND_OPTIONS="-s -M --role=NAP"
Para el cliente:
$ cat /etc/sysconfig/pand PANDARGS='--role=PANU --search --persist --encrypt'
Para que el BT USB funcione hay que asegurarse de que:
Así pues, desconectamos el BT-USB, paramos ambos servicios y los arrancamos
en ese orden (que será el mismo en que arrancaría al iniciar
el PC).
Al hacer esto en ambos PCs, podremos ver en el fichero
/var/log/messages cómo se establece un diálogo con el
siguiente aspecto (en el servidor):
Portatil: tatil pand[3683]: Inquiring tatil pand[3683]: Searching for NAP on 00:60:57:8E:63:B2 tatil pand[3683]: Searching for NAP on 00:80:A5:03:8C:2D tatil pand[3683]: Connecting to 00:80:A5:03:8C:2D tatil pand[3683]: bnep0 connected Servidor: compiler pand[4247]: New connection from 00:80:A5:03:8C:41 bnep0
En el cliente vemos un diálogo de búsqueda de dispositivos,
conexión con el dispositivo remoto y establecimiento del
dispositivo bnep0, mientras que en el servidor vemos la
conexión establecida.
Al levantar el dispositivo bnep0 se ejecuta el script de
/etc/bluetooth/pan/dev-up (creadlo y dadle +x), que contendrá
los comandos para levantar la IP deseada en el dispositivo
bnep0. En mi caso tengo 192.168.6.1 para el servidor y
192.168.6.69 para el cliente (portatil):
Para el servidor:
$ cat /etc/bluetooth/pan/dev-up #!/bin/sh /sbin/ifconfig bnep0 192.168.6.1 /sbin/route add 192.168.6.69 dev bnep0 $ cat /etc/bluetooth/pan/dev-down #!/bin/sh ifconfig bnep0 down route del 192.168.6.69
Para el cliente:
$ cat /etc/bluetooth/pan/dev-up #!/bin/sh /sbin/ifconfig bnep0 192.168.6.69 /sbin/route add 192.168.6.1 dev bnep0 $ cat /etc/bluetooth/pan/dev-down #!/bin/sh ifconfig bnep0 down route del 192.168.6.1
Estos scripts levantarán las IPs y las rutas para el nuevo
interfaz bnep0. Tras esto ya podremos hacer ping entre las
máquinas.
Recomiendo añadir las máquinas al /etc/hosts para mayor
comodidad al nombrarlas. Por ejemplo, en el servidor:
$ grep 192.168.6 /etc/hosts 192.168.6.69 tatil-bt 192.168.6.1 compiler-bt
Dando routing a Internet
En el script dev-up del servidor podemos, aparte de levantar
la interfaz, añadir reglas de firewall sobre bnep0 o activar IP forwarding e IP Masquerade,
para compartir la conexión a Internet. Con esto, aparte de
que nuestro portatil pueda hacer ping, telnet, ssh, y VNC
(entre otros) al servidor, tambien podremos salir directamente
a Internet desde el portatil.
En mi caso al principio no necesité masquerade, porque con VNC
podía conectar al servidor y hacer de todo, pero al final lo
activé por comodidad.
Basta con las siguientes reglas de fw en mi red de ejemplo:
#bluetooth
#sromero 03-02-2005
echo "Adding bluetooth network rules"
echo "1" > /proc/sys/net/ipv4/ip_forward
${IPTABLES} -A INPUT -s 192.168.6.69/32 -j ACCEPT
${IPTABLES} -t nat -A POSTROUTING \
-s 192.168.6.69/32 -o eth0 -j MASQUERADE
${IPTABLES} -A FORWARD -i bnep0 -o eth0 -j ACCEPT
${IPTABLES} -A FORWARD -o bnep0 -i eth0 -j ACCEPT
${IPTABLES} -t nat -A POSTROUTING \
-s 192.168.6.69/32 -o eth1 -j MASQUERADE
${IPTABLES} -A FORWARD -i bnep0 -o eth1 -j ACCEPT
${IPTABLES} -A FORWARD -o bnep0 -i eth1 -j ACCEPT
El routing a eth0 da acceso a internet, mientras que
el acceso a eth1 da al portatil acceso a la red local
pinchada al servidor. En resumen: desde mi portatil llego
al servidor, llego a Internet, y llego al resto de PCs de
la red, y todo con 2 pequeños dispositivos USB que aprox.
20 euros cada uno.
Santiago Romero
NoP/Compiler
De todos es sabido el problema con la conexión de teléfonos móviles con mandriva 2007 por bluetooth, siguiendo una explicacion de la pagina de bugs de mandriva, no conseguía hacerlo funcionar, por fin lo conseguí de la siguiente manera:
Hay que instalar:
A continuación se enchufa el bluetooth al puerto usb, en la consola se ve que no sucede nada, se teclea en consola como root:
# service bluetooth start
y el bluetooth empieza a parpadear, eso quiere decir que funciona, a continuación ponemos en el móvil el bluetooth en marcha, tecleamos en la consola:
# hciconfig hci0 piscan
para que el bluetooth del pc se haga visible entonces abrimos kbtobexclient, que estará en el menú: Internet->Transferencia de archivos y empezar a buscar, cuando encuentra el móvil introducimos la clave 1234 y se abre en el pc un cajetín donde debemos introducir la misma clave, y ya nos da el aviso de que están emparejados con exito, a partir de entonces ya podemos utilizarlos, si bien cada vez que enchufemos el bluetooth tendremos que ponerlo en marcha con la orden:
#service bluetooth start
Espero que esto sirva para solventar este problema
En este capitulo se tratará:
- Informacion sobre Interfaces bluetooth
- Escaneo de red
- Busqueda de servicios en los dispositivos remotos
Todo esto usando la consola por supuesto ;)
He usado bluetooth desde hace algo de tiempo pero siempre desde modo gràfico, como que quiero saber un poco mas como funciona intentaré usarlo desde consola jugando con los comandos de bluez-utils, una serie de herramientas libres destinadas a la creación de aplicaciones que trabajen con bluetooth.
Primero intentaré ver desde consola qual es mi dispositivo de conexion bluetooth, por lo que a primera vista se puede ver es un conceptronic bluetooth con 40 metros de radio de alcance. (esta claro que el mobil no llegarà ni a 20...)
vicent@ferrervicent:~$ hciconfig -a
hci0: Type: USB
BD Address: 00:80:5A:46:21:67 ACL MTU: 384:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:1544 acl:7 sco:0 events:57 errors:0
TX bytes:560 acl:5 sco:0 commands:32 errors:0
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'ferrervicent-0'
Class: 0x3e0100
Service Classes: Networking, Rendering, Capturing
Device Class: Computer, Uncategorized
HCI Ver: 2.0 (0x3) HCI Rev: 0x7a6 LMP Ver: 2.0 (0x3) LMP Subver: 0x7a6
Manufacturer: Cambridge Silicon Radio (10)
Como podeis observar esto nos da bastante informacion sobre el trastito, por ejemplo que el fabricante (del chip serà) es Cambridge Silicon Radio y no conceptronic como en un primer momento se podria pensar (es una cosa típica en el hardware usar chips genericos)
Ahora que ya sabemos bastantes cosas sobre nuestra interface bluetooth vamos a ver que podemos hacer con ella..
vicent@ferrervicent:~$ hcitool
hcitool - HCI Tool ver 2.24
Usage:
hcitool [options] [command parameters]
Options:
--help Display help
-i dev HCI device
Commands:
dev Display local devices
inq Inquire remote devices
scan Scan for remote devices
name Get name from remote device
info Get information from remote device
cmd Submit arbitrary HCI commands
con Display active connections
cc Create connection to remote device
dc Disconnect from remote device
sr Switch master/slave role
cpt Change connection packet type
rssi Display connection RSSI
lq Display link quality
tpl Display transmit power level
afh Display AFH channel map
lst Set/display link supervision timeout
auth Request authentication
enc Set connection encryption
key Change connection link key
clkoff Read clock offset
clock Read local or remote clockFor more information on the usage of each command use:
hcitool --help
Vemos que las posibilidades de hci tool son bastante amplias... :)
Primero de todo escanearemos el entorno en busca de algun dispositivo...
vicent@ferrervicent:~$ hcitool -i hci0 scan
Scanning ...
08:00:1F:85:4F:E1 GX25.D
I que tenemos aqui? un telefono mobil.. " 08:00:1F:85:4F:E1" es la direccion bluetooth, en hexadecimal como podeis ver, i GX25.D es el nombre del dispositivo...
Ya sabemos que existe, pero ... que podemos hacer con eso?, Muchas de las veces que nos encotraremos delante un dispositivo bluetooth a primera vista subestimaremos sus posibilidades.. Portanto para estar seguros de que puede hacer realmente escanearemos el dispositivo en busca de posibles servicios que ofrece..
vicent@ferrervicent:~$ sdptool browse 08:00:1F:85:4F:E1
Browsing 08:00:1F:85:4F:E1 ...
Service Name: OBEX Object Push
Service RecHandle: 0x10001
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 4
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100Service Name: Serial Port
Service RecHandle: 0x10002
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 5
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100Service Name: Dial-up networking
Service RecHandle: 0x10003
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100Service Name: Voice gateway
Service RecHandle: 0x10004
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100Service Name: Voice gateway
Service RecHandle: 0x10005
Service Class ID List:
"Handfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0101
Como podemos observar admite transferencia de ficheros (OBEX Object Push), Conexion como si de un puerto de serie se tratara (Serial Port), Usar el mobil como modem para gprs (Dial-up networking), conectarle dispositivos de voz y manos libres (Voice gateway) - que aparecen como 2 dispositivos diferentes -...
Y aqui acaba el capitulo 1 de jugando con bluetooth....
Este book es una traduccion del catalan desde el articulo original del blog "Carta de navegació".

En este capitulo se tratará:
- Introduccion al HCI sniffer
- Haciendo un sniff de conexion
- Estudio casero de la cobertura Bluetooth
Vamos a hacer un sniff de la conexion por bluetooth para ver un poco mejor como funciona
Para hacer el sniff usaremos el HCI sniffer, una vez instalado se ejecuta con hcidump como root (en este caso he instalado sudo para hacerlo mas facil)
Partimos de que hemos entendido los contenidos de "Jugando con bluetooth - I", lo primero que haremos serà arrancar el HCI sniffer
vicent@ferrervicent:~$ sudo hcidump HCI sniffer - Bluetooth
packet analyzer
ver 1.28 device: hci0 snap_len: 1028 filter: 0xffffffff
Ese es el mensaje que nos da al arrancar, se pueden hacer variaciones en los parametros estandard que usa hci dump para el sniff, consultando la ayuda veremos todas las opciones posibles,haremos pues un "man hcidump" si queremos ver todas las posibilidades de el sniffer
He probado algunas opciones y aunque algunas tienen bastante utilidad (reenviar los datos capturados o cambiar el modo de visualizacion -ascii, hex, etc..- ) yo de momento no las voy a usar....
Una vez el sniffer en marcha probaremos a generar trafico (enviar una petición de autentificacion desde el mobil por ejemplo) y podremos comprobar que efectivamente escucha el trafico...
Hay que decir que ese trafico es el local que està escuchando la propia interfaz bluetooth... no se si se podran escuchar otros canales sin afectar al trafico.. lo que en wifi's se denomina de forma comun "modo monitor"..
Asi pues tenemos el trafico de la peticion de autentificacion desde el mobil..
> HCI Event: Connect Request (0x04) plen 10
< HCI Command: Accept Connection Request (0x01|0x0009) plen 7
> HCI Event: Command Status (0x0f) plen 4
> HCI Event: PIN Code Request (0x16) plen 6
< HCI Command: PIN Code Request Reply (0x01|0x000d) plen 23
> HCI Event: Command Complete (0x0e) plen 10
> HCI Event: Link Key Notification (0x18) plen 23
> HCI Event: Connect Complete (0x03) plen 11
< HCI Command: Write Link Policy Settings (0x02|0x000d) plen 4
> HCI Event: Page Scan Repetition Mode Change (0x20) plen 7
> HCI Event: Max Slots Change (0x1b) plen 3
> HCI Event: Command Complete (0x0e) plen 6
< HCI Command: Change Connection Packet Type (0x01|0x000f) plen 4
> HCI Event: Command Status (0x0f) plen 4
> HCI Event: Connection Packet Type Changed (0x1d) plen 5
Ademas podemos ver de una forma bastante buena la diferencia entre lo que entra y lo que sale.. si os fijais en las linias 4 y 5 envia la peticion del pin y el ordenador la acepta ...
Y al pasar unos segundos automaticamente se corta la conexión..
> HCI Event: Disconn Complete (0x05) plen 4
Cosa que no acabo de entender ya que en el mobil està puesto que no se desconecte pero bien...
Ara que hemos visto un poco como se comunica bluetooth (todo esto lo digo por la experiencia de ir probando, en ningun momento he estudiado teoria del protocolo bluetooth asi que puede que me equivoque en algunos aspectos).. Vamos a hacer conexiones desde el ordenador al mobil para hacer pruebas de señal, para ver la cobertura..,esto lo haremos con el comando "hcitool" (que hemos visto en Jugando con Bluetooth - I), usando la opcion "hcitool
cc" para conectar y "hcitool lq" para ver el estado de la señal..
Iniciaremos el sniffer (HCIdump) para ver tambien que es lo que pasa...
Hacemos un intento de conexion al mobil:
vicent@ferrervicent:~$ sudo hcitool cc 08:00:1F:85:4F:E1
y a continuacion podemos ver desde el sniffer que la conexion tiene éxito..
vicent@ferrervicent:~$ sudo hcidump
HCI sniffer - Bluetooth packet analyzer ver 1.28
device: hci0 snap_len: 1028 filter: 0xffffffff
< HCI Command: Create Connection (0x01|0x0005) plen 13
> HCI Event: Command Status (0x0f) plen 4
> HCI Event: Link Key Request (0x17) plen 6
< HCI Command: Link Key Request Reply (0x01|0x000b) plen 22
> HCI Event: Command Complete (0x0e) plen 10
> HCI Event: Connect Complete (0x03) plen 11
< HCI Command: Write Link Policy Settings (0x02|0x000d) plen 4
> HCI Event: Page Scan Repetition Mode Change (0x20) plen 7
> HCI Event: Command Complete (0x0e) plen 6
> HCI Event: Max Slots Change (0x1b) plen 3
Pero pasa como antes.. que al poco rato (de no usarlo realmente) se desconecta.. supongo que serà para no gastar tanta bateria y supongo que en cada acción se harà automaticamente una prueba de conexion y se reconectarà en caso de que se haya desconectado.. pero no me hagais mucho caso.. son solo hipotesis mias..
Seguimos pues con el tema de la señal, la señal se mide con el comando "hcitool lq" como he dicho antes, portanto si lo ejecutamos correctamente:
vicent@ferrervicent:~$ sudo hcitool lq 08:00:1F:85:4F:E1
Link quality: 255
Observamos que nos saca 255 de señal, que es el maximo (el mobil esta a la parte delantera de la torre y la interface bluetooth detras)
y HCIDump como no nos muestra que evidentemente esa medida de señal ha sido realizada:
< HCI Command: Read Link Quality (0x05|0x0003) plen 2
> HCI Event: Command Complete (0x0e) plen 7
He hecho varias pruebas poniendo el mobil cada vez en una posición diferente, y seguidamente ejecutando cada vez las ordenes correspondientes a conectar y
mirar el estado de la señal.
Visión directa:
- Al lado, medio metro > 255
- 2 metros mas o menos > 255
- 4 metros mas o menos > 247
- 6 metros con poca visibilidad > 212
(No he probado mas porque tendria que mover el ordenador de
sitio)
Sin visión directa:
- A la otra parte de la torre > 255
- Con la pantalla en medio > 254-220
- Bajo la mesa (cpu arriba) > 255
- Dentro de una vitrina con visión directa
> 255- A 3 metros y una puerta de cristal doble > 190
- A l'escala de casa > ya no conecta
- A 4 metros y una pared enmedio > tampoco
No lo sé seguro pero por la experiencia se puede deducir que el bluetooth usa un espectro de frequèncias y una potencia de emision buena para distancias cortas pero que en largas distàncias se ve afectado. sobretodo si hay objetos por el medio.
Para la idea que llebo en mente para proximos numeros deberé buscar un poco de documentación.. pero estoy seguro que no os defraudarà la idea ;)
Este book es una traduccion del catalan desde el articul o riginal del blog "carta de navegació"

Escrito el 13 de septiembre de 2006..
Después de que publicaran en Bluehack un articulo que escribí de Bluetooth sobre hcisniff, me he vuelto de animar con esto del bluetooth. Después de ver que en pocos meses las cosas han avanzado bastante, en una casualidad de la vida he descubierto una fallo en el teléfono sharp Gx25. El fallo en cuestión hace que el teléfono se bloquee por unos instantes parando todo proceso que se estuviera realizando en el momento al recibir un paquete ping muy grande por bluetooth.
Se puede decir que el fallo es parecido al famoso "ping de la muerte", aquella vulnerabilidad que tenían muchos sistemas antiguos en la cual si se enviaba un paquete ping muy grande se podía llegar a colgar el equipo remoto. De eso hace mucho tiempo, pero quien lo iba a pensar, la historia se repite...
Estaba navegando en una web con información sobre bluetooth y herramientas en Linux cuando he visto que parecía una herramienta llamada l2ping, al ver que era una herramienta para hacer pings he pensado que podría comprobar si el ping subía conforme se ponía el teléfono mas lejos, también he pensado que podría enviar paquetes cada vez mas pesados para ver la diferencia de tiempo de respuesta...
Primero de todo he hecho un "hcitool scan" para ver la dirección hexadecimal del móvil.
vicent@ferrervicent:~$ hcitool scan
Scanning
08:00:1F:85:4F:A1 GX25.D
Seguidamente, he dirigido un l2ping hacia la dirección del
teléfono..
vicent@ferrervicent:~$ sudo l2ping 08:00:1F:85:4F:A1
Ping: 08:00:1F:85:4F:A1 from 00:70:5A:46:21:67 (data size 44) ?
0 bytes from 08:00:1F:85:4F:A1 id 0 time 128.62ms
0 bytes from 08:00:1F:85:4F:A1 id 1 time 51.11ms
0 bytes from 08:00:1F:85:4F:A1 id 2 time 49.90ms
0 bytes from 08:00:1F:85:4F:A1 id 3 time 76.45ms
0 bytes from 08:00:1F:85:4F:A1 id 4 time 78.75ms
0 bytes from 08:00:1F:85:4F:A1 id 5 time 48.18ms
0 bytes from 08:00:1F:85:4F:A1 id 6 time 56.75ms
0 bytes from 08:00:1F:85:4F:A1 id 7 time 56.02ms
0 bytes from 08:00:1F:85:4F:A1 id 8 time 36.44ms
0 bytes from 08:00:1F:85:4F:A1 id 9 time 52.51ms
Send failed: Connection reset by peer
Eso era un ping normal, el teléfono seguía con vida.. lo que no entiendo es porque siempre al cabo de unos segundos se corta la conexión, cosa que ya pasaba con este movil cuando escribí "jugando con bluetooth" I y II.
Para informarme un poco he mirado a ver como se usaba
correctamente l2ping:
vicent@ferrervicent:~$ sudo l2ping
l2ping - L2CAP ping
Usage:
l2ping [-i device] [-s size] [-c count] [-t timeout] [-f]
Eso de size me gusta...., que pasaría si hacemos
un:
vicent@ferrervicent:~$ sudo l2ping -s 50000 08:00:1F:85:4F:A1
Ping: 08:00:1F:85:4F:A1 from 00:70:5A:46:21:67 (data size 50000) ?
no response from 08:00:1F:85:4F:A1: id 0
Se colgó!! Tengo que decir que he puesto 50000 por poner un valor, tampoco sabia realmente de cuanto tamaño estávamos hablando hasta después.. así que son varias coincidencias juntas (decir que funciona con valores bastante mas bajos...), como podéis entender 50000 es demasiado, así que se puede hacer la prueba igualmente enviándole un paquete grande.. pero sin ser excesivo como este.. (decir que si lo haces por ping bajo Ethernet, mi router mismo lo ignoraba :O )
Bueno, un vídeo vale mas que mil palabras sin sentido así
que.. he colgado un vídeo en youtube desde donde podéis ver los cortos pero molestos efectos que podría suponer un ataque de este tipo. Decir que técnicamente -por lo que me han comentado expertos en el tema- lo que el teléfono sufre es un softreset y no una denegación de servicio propiamente dicha..
Este softreset vendría implementado por las bajas capacidades del teléfono, y por lo tanto es una forma de auto limitarse antes de quedarse colgado, aun así no creo que sea la mejor forma de solucionar el problema: Autoresetearse? Haré una comparación, puede que exagerada pero útil: cuando un servidor tiene mucha carga se autoresetea? Está claro que no.. (puede que m$ incorpore esa nueva feature en alguna nueva version del w$ server, pero de momento no, no hay servidores que tengan implementada esa funcionalidad -o por lo menos no voluntariamente que yo sepa-).
Como podemos saber que el teléfono tiene poca capacidad? pues a continuación probaremos a ir aumentando el tamaño del paquete de ping para ver como va aumentando.
1000 > de 139 a 169 ms
1500 > de 195 a 230 ms
1850 > de 231 a 246 ms
Resultando la siguiente curva:

También quería hacer una prueba dependiendo de la distancia, claro, como la diferencia entre un ping y otro puede ser mucha, lo que he hecho ha sido capturar un gran volumen de datos y con una simple función en bash exportarlo a un fichero donde los datos estan expresados en el tipo X Y de forma automatizada, porque hacerlo manual podría ser brutal..
Siento decir que ese archivo lo he perdido (es lo que tiene hacer reinstalaciones completas y pensar que no tenias nada importante en el /home) así que en cuanto puedo volveré a hacer la prueba.
Con Gnuplot se podría hacer de todo, pero por ahora me quedo con el OpenOffice Calc ya que el gnuplot lo manejo mas bien poco..
Comentario a 14/9/06:Ayer por la noche encontré este tipo de fallo, si estaba documentado!.. no para este móvil en concreto sino que es una clase de ataque, el ataque se llama Bluesmack. Y es un fallo de cada dispositivo en cuestión, no del protocolo bluetooth aun así confío que habrá bastantes dispositivos, que como este Gx25 de sharp tendrán el fallo.
Ya me creía yo que había descubierto un bug nuevo.. :( no, pero realmente algo si, ya que nadie antes había probado este tipo de fallo contra un sharp gx25 [si alguien lo ha probado antes, no lo ha puesto en Internet] así que al menos contra el gx25... De todos modos lo que ha servido ha sido la experi?ncia :D
Es la sensacion del sentido Original de Hacker.
Mas comentarios:
Este documento és una traducción con algunas mejoras
del documento original escrito el 13 de septiembre de 2006 en
ferrervicent.com
Además está protegido bajo Creative Commons-es,
compartir igual, reconocimiento y no comercial.
Copyleft 2006, Vicent Ferrer i Rodrigo.
Para más información: www.ferrervicent.com
Para todos aquellos que posean un Celular Motorola C650 aquí el pequeño tutorial para
Conectarlo via USB en Mandriva 2005 LE.-
Primero conectamos el teléfono, a continuación cargamos el módulo del módem usb,deberemos tener privilegios de Root para ello ejecutamos el comando ¨su¨ y luego para cargar el módulo el comando:
# modprobe cdc_acm
(No debe salir nada, a no ser que ya este cargado, en mi caso no estaba cargado)
Para verificar si se cargó el módulo y detecta el teléfono ejecutamos el comando:
# dmesg|grep ACM
(debe salir algo parecido a:
cdc_acm 1-1:1.0:ttyAcm0:USB Acm Device
Si no llegara a aparecer se deberá recompilar el kernel con soporte para dispositivos CDC ACM, en las opciones de compilación habilitar:
Device Drivers --->
USB support --->
USB Modem (CDC ACM) support
En mi caso y seguro será para todos el soporte ya existía por defecto en Mandriva, así que continuamos, ahora deveremos verificar si existe el Link para comunicarse:
# ls – lh /dev/ttyACM0
nos debe salir:
Crw-r—r—1 root 166 0 /dev/ttyACM0
(que es donde se encuentra creado el dispositivo). Sino aparece crear:
# mknod /dev/ttyACM0 c 166 0
(a mi me apareció automáticamente).
Ahora daremos permiso a un usuario común a acceder al dispositivo:
# chmod a+rw /dev/ttyACM0
Con esto ya tenemos disponible la conexión entre el teléfono y la Pc, ahora vamos al tema de los programas para gestionar la información:
Por un lado tenemos al KmobileTools que nos sirve para gestionar la agenda, enviar sms entre otras cosas (yo no lo he probado).-
Aquí les dejo la dirección:
http://kmobiletools.berlios.de/
Y Por otro, el para mí más interesante Moto4lin que nos permite bajar las fotos que sacamos con el celular, y otras cosillas como subirle melodías, borrarle las existentes, en fin manipularlo a gusto y placer del usuario!!.-
Aquí les dejo la dirección del sitio del Moto4lin:
http://sourceforge.net/projects/moto4lin
Tienen para bajar un rpm que aunque no es para Mandriva, funciona igualmente bien.
Una vez instalado el programa ejecutamos desde una consola:
# moto4lin
nos abrirá una bonita interfaz gráfica desde la cual podremos acceder al celular. Lo primero que debemos hacer es ir al menu Options--->Settings --> Preferences
y configurar el dispositivo ACM colocando:
/dev/ttyACM0
una vez hecho esto le damos al boton ¨Connect¨ y el programa intentará conectarse al teléfono, sino lo hace a la primera desconecten el cable conecten nuevamente y prueben de nuevo, el programa esta un poco verde, ténganle paciencia.
Una vez conectados le damos al botón ¨Update list¨ y listo, en la ventana de la izq les aparecera un árbol con las carpetas del teléfono.
A partir de aquí es todo suyo muchachos, ojo con lo que borran que pueden dejar el celular inservible. A mi me funciona perfecto para bajar las fotos.
Cada día me convenzo más del poder de Linux, para realizar todas estas tareas bajo Hasefroch debía bajar un programa propietario de Motorola (51 MB contra mucho menos de 1 MB Moto4lin) amen de una pesadilla para instalar el driver.-Gracias a Dios y a Google que di con el Moto4lin!!.-
Para más información, tutoriales y mucho más acerca del moto4lin y los C650 dense una vuelta por:
http://www.motorolac650.tk/
Espero que les sirva.
Saludos desde el sur.