Code Monkey home page Code Monkey logo

navittom's Introduction

OpenTom

Build Status Latest Pre-Built Image

NavitTom is a tiny, open source Linux distribution for TomTom™ devices. Its includes Navit with specific Configurations.

Planned Features are:

  • Download Maps over Bluetooth Internet connection
  • Automatic update to the last version of Navit

Tested Devices

team member device
jkoan TomTom One v2 (4N00.004.2)
jkoan TomTom One XL 2 (4S00.000.2)

Getting Started

  • Install the following dependencies: subversion chrpath fluid imagemagick xsltproc
  • Set the ROOT envvar in get_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 called opentom on your SD card

How to build extra applications

  • 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).

How to modify ttsystem

  • 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 run make ttsystem

How to add some new applications

  • Just extract you source into $ROOT/src (for libraries) or applications/src (or build 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 in opentom_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 update applications/Makefile

On the TomTom side

  • 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 and gdb are ready to be used to debug your programs

Creating Nano-X test platform on your system

  • 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?

How to free some memory (~3-4Mo on 32!)

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 to SD.part2/etc/rc
  • Verify that kernel include ext2 filesystem support
  • Copy configs/etc_rc_file.pivot_root_ext2 to initramfs/etc/rc
  • make ttsystem
  • Then on partition 1 copy build/ttsystem and the opentom_dist directory on SD.part1
  • If something goes wrong, try configs/kernel_config.console_ext2 to activate kernel FrameBuffer console

How to install gltt from TomTom ttsystem file (for Navit)

  • 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

To-Do

  • Fix espeak => portaudio => OSS, that currently don't work
  • Patch spreadsheet to be adapted to TomTom screen

Support

  • 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 ([email protected]).

Authors

navittom's People

Contributors

george-hopkins avatar jkoan avatar gefin avatar bignaux avatar richardh-code avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.