Ir al principioc | Ir al final
Home

TIC
TIC.TomTomr1.6 - 13 May 2007 - 16:19 - RicardoDeLosSantosabajo

Start of topic | Skip to actions

Navegadores GPS TomTom

Introducción

Los navegadores GPS TomTom están equipados con un procesador ARM que corre bajo Linux, por lo que cabe la posibilidad de añadir otros programas o incluso construir una distribución específica para ellos. El sistema de archivos de la tarjeta SD y/o el disco duro del dispositivo es FAT y el sistema operativo se encuentra en el directorio raíz, en un fichero llamado ttsystem (que con las herramientas adecuadas podemos dividir en un fichero con el kernel y un archivo comprimido .cpio.gz con el resto del sistema Linux).

El proyecto OpenTom desarrolla una distribución Linux que puede usarse de forma alternativa al software incluido en TomTom. OpenTom incluye, entre otras cosas, servicio telnet (al que podemos acceder por ejemplo mediante bluetooth), un reproductor MP3 y el software necesario para visualizar una webcam (que sirva por ejemplo para ayudarnos a aparcar). La versión actual de OpenTom funciona bien en la mayoría de los modelos TomTom GO, pero presenta ciertos problemas en los modelos TomTom ONE (de los que al parecer hay varias versiones de hardware).

El sistema operativo OpenTom consta de varios ficheros:

  • Fichero ttsystem, que habrá que copiar al directorio raiz del dispositivo de almacenamiento (disco duro o tarjeta SD con formato FAT). Este fichero contiene el kernel y algunos ficheros y directorios del sistema Linux (init, /dev, /mnt)
  • Fichero root.cpio (que está comprimido con gzip aunque no tenga extensión .gz) que incluye el sistema Linux completo a excepción del kernel. Este archivo tendremos que copiarlo dentro del directorio /opentom del dispositivo de almacenamiento.
  • Opcionalmente un archivo comprimido app.tgz que copiaremos en el directorio /opentom

El fichero ttsystem de OpenTom incluye el kernel y parte del sistema Linux (programa init, directorios /dev y /mnt); el sistema se completa con un archivo root.cpio que habrá que copiar a /opentom

Requisitos previos y observaciones

Preparando una nueva tarjeta SD para hacer las pruebas

Para no correr riesgos las pruebas las hemos realizado con una tarjeta SD (en realidad una miniSD que se vende con adpatador para zócalos SD) de 1 GB de memoria, en lugar de usar la propia tarjeta SD del TomTom. No obstante, las pruebas realizadas nos confirman que no habría problema en usar la propia tarjeta de TomTom, eso sí, sacando previamente una copia de seguridad.

Usando el programa TomTom Home (suministrado al adquirir el navegador) hemos sacado una copia de seguridad que, a continuación, hemos restaurado en la tarjeta SD nueva para usarla en las pruebas. A partir de este momento, las distintas actualizaciones de ficheros en la tarjeta SD las hemos hecho en Guadalinex usando un multilector de tarjetas (SD y de otros tipos) para puerto USB.

Observación: reseteo del TomTom ONE

Al realizar pruebas, o simplemente al cambiar una tarjeta SD por otra, es muy posible que el TomTom deje de funcionar correctamente y que sea necesario resetearlo. Observemos que con el dispositivo encendido nunca deberemos extraer la tarjeta SD y que sólo podremos introducirla cuando se nos indique en la pantalla del mismo.

Describimos algunas situaciones típicas:

  • El TomTom no enciende. Extraemos la tarjeta SD y mantenemos pulsado el botón de encendido hasta que encienda. Si pasados unos 20 segundos no ha encendido, mentenemos pulsado el botón e introduciomos un pequeño alambre o similar por el orificio RESET situado en la parte inferior. Cuando veamos aparecer en la pantalla el logotipo de TomTom extraemos el alambre y seguidamente soltamos el botón de encendido. Al cabo de unos segundos aparecerá una pantalla que nos indicará que podemos introducir una tarjeta SD. Soltamos el botón de encendido e introducimos una tarjeta SD.
    • Si la batería del TomTom se ha descargado, este no encenderá y será necesario resetearlo después de haber cargado la batería durante un rato (al menos media hora).
  • No podemos apagar el TomTom. Introduciendo un pequeño alambre por el orificio RESET el aparato se apagará. Para volver a encenderlo, quizás tengamos que realizar el proceso de reseteo descrito anteriormente.

Herramientas imprescindibles

ttimgextract

Se trata de una utilidad que permite separar en sus componentes el fichero ttsystem (kernel por un lado y resto del sistema por otro) que contiene el sistema operativo TomTom

Podemos descargar el código fuente desde http://svn.opentom.org/opentom/trunk/ttimgextract/ttimgextract.c

Una vez descargado, lo compilaremos ejecutando el comando

gcc -o ttimgextract ttimgextract.c

y si queremos podemos copiarlo a /usr/local/bin por ejemplo

sudo cp ttimgextract /usr/local/bin

Para descomponer el fichero ttsystem ejecutaremos el comando

ttimgextract ttsystem

tras lo que aparecerán los ficheros zImage (el kernel) y root.gz. Si queremos explorar el sistema de archivos root.gz conviene que lo renombremos con extensión .cpio.gz, por ejemplo ttsystemRoot.cpio.gz

Véase también http://wiki.opentom.org/Ttsystem_images

untt

Es una herramienta con la misma funcionalidad que ttimgextract cuyo código fuente puede ser descargado desde http://igm.univ-mlv.fr/~allali/untt.tgz

mkttimage

Esta herramienta, cuyo código fuente viene incluido en el de la distribución OpenTom 0.0.3 sirve para crear el fichero ttsystem a partir de sus componentes.

Durante la compilación de OpenTom 0.0.3 se compilará mkttimage. Para descargar y compilar simplemente esta herramienta véase http://wiki.opentom.org/Mkttimage

Si usando untt o ttimgextract hemos descomprimido ttsystem en root.gz y zImage, podemos reconstrirlo usando el comando

mkttimage root.gz zImage > ttsystem

Compilador cruzado gcc-3.3.4_glibc-2.3.2.tar.bz2

El código fuente está disponible en http://www.maintech.de/download/opentom/gcc-3.3.4_glibc-2.3.2.tar.bz2

Código fuente opentom-0.0.3.tar.bz2

Podemos descargarlo desde http://www.maintech.de/download/opentom/0.0.3/opentom-0.0.3.tar.bz2

Parche para los modelos ONE

Según la información encontrada en la web de OpeTom, confirmada por nuestras pruebas, para que OpenTom 0.0.3 funcione correctamente en el modelo ONE, es necesario modificar la función fb_internal_setpix en todos los ficheros del código fuente donde aparece debido a que las dimensiones de la pantalla del modelo ONE son diferentes de los modelos GO.

Se trata de sustituir la definición original

static inline void fb_internal_setpix(int x, int y, int col)
{
   if(fb_rotate)
      fb[x * 240 + (239 - y)] = col;
      else fb[x + 240 * y] = col;
}

por esta otra

static inline void fb_internal_setpix(int x, int y, int col)
{
   if(fb_rotate)
      fb[x * 240 + (239 - y)] = col;
      else fb[x + 320 * y] = col;
}

Pruebas realizadas

Compilamos e instalamos OpenTom sin hacer ninguna modificación (sin parche y con kernel golinux-1008)

Con esta configuración TomTom ONE reinicia constantemente.

OpenTom, sin aplicar parche, con kernel golinux-tt1222

  • La pantalla aparece distorsionada y la parte inferior de la misma no se actualiza con el tapiz de OpenTom
  • El dispositivo bluetooth está operativo y podemos acceder al TomTom por telnet (estableciendo la conexión con el comando dund -c)
  • No podemos apagar el TomTom salvo introduciendo un pequeño alambre por el orificio de reseteo.
  • Despés de apagarlo, para volver a encender el dispositivo es necesario extraer la tarjeta y resetearlo.

OpenTom, aplicando el parche, con kernel golinux-tt1222 (resultado satisfactorio)

  • Aparece el tapiz de OpenTom y un mensaje con la dirección de hardware del dispositivo bluetooth.
  • El dispositivo bluetooth está operativo y podemos acceder al TomTom por telnet (estableciendo la conexión con el comando dund -c). La IP del TomTom es 192.168.254.1
  • No podemos apagar el TomTom salvo introduciendo un pequeño alambre por el orificio de reseteo.
  • Despés de apagarlo, para volver a encender el dispositivo es necesario mantener pulsado el botón de encendido, introducir un pequeño alambre por el orificio de reseto y esperar unos segundos sin extraer el alambre.

Instalando OpenTom MP3 Player

Para instalar MP3 Player descargamos el fichero ttmp3-20060215.zip. Al descmprimirlo encontraremos un fichero app.tgz y un directorio media (vacío) que deberemos copiar dentro del directorio /opentom de la tarjeta SD.En el directorio /opentom/media podemos grabar ficheros .mp3 para escucharlos en el TomTom

Arrancando el TomTom ONE con esta configuración vemos que el sistema OpenTom sigue funcionando igual que antes y que se inicia un programa que incluye reloj, posicionamiento GPS y reproductor MP3. El sonido del reproductor MP3 es pésimo. De momento no sabemos si el fallo es debido al programa de reproducción o a la configuración del kernel. Se supone que en los modelos GO el sonido es bueno (auque no hemos tenido ocasión de probarlo).

OpenTom con kernel golinux-tt1334

Tanto si aplicamos el parche como si no lo hacemos, el sistema no pasa de la pantalla de inicio de TomTom (manos cruzadas y carrtera). No se activa el servicio bluetooth.

OpenTom con kernel golinux-tt1340

Tanto si aplicamos el parche como si no lo hacemos, la pantalla aparece girada 90º y distorsionada, de modo que no tenemos ocasión de probar el reproductor MP3.

Retocando el sistema instalado

Una vez que hemos generado los ficheros ttsystem y root.cpio, podemos retocar este último para añadirle nuevas funcionalidades.

Para ello podemos hacer lo siguiente:

  • Sacamos una copia de seguridad (para no tener que volver a compilar): sudo cp root.cpio root.cpio.bak
  • Nos situamos en el directorio donde hemos generado el fichero root.cpio (subdirectorio opentom/image) y creamos un nuevo subdirectorio: sudo mkdir sistema
  • Nos situamos en el subdirectorio creado (cd sistema) y ejecutamos sudo cpio -i root.cpio < ../root.cpio
  • Ahora, dentro del directorio sistema tenemos el sistema Linux completo (a excepción del kernel, que se encuentra en el fichero ttsystem) que podemos retocar a nuestro gusto: podemos cambiar la clave del root (por defecto en blanco), los mensajes de inicio, la IP de la red bluetooth, instalar nuevos programas, añadir puntos de montaje (por ejemplo una partición ext3 de la terjeta SD), etc.
  • Una vez hechos los retoques, nos situamos dentro del directorio donde se encuentra el sistema (el directorio que hemos llamado sistema y ejecutamos sudo find * | sort | cpio --create --format=newc --quiet > ../root.cpio
  • Ahora usamos el nuevo fichero root.cpio para sobreescribir el que tenemos en el directorio /opentom de la tarjeta SD.

Enlaces

Buscando más información

Google (Ayuda)
Buscar en Internet Buscar en www.omerique.net

-- RicardoDeLosSantos - 02 Apr 2007

El pingüino ya no tiene frío
arriba


Estás aquí: TIC > TomTom

arriba

Copyright © 2004 por los autores que han contribuido al desarrollo de esta web. Todos los materiales son propiedad de sus respectivos autores.
Para cualquier consulta o sugerencia contactar con TWiki.WebMaster