HI

I just succeeded in installing ARM-Debian on 2GB SD card on TomTom GO 720

>From that, any package in debian is availabe and will work, including
web browsers, X11, compilers editors anything

The trickiest part is you need to modify kernel config to include
reiserfs filesystem, swap support and FPU emulation 

Reiserfs (or some other unix-grade efficient fs) is needed because
Debian needs symlinks priviledges that vfat doesn't provide

FPU is needed because many debian's binaries are not compiled as soft-float 
in the library but expect FPU, either hardware or emulated by kernel.

Swap is needed because 64MB can be short sometimes, I gave it 128MB swap

recompile new kernel using original source and the cross compiler
extract original ttsystem, replace it's kernel with the compiled one
and installation of Debian can proceeed...

All the tools are on opentom website and the kernel
source can be downloaded from tomtom directly.

Currently original ttn application is needed to setup bluetooth and
networking but probably someone of you will find a way to setup this
from Debian and call ttn as an application from ...

Anyway, here are my step-by-step notes that got me up to the point
that I can ssh to Debian inside a TomTom:

0. on tomtom, prepare opentom bluetooth console tools and
   setup on PC bluetooth networking server (dund), chack that you can login
   to tomtom and that utilites like editor and screen work.
   Also check that bluetooth console is working (serial login to tomtom
   over rfcomm)

1. compile new tomtom kernel with added reiserfs, swap and FPU kernel support,
   (compile them not as modules but in the kernel [*])
   use original kernel sources and original cross-compiler tools

2. from opentom website get the tools to extract original ttsystem file
   replece kernel with newly compiled arch/arm/boot/zImage and repack
   extracted cpio.z archive with the new kernel into new ttsystem file
   copy it in tomtom (rename old ttsystem)

3. with cfdisk create linux partition on tomtom's SD card (I used 2GB,
   one partition on the whole card).

4. create reiserfs on the sdcard with mkfs.reiserfs 
   Optionally now you can try immediately point 6. 
   and verify that everything works

5. make first stage debootstrap on the PC /tmp and copy it to the sdcard
   debootstrap --verbose --foreign --arch arm lenny /tmp/sdcard 
http://ftp.us.debian.org/debian
   The foreign option halts the debootstrap process before the chroot
   (foreign means it's building for another host system).

6. login to tomtom, start screen. mount the sdcard reiserfs to /mnt/movinand
   (if it had vfat, sdcard would be mounted automatically to /mnd/movinand)
   mount -o noatime /dev/mmcblk0p1 /mnt/movinand
   if you come so far, the rest is easy

7. from tomtom's shell (busybox) mount proc and devpts filesystems
   (you can do it even though they are already mounted)
   mount -t proc none /mnt/movinand/proc
   mount -t devpts none /mnt/movinand/dev/pts
   during installation phase check that they are still mounted,
   if not mount them again. Typically rm -rf fails if there's no
   /proc mounted and some packages won't install without /dev/pts

8. edit script debootstrap/functions and replace line:
   in_target mount -t proc proc /proc
   with this:
   in_target_nofail mount -t proc proc /proc
   because mounting /proc command will fail, but we have mounted it already by 
other
   means

9. finish debian's second stage (this takes time, maybe half an hour)
   keep tomtom awake by pinging it each 15 seconds
   ping -i 15 192.168.72.1 and
   tapping on the next screen every now and then
   (otherwise it would enter suspend state and loose network connection)
   add some path probably that's missing
   export PATH=$PATH:/usr/sbin
   chroot /mnt/movinand
   you should get shell prompt now like
   sh-3.2# /debootstrap/debootstrap --second-stage
   If debootstrap succeeds, the last line it prints will be:
   I: Base system installed successfully
   congratulations

10. follow instructions http://emqbit.com/deboostrap-debian
    on how to setup system (hostname, passwords, etc)

Best regards,
Davor Emard

Reply via email to