My favorites | Sign in
Project Logo
                
Search
for
Updated Jul 16, 2007 by pguyot
NokiaBuildInstructions  
Specific build instructions for the Nokia Internet Tablet (OS2006+)

Building Einstein for the Nokia Internet Tablet on MacOS X

To build Nokia binaries, you need a cross compiler. The previous method was to use the official Maemo SDK (scratchbox compilers) under Linux. The trick was to pass -I and -L options to the compilers or run them inside the scratchbox chroot (but in this case, you need to put Jam in the chroot). I did not find this very convenient, especially considering that I had to run Linux inside VMWare Fusion...

You can now directly build compatible cross compilers with MacPorts.

  1. Install MacPorts
  2. Install the cross compiler with:
  3. sudo port install arm-none-linux-gnueabi-gcc
  4. Get K with cvs and compile it with jam -starget=nokia2006
  5. Get Einstein with subversion and compile it with jam -starget=nokia2006 -sK=<path_to_K> -sjittarget=GENERIC

You can find more details about the compilation process in the general BuildInstructions.

Notes

The default JIT Target (ARMLE) doesn't work yet. It compiles, but then Einstein crashes. This is why you have to mention -sjittarget=GENERIC in the command line.

I believe that the Nokia 800 with OS2007 has a different version of libXau. It's now libXau.so.6 instead of libXau.so.0. The above method will compile against libXau.so.0 (which I directly copied from a Nokia 770 with OS2006), and therefore the binary will not run. I would be grateful if someone with a Nokia 800 and OS2007 could check that and possibly fix the problem by either:

  1. Create a specific nokia2007 target with the new libXau
  2. or try to use -L instead, so that the binary will run on both platforms and dynamically choose the proper binary.


Comment by stevenfrank880, Feb 22, 2009

If you get an error installing arm-none-linux-gnueabi-gcc about iconv_close being an undefined symbol:

Edit /opt/local/var/macports/sources/rsync.macports.org/release/ports/cross/arm-none-linux-gnueabi-gcc/Portfile

Change:

configure.cc "cc -no-cpp-precomp"

To:

configure.cc "cc -no-cpp-precomp -I${prefix}/include"

(learned from: http://www.nabble.com/-16662:-arm-none-linux-gnueabi-gcc-error-td19694093.html )

Comment by stevenfrank880, Feb 23, 2009

I can confirm that replacing libXau.so.0 with libXau.so.6 gives you a binary that will run on an N800 running OS2008 (Diablo). But I don't think I know enough about Jam to submit a competent patch.

I just copied /usr/lib/libXau.so.6 off the device into maemo2006/usr/lib of Einstein, and replaced the reference to .so.0 in the Jamfile.


Sign in to add a comment
Hosted by Google Code