OpenTom is a tiny, open source Linux distribution for TomTom™ devices.
- Install the following dependencies: subversion chrpath fluid imagemagick xsltproc
- Set the
ROOT
envvar inget_cross_env.sh
source get_cross_env.sh
- Run
make
to start the initial OpenTom build - This may take a while; consider getting yourself a coffee ;-)
- Copy
build/ttsystem
(boot image) to the root folder of your SD card (backup the original one first!) - Copy the contents of
opentom_dist/
to a (new) folder calledopentom
on your SD card
- Run
make extra
and copy the files as described above - For dosbox, dune2, gnuboy, linapple, and scummvm games: Take it from internet and copying it into opentom/share subdirectories.
- For coolreader: Run
sudo updatedb
in case the default font is not found. - For Navit, you need the TomTom gltt (see below, that read raw GPS data from /dev/gps and send it to /var/run/gpspipe).
- For kernel:
cd kernel; make menuconfig
- For busybox:
cd build/busybox*; make menuconfig
- For initramfs: do your changes and
touch initramfs/etc/rc
- Then: return to
$ROOT
and runmake ttsystem
- Just extract you source into
$ROOT/src
(for libraries) orapplications/src
(orbuild
if no patches should be applied) - Run
./configure --prefix=$ARM_APPROOT --host=$T_ARCH
(adapt accordingly in case the project is not based on Autoconf) - Copy the final executable into
$(TOMDIST)/bin
- Rune
make verif_dist
(inside$ROOT
directory) to update used shared libs inopentom_dist
- Copy the files to your TomTom device
- If it works as you wish, make a patch (with
make patch-<my_app_dir_name>
) and updateapplications/Makefile
- When you boot your TomTom with OpenTom, you can directly use Telnet to login in as root from USB
- Use the built-in FTP server to update your files
strace
andgdb
are ready to be used to debug your programs
- Create
$ROOT/i386
directory - Extract, configure and install: microwin, nxlib (with libNX11), SDL, Fltk, ... (with
LDFLAGS=-L/usr/local/lib --prefix=/usr/local
) - Try NetBeans to perform you developments?
Use an ext2 partion on your SDcard to replace (and free) initramfs with busybox pivot_root/chroot:
- Use
fdisk
to create two partitions on your SD card: partion1=vfat(TomTom), partition2=ext2(10Mo?) - Copy
ttsystem
into SD.part1 and verify it boots, if not try to copy gns and program directory from original TomTom and others... - When it boots:
- Verify that busybox include chroot and pivot_root,
- Copy the unmodified
initramfs/*
into linux SD partition, with/var/*
linked to/tmp
- Copy the
configs/etc_rc_ext2
toSD.part2/etc/rc
- Verify that kernel include ext2 filesystem support
- Copy
configs/etc_rc_file.pivot_root_ext2
toinitramfs/etc/rc
make ttsystem
- Then on partition 1 copy
build/ttsystem
and theopentom_dist
directory on SD.part1 - If something goes wrong, try
configs/kernel_config.console_ext2
to activate kernel FrameBuffer console
- Copy your TomTom™
ttsystem
file into$ROOT/src
(e.g.cp /mnt/TOMTOM/ttsystem $ROOT/src/ttsystem.tomtom
) cd $ROOT/src
ttimgextract ttsystem.tomtom
mkdir -p ttsystem.tomtom.initramfs
cd ttsystem.tomtom.initramfs
gunzip -c ../ttsystem.tomtom.0 | sudo cpio -i
- Now the boot ramdisk of your TomTom is extracted to
$ROOT/src/ttsystem.tomtom.initramfs
and the TomTom kernel is in$ROOT/src/ttsystem.1
- Then:
cp $ROOT/src/ttsystem.tomtom.initramfs/bin/gltt $TOMDIST/bin
- Fix espeak => portaudio => OSS, that currently don't work
- Patch spreadsheet to be adapted to TomTom screen
- Checkout our documentation in
docs/
- Take a look at the shell scripts, Makefiles and patches
- Feel free to send an email in case of a problem or if you found betters URLs for sources.txt (opentom@free.fr).
- Clément Gerardin (opentom@free.fr)