Newton & Nokia 770 & Tech 18 Jul 2007 12:01 am
Building Open Einstein
Here are some more detailed instructions on getting Open Einstein built on MacOSX Intel, using the JAM complier and targeting the Nokia 770. I also built it for MacOSX, to run locally on my macbook.
The published directions are here, and you should read them first and familiarize yourself with them.
Install MacPorts
Open a terminal and then use macports to install the following packages:
$ sudo port install gettext $ sudo port installlibffi $ sudo port install jam $ sudo port install arm-none-linux-gnueabi-gcc
Then you must add
/opt/local/bin
to your $PATH on the Mac (edit .bash_login in your home directory), then restart your terminal or read in the new bash_profile.
Pull down Klibs and Build
K is located at SourceForge (http://sourceforge.net/projects/KLibs/)
$ cvs -d:pserver:anonymous@klibs.cvs.sourceforge.net:/cvsroot/klibs login [Enter] for password $ cvs -z3 -d:pserver:anonymous@klibs.cvs.sourceforge.net:/cvsroot/klibs co -P K $ cd $PATH_TO_KLibs/_Build_/Jam $ jam -starget=nokia2006
Klibs should build with out problems. If you want to build for the Mac, just leave off the -starget parameter.
Pull down Open Einstein and Build
$ svn checkout http://einstein.googlecode.com/svn/trunk/ einstein $ cd einstein/Einstein/_Build_/Jam $ jam -sK=$PATH_TO_KLibs -starget=nokia2006 -sjittarget=GENERIC
Now there is a new folder in the /_Build_/Jam directory called build.ARM-LINUX-Nokia2006. This folder will contain the einstein binary for the Nokia 770.
Move files over to 770
You need three files:
[You should set up sshd on 770, change password of 'user' to something you know, change the ip address below to match your 770 local ip. Use ifconfig -a to check the local 770 ip.]
Now copy the files:
$ scp $PATH_TO_EINSTEIN/_Build_/Jam/build.ARM-LINUX-Nokia2006/einstein user@192.168.155.155: $ scp $PATH_TO_EINSTEIN/_Data_/Einstein.rex user@192.168.155.155: $ scp $NEWTON_ROM user@192.168.155.155:
Once they are copied over, you can start Open Einstein like this:
/home/user # ./einstein -l log2 -m 737041 . Welcome to Einstein console. This is Einstein Platform 2007. Creating image... Max units count = 986 Max units count = 1026 Booting... Type help for help on available commands. einstein> power
And you should see the Newton Start up on your device. Below is a screen shot of the Newton running on my MacBook, in Xwindows:

9 Responses to “Building Open Einstein”
Leave a Reply
You must be logged in to post a comment.

on 18 Jul 2007 at 12:07 pm 1.framerate said …
Will this also work for N800, do you think?
on 18 Jul 2007 at 12:11 pm 2.dillera said …
Paul G. says no, not with out a little hacking. His quote from http://code.google.com/p/einstein/wiki/
NokiaBuildInstructions:
“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. ”
If you have a N800 w/ 2007 it sounds like you can try– I’m sure Paul will help. Hopefully he sees this post and may reply to it.
on 18 Jul 2007 at 12:12 pm 3.dillera said …
Then again, if you have ITOS 2006 on your N800, it should work fine.
on 18 Jul 2007 at 12:28 pm 4.framerate said …
Well I’m definitely running the latest version of 2007 :/
that’s too bad. Maybe I’ll give it a shot, after I finish the other 2 N800 projects I keep putting off
on 24 Jul 2007 at 10:45 pm 5.770NoBuild said …
Thanks for the directions, I followed them but did not get a binary. Instead I get the following failure, any help greatly appreciated!
–Peter
…found 515 target(s)…
…using 63 temp target(s)…
…updating 6 target(s)…
C++ build.ARM-LINUX-Nokia2006/TX11ScreenManager.cp.o
arm-none-linux-gnueabi-g++-2005q3 -c -o “build.ARM-LINUX-No
kia2006/TX11ScreenManager.cp.o” -I/usr/X11R6/include/ -DTARGET_OS_L
INUX=1 -Wall -Wno-multichar -Wno-unknown-pragmas -W -Wshadow -Wpoin
ter-arith -Wwrite-strings -Wconversion -DRELEASE=1 -DPA_USE_COREAUD
IO=0 -DPA_LITTLE_ENDIAN=1 -DWORDS_LITTLEENDIAN=1 -DSIZEOF_SHORT=2 -
DSIZEOF_INT=4 -DSIZEOF_LONG=4 -I../../libffi-nokia2006/include -O
-I”/Users/peter/K” -I”../../portaudio//pa_common” -I”../..” -I”../.
./Emulator” -I”../../Emulator/JIT” -I”../../Emulator/ROM” -I”../../
Emulator/Screen” -I”../../Emulator/Serial” -I”../../Emulator/Sound”
-I”../../Monitor” -I”../../_Tests_” -I”../../app” -I”../../Emulato
r/JIT/Generic” “../../Emulator/Screen/TX11ScreenManager.cp”
…failed C++ build.ARM-LINUX-Nokia2006/TX11ScreenManager.cp.o …
…skipped libeinstein.a for lack of libeinstein.a(TX11ScreenManage
r.cp.o)…
C++ build.ARM-LINUX-Nokia2006/UScreenTests.cp.o
arm-none-linux-gnueabi-g++-2005q3 -c -o “build.ARM-LINUX-No
kia2006/UScreenTests.cp.o” -I/usr/X11R6/include/ -DTARGET_OS_LINUX=
1 -Wall -Wno-multichar -Wno-unknown-pragmas -W -Wshadow -Wpointer-a
rith -Wwrite-strings -Wconversion -DRELEASE=1 -DPA_USE_COREAUDIO=0
-DPA_LITTLE_ENDIAN=1 -DWORDS_LITTLEENDIAN=1 -DSIZEOF_SHORT=2 -DSIZE
OF_INT=4 -DSIZEOF_LONG=4 -I../../libffi-nokia2006/include -O -I”/U
sers/peter/K” -I”../../portaudio//pa_common” -I”../..” -I”../../Emu
lator” -I”../../Emulator/JIT” -I”../../Emulator/ROM” -I”../../Emula
tor/Screen” -I”../../Emulator/Serial” -I”../../Emulator/Sound” -I”.
./../Monitor” -I”../../_Tests_” -I”../../app” -I”../../Emulator/JIT
/Generic” “../../_Tests_/UScreenTests.cp”
…failed C++ build.ARM-LINUX-Nokia2006/UScreenTests.cp.o …
…skipped EinsteinTests for lack of libeinstein.a…
C++ build.ARM-LINUX-Nokia2006/TCLIApp.cp.o
arm-none-linux-gnueabi-g++-2005q3 -c -o “build.ARM-LINUX-No
kia2006/TCLIApp.cp.o” -I/usr/X11R6/include/ -DTARGET_OS_LINUX=1 -Wa
ll -Wno-multichar -Wno-unknown-pragmas -W -Wshadow -Wpointer-arith
-Wwrite-strings -Wconversion -DRELEASE=1 -DPA_USE_COREAUDIO=0 -DPA_
LITTLE_ENDIAN=1 -DWORDS_LITTLEENDIAN=1 -DSIZEOF_SHORT=2 -DSIZEOF_IN
T=4 -DSIZEOF_LONG=4 -I../../libffi-nokia2006/include -O -I”/Users/
peter/K” -I”../../portaudio//pa_common” -I”../..” -I”../../Emulator
” -I”../../Emulator/JIT” -I”../../Emulator/ROM” -I”../../Emulator/S
creen” -I”../../Emulator/Serial” -I”../../Emulator/Sound” -I”../../
Monitor” -I”../../_Tests_” -I”../../app” -I”../../Emulator/JIT/Gene
ric” “../../app/TCLIApp.cp”
…failed C++ build.ARM-LINUX-Nokia2006/TCLIApp.cp.o …
…skipped einstein for lack of libeinstein.a…
…failed updating 3 target(s)…
…skipped 3 target(s)…
on 24 Jul 2007 at 11:13 pm 6.770NoBuild said …
Whoops, noticed the No such file complaints about the X headers, so I installed the X11 SDK, and no I get loads of these errors:
from ../../app/TCLIApp.cp:53:
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:245: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:251: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:254: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:258: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:262: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:267: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:270: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:275: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:280: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:285: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:290: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:295: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:299: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:304: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:313: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:316: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:320: error: `__locale_t’ has not been declared
/opt/local/lib/gcc/arm-none-linux-gnueabi/3.4.4/../../../../arm-none-linux-gnueabi/sys-include/wctype.h:325: error: `__locale_t’ has not been declared
arm-none-linux-gnueabi-g++-2005q3 -c -o “build.ARM-LINUX-Nokia2006/TCLIApp.cp.o” -I/usr/X11R6/include/X11 -DTARGET_OS_LINUX=1 -Wall -Wno-multichar -Wno-unknown-pragmas -W -Wshadow -Wpointer-arith -Wwrite-strings -Wconversion -DRELEASE=1 -DPA_USE_COREAUDIO=0 -DPA_LITTLE_ENDIAN=1 -DWORDS_LITTLEENDIAN=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -I../../libffi-nokia2006/include -O -I”/Users/peter/K” -I”../../portaudio//pa_common” -I”../..” -I”../../Emulator” -I”../../Emulator/JIT” -I”../../Emulator/ROM” -I”../../Emulator/Screen” -I”../../Emulator/Serial” -I”../../Emulator/Sound” -I”../../Monitor” -I”../../_Tests_” -I”../../app” -I”../../Emulator/JIT/Generic” “../../app/TCLIApp.cp”
…failed C++ build.ARM-LINUX-Nokia2006/TCLIApp.cp.o …
…skipped einstein for lack of libeinstein.a…
…failed updating 3 target(s)…
…skipped 3 target(s)…
Help?
on 24 Jul 2007 at 11:34 pm 7.770NoBuild said …
OK, sorry for the voluminous comments, I thought I was too tired to fix it myself, and I was almost right.
I caused the second problem by editing the Jamfile to have C++FLAGS += “-I/usr/X11R6/include/X11″
on 26 Jul 2007 at 4:50 pm 8.dillera said …
It found my Xlibs automatically… so did it build or not?
Also, I’m assuming you built Klib beforehand.
on 01 Sep 2007 at 1:10 pm 9.stevenf said …
I just built it using your exact instructions above, and it the binary runs on the N800 fine. However, it never seems to open a display.
I’m using the 717006 ROM, and I can get as far as the einstein> prompt, but issuing the “power” command doesn’t cause the UI to appear. In fact, nothing happens.
Any ideas on what I should try?