Sat Jul 25 12:29:01 CEST 2009

Debian eabi

So it's clear that in order to run the TI code on a system with debian
libs I need to install the eabi version.

It looks like (yeah!) the toolchain is called `eabi' but the distro is
called `armel'.

  debootstrap --arch armel --foreign lenny debian-armel http://debian.i/debian

The 2nd stage needs to be executed on the arm:

  chroot /debian-armel
  /debootstrap/debootstrap --second-stage

Doesn't work: Illegal instruction.

Now I'm really confused.  This probably needs the CONFIG_AEABI=y and
related options for emulation in the kernel config.  But what I don't
understand is why it seems that the TI .a files use the new abi
(because gcc-arm-gnueabi-gcc is able to link it) that doesn't seem to
be the case.  This is confusing stuff..

Let's try to build the kernel with eabi support.  Hmm.. looks like
this needs a newer GCC.  Maybe I use the debian GCC to compile it?
First it needs uboot:

  apt-get install uboot-mkimage
Then it needs the whole shebang specified:

  make -j 6 \
    CC=arm-linux-gnueabi-gcc \
    LD=arm-linux-gnueabi-ld \
    AR=arm-linux-gnueabi-ar \
    AS=arm-linux-gnueabi-as \
    NM=arm-linux-gnueabi-nm \
    OBJCOPY=arm-linux-gnueabi-objcopy \
    OBJDUMP=arm-linux-gnueabi-objdump \
    INSTALL_MOD_PATH=/tmp/osd2 \
    uImage modules_install

I first tried with only CC but that then used some of the old
toolchain's components that were in the path.

Ok.  It boots and runs the eabi binaries.  /debian-armel is now
bootstrapped.  Let's see if it runs the scheme.  It starts the app,
but I get this:

CMEM Error: init: Failed to open /dev/cmem: 'No such file or directory'

Looks like there are a couple of problems with the new kernel..  cmem
and dsplink need to be loaded.  see /etc/init.d/ti-modules

[1] http://wiki.debian.org/ArmEabiHowto
[2] entry://20090725-113128