Navit

From OpenTom

Jump to: navigation, search

Contents

Navit

Navit is an open source (GPL) car navigation software for Linux systems. Navit will display your position on a 2D map, or as a 3D visualization from GPS sensor data - well, you should know Tomtom by now. Navit is based on map data provided by OpenStreetMap.

Compiling

To compile Navit, the correct tool chain is ultimate. What I've tried so far is:

attempt one

  • checkout navit from subversion
  • compile navit with native (x86_64) support
./autoconf.sh
./configure.sh
make

->it works on my PC

attempt two

  • install toolchain provided by Tomtom.
  • compile navit with arm-linux support
./autoconf.sh
./configure.sh
make

->it does not work at all (was compiled for x86_64)

attempt three

  • install toolchain provided by Tomtom.
  • compile navit with arm-linux support (./autoconf.sh; configure.sh; make)
./autoconf.sh
env CFLAGS="-I/usr/local/cross/gcc-3.3.4_glibc-2.3.2/include" \
    LDFLAGS="-L/usr/local/cross/gcc-3.3.4_glibc-2.3.2/lib" \
    ./configure --host=arm-linux
make

->It does not get compiled at all. Seems like libraries like zlib are missing.

So we're back to building the toolchain. Hints are welcome.


building toolchain (so far (not far enough))

  • zlib
./configure
make
cp zlib.h /usr/local/cross/gcc-3.3.4_glibc-2.3.2/include
cp zconf.h /usr/local/cross/gcc-3.3.4_glibc-2.3.2/include


You need the library too!


  • glib
./configure --host=arm-linux
make
no further clue where to copy which files

(copy the files under /opt/crosstool/...arm-linux...)

You need the library too!


  • If you install Navit under Ubuntu, you'll see the dependencies in synaptic under properties of that package. It's a whole list, libsdl is there too.. So I suppose you need to fetch sources of some of these libs, and build them with you arm cross compiler...

Or better even here: http://packages.debian.org/experimental/navit


  • I have tried to copy netbsd binaries that should work for the TomeTom, but in the TT console I always get "/mnt/sdcard/mystuff/bin/gawk" not found when I try to execute it, even if I'm in the directory /mnt/sdcard/mystuff/bin/ and execute ./gawk ... What could be the problem?? Must each application be registered in the SDKregistry?? And how??


  • I just build zlib version zlib-1.2.3 using my own cross compile env (made with the crosstool utility)


export CFLAGS="-I/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/include/"

export LDFLAGS="-L/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/lib/"

export CC="/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc"

sh autogen.sh

./configure --host=arm-linux  --prefix=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/

make

make install


  • Link to "building for arm-linux"

Could this one help you? [1]

You need to build libraries too, not only copy include files from your PC ...

I tried to use the debian sources for navit, but I needed: cannot find -lgmodule-2.0  ?? Cannot find these sources at the moment ...

Getting ready-made Applications

You can (and probably should) compile the programs. But if you are lazy, you can take the binary files out of the packages of a ARM-linux distribution like http://www.netwinder.org/allrpms.html . (To extract the files from the rpm you can use following script:)

 rpm2cpio $1 | cpio -i -d

Be aware that the files in the distribution mentioned above are compiled with hardware floating-point, which is not available on the TomTom. So any application which uses floating point operations will fail with illegal instruction. On the other hand, if you compiled some sources on your own and want to link it to any .a file out of this distro, it will fail. dynamically linking to .so files will work, but the library must not use floatingpoint operations (instead it should use floating foint simulation, also called soft-float). --Bello 09:45, 18 January 2008 (CET), Copied from the Talk:TomTom Console page.

Personal tools