GPS Bluetooth en Ubuntu. 12


Desde hace tiempo quería conectar la antena GPS Bluetooth que tengo al portátil, este verano he conseguido sacar un ratillo y ponerme con ello. Os comento rápidamente como ha sido.

 

Lo primero es montar el dispositivo Bluetooth como si fuera un dispositivo serie. Para ello vamos haciendo lo siguiente:

Escaneamos a nuestro alrededor para identificar los dispositivos bluetooth.

~$ hcitool scan
     Scanning ...
     00:0F:F6:30:68:B5   BESTBUY GPS
     00:22:FD:60:AB:5A  DISPBS
De aquí obtenemos la identificación del dispositivo: 00:0F:F6:30:68:B5

Veamos en que canal opera.

Se hace con sdptool. Se sugieren dos opciones para determinar el canal, con browse y con records. A mi me funciona con este último.
~$ sdptool records 00:0F:F6:30:68:B5
     Service Name: Serial port
     Service RecHandle: 0x10000
     Service Class ID List:
     "Serial Port" (0x1101)
     Protocol Descriptor List:
     "L2CAP" (0x0100)
     "RFCOMM" (0x0003)
     Channel: 1
     Language Base Attr List:
     code_ISO639: 0x656e
     encoding:    0x6a
     base_offset: 0x100

Con esta información configuramos el dispositivo serie.

Editamos el fichero /etc/bluetooth/rfcomm.conf y configuramos.
~$ sudo gedit /etc/bluetooth/rfcomm.conf
Incluimos lo siguiente:
rfcomm4 {
       bind yes;
       device 00:0F:F6:30:68:B5;
       channel 1;
       comment "GPS";
       }

Para realizar la conexión.

~$ sudo rfcomm connect 4
     Connected /dev/rfcomm4 to 00:0F:F6:30:68:B5 on channel 1
     Press CTRL-C for hangup
Si diese un error porque el rfcomm esta conectado lo que haríamos desconectar el dispositivo y volver a conectarlo.
~$ sudo rfcomm release 4
~$ sudo rfcomm connect 4

Como nota de atención indicar que he tenido problemas al hacer esto y en paralelo realizar la configuración con la herramienta gráfica del escritorio (gnome). Los problemas no aparecieron aquí sino cuando empecé a adquirir los datos desde el GPS.

Pues ya estamos teóricamente conectados. Para comprobar que va bien lo suyo sera instalar 'gpsd'.

GPSD, a grandes rasgos, es un servicio que lee la salida del GPS en un dispositivo, le da un formato mas legible y lo publica en un puerto tcp. Hay bastante SW desarrollado para que su entrada sea la salida de gpsd y es lo que en principio usare yo. Instalare también un juego de clientes que permitan sacarle un poco de jugo.

Pues a ello, instalamos:

~$ sudo apt-get install gpsd gpsd-clients

Y ejecutamos:

~$ sudo gpsd /dev/rfcomm4

Para comprobar que funciona podemos hacerlo de varias formas:
1. Lanzar gpsd en foreground y con un nivel alto de trazas

~$ sudo gpsd -N -D 4 /dev/rfcomm4

2. Consultar el puerto donde gpsd publica la información.

~$ telnet localhost 2947
     (Para ver resultados pulsar r)

3. Lanzar algún cliente de pruebas

~$ xpgs


Llegados a este punto ya deberíamos tener conectado el gps al portátil y poder trabajar con él. Ahora nos quedaría probar la instalación en real, para ello vamos a intentar un poco de Wardriving o configurar algún navegador. Aunque sera en otro post.

La arquitectura en la que lo he probado es en un Asus EeePC 901 y Sistema operativo Ubuntu 9.04 (Jaunty).

 

Compartir
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

12 ideas sobre “GPS Bluetooth en Ubuntu.

  • Anonymous

    Hola guillermo muy bueno el tutorial, he realizdo todos los pasos, pero xgps no muestra nada. Después de ver mucho por un lado y por otro, creo que el error está en que mi gps va a 38400 baudios.

    ¿Hay alguna forma de poder cambiar el baud rate a gpsd?

    Un saludo y gracias de antemano.

  • Guillermo

    La verdad es que me pillas. Se me ocurren dos cosas:
    1. Mira si te está pasando como indico en el post que me pasó. Es decir que además de vincular el dispositivo con rfcomm lo tengas vinculado con Network Manager. Debe de dar algún conflicto y GPSD deja de adquirir datos, o por lo menos eso me pareció. La forma de resolverlo fue borrando la conexión en el Network Manager.
    2. Leyendo vi que parece que GPSD cuando se conecta al dispositivo BT intenta modificar sus parámetros de trabajo y esto puede dar problemas también. Indican que habría que ejecutar GPSD con la opción -b (http://gpsd.berlios.de/upstream-bugs.html#bluetooth).
    Espero que te sirva.

  • Felipe!

    Muy buenas he leido la informacion y la verdad es que me ha sido util.

    Solo que para lo que lo queria he tenido que hacer unas pequeñas modificaciones.

    Solo necesitaba conectarlo con el portatil.

    Una vez estaba conectado.

    un simple cat /dev/rfcomm4

    Y muestra todo lo que recibe.

    Muchas gracias

  • Anonymous

    Hola GUillermo , he estado viendo el artículo y está muy bien . He aplicado lo mismo para la conexión de un teéfono móvil a un ordenador que tiene instalada una versión de Ubuntu . Yo conficuro el fichero /etc/bluetooth/rfcomm.conf y luego ejecuto los respectivos comandos para hacer la conexión sudo rfcomm connect 0 en micaso . EL problema es que después de introducir el PIN en el móvil , el gestor gráfico de Ubuntu me pide el PIN que he introducido el el móvil . ¿ Hay alguna forma de que no me pida ese PIN ; es decir , algún fichero en el que pueda meter el PIN para que se pueda logar el dispositivo bluetooth sin necesidad de que lo notifique el agente gráfico ?
    Muchas gracias
    Gorka.
    P.D La respuesta me la mandas a gorsanmo@hotmail.com

  • Guillermo

    Gorka.
    No me he encontrado este problema. Prueba lo que recomiendan en este enlace http://www.gentoo.org/doc/es/bluetooth-guide.xml. En general la documentación de gentoo es bastante buena.
    Proponen usar para determinadas versiones de bluez los ficheros de configuración hcdi.conf y pin situados en /etc/bluetooth (aunque yo no los he encontrado en mi equipo). Y para otras mas recientes las utilidades gráficas de kde y gnome o passkey-agent (contenido en bluez-utils) desde una terminal.

    Espero que te sirva.

    Por cierto, y espero que no te ofenda, ten cuidado donde dejas tu dirección de mail no sea que se te llene de spam.

  • Scorpyo82

    Guillermo, fantástico tutorial.
    Enhorabuena y gracias por compartirlo.

    Estoy trabajando en una nueva entrada en mi blog y conocer estos comandos me ayudan enormemente para hacer parte de lo que quiero.

    Te mencionaré sin duda y recomendaré la visita a tu blog, porque veo cosas muy interesantes y muy completas.

    Mi próxima parada en tu blog (cuando tenga tiempo) es en la de cargar una partición real en Virtual box, ya leí algo hace tiempo, pero no me puse y seguro que es interesante reventar el windows desde Linux. XD

    Un saludo y Gracias.