OpenTom release
From OpenTom
Contents |
DISCLAIMER
NEVER USE YOUR ORIGINAL TOMTOM SD CARD WITHOUT MAKING A WORKING AND TESTED BACKUP. THIS BACKUP IS OBVIOUSLY ESSENTIAL IF YOU'RE TRYING OPENTOM ON A GO 700 (HARDDISK) MODEL.
Neither we personally nor maintech GmbH are liable for any damages caused by use of OpenTom. We DO NOT guarantee for anything.
OpenTom release 0.0.3
This release runs on GO 500, GO 700, ONE and RIDER. Classic works as well, but needs a serial console to be useful. The GO 300 just reboots infinitely. There is a new revision of TomTom ONE (Hardware Type V2), which also reboots infinitely.
OpenTom 0.0.3 gives telnet access via Bluetooth if your device has the hardware (i.e. not on Classic).
We have prebuilt the system for you:
To rather compile everything yourself, you need to download the build environment and the compiler toolchain.
- OpenTom environment: opentom-0.0.3.tar.bz2 (38 MB)
- compiler toolchain: gcc-3.3.4_glibc-2.3.2.tar.bz2 (53 MB)
As these files are quite large, we recommend using a download manager (or just `wget -c`). After download, check the files' integrities by calculating their MD5 sums.
$ md5sum opentom-0.0.3.tar.bz2 gcc-3.3.4_glibc-2.3.2.tar.bz2 9d5e87157adbb21db6f2535875a0e96d opentom-0.0.3.tar.bz2 12f38702b19ac6185596e124b66bc56e gcc-3.3.4_glibc-2.3.2.tar.bz2
Installing the build environment
Before you can start hacking around in this (so far) pretty basic OpenTom toolbox, you have to complete the following steps:
Install the ARM compiler toolchain in /usr/local/cross. Make sure you're root.
$ su - (now enter your root password) # cd /usr/local # tar xvjf /tmp/gcc-3.3.4_glibc-2.3.2.tar.bz2 # exit
Unpack the OpenTom distribution into your home directory (or any other directory of your choice).
$ tar xvjf /tmp/opentom-0.0.3.tar.bz2
Installing prebuilt binaries on the GO
You'll find prebuilt files in the image directory and on this website. Copy ttsystem into the root directory and root.cpio into /opentom of an empty SD card. Then press the reset button next to the bottom connectors on the device. Finally, power on the device.
Power off only works by resetting the device again. Sorry, the RTC time will be lost afterwards.
Starting the build process
Make sure the ARM toolchain is in your shell's search path:
$ export PATH="/usr/local/cross/gcc-3.3.4_glibc-2.3.2/bin:$PATH"
To compile OpenTom just type
$ make
in the directory where you unpacked the distribution file.
Note that you need a working toolchain for your host system ("gcc -v" should not end in an error). Several other other utilities are also needed during build. You'll need to enter your root password because creation of device nodes is not possible without root permissions. If you don't trust our scripts, read them or use fakeroot (http://fakeroot.alioth.debian.org/).
Installing the system and connecting
TomTom Go300/500:
Prepare a SD card with a primary partition of type 0x0C (WIN32) and formatted with a FAT32 filesystem. If the partition table is not valid, the system will not boot.
Note: Maybe an SD card is not enough. See SD Card driver.
The partition is not restricted to the first sectors of the media: on my TomTom original SD, there are two other, empty partitions before and after the real one.
Copy image/ttsystem to / and image/root.cpio to /opentom on an SD card or your mounted TomTom GO 700 harddisk.
Press reset and power on the GO. After a few seconds you'll see the maintech logo and after another while the BD address of the device is written in the message area of the screen.
To connect your GO via Bluetooth you have two options: dund and RFCOMM.
Connecting using dund
Connect and create a network link. When the link is up you can telnet into your GO. You need a working Bluetooth subsystem on your Linux workstation.
$ dund --connect 00:13:6c:b1:f0:a7
The BD address will be displayed when OpenTom has booted up. If asked for the Bluetooth pairing key, enter 0000 (four zeros). After a successful connect, the GO will be 192.168.254.1 and your PC will have the IP number 192.168.254.2. Now you can telnet into your GO:
$ telnet 192.168.254.1
Enter "root" at the login prompt.
Connecting using RFCOMM
The second option is to connect the GO directly using the RFCOMM protocol.
$ rfcomm connect 0 00:13:6c:b1:f0:a7
After that you can open your terminal program (e.g. minicom) and use the device /dev/rfcomm0 like any other serial port on your computer.
It is not possible to connect via both ways at the same time. But it is possible to use Windows to connect to the GO via this trick :-)
Enjoy and bring us lots of your own developed programs!
Christian & Thomas
Patch for TomTom ONE
Otinit, splash and dspmsg from OpenTom 0.0.3 do not work on the TomTom ONE. To make this release work, you need to replace the functions
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;
}
with
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;
}
Bug fixing to manage TomTom RIDER
Change RAIDER to RIDER in fb.c (and possibly in other sources including this string).
A recompiled version of ttsystem and root.cpio for the TomTom Rider (v1) can be found here [1]. This fix should also work for TomTom ONE (above fix is included). (splash screen is no longer scrambled and in the right direction, RAIDER has been changed to RIDER):

