Cacao VM running on OpenMoko
The FIC guys gave me one handset of GTA01 (OpenMoko/Neo1973 machine) last month, and it brings a lot of joy and fun for hacking to me.
First, system emulator for OpenMoko based on qemu is really exciting, and I prepared a working Win32 version of openmoko emulator some days ago (look up the wiki for details). Then, back to Free Java world, I met several hackers around the world in #kaffe, #classpath, and #cacao IRC channel. Since I had portd Kaffe to Xscale-based mobile phones, I decide to take Cacao for a try.
After some slight modifications (with the help from twisti), Cacao works on OpenMoko GTA01, and here is the output for typical "Hello World" application in Java:
root@fic-gta01:/var/tmp$ cd /tmp/cacao root@fic-gta01:/var/tmp/cacao$ ls *.class fp.class hello.class root@fic-gta01:/var/tmp/cacao$ cd bin root@fic-gta01:/var/tmp/cacao/bin$ ./cacao -cp .. hello Hello world root@fic-gta01:/var/tmp/cacao/bin$ uname -a Linux fic-gta01 2.6.20.7-moko8 #1 PREEMPT Sat Apr 14 07:40:05 UTC 2007 armv4tl unknownIt is based on Cacao SVN (along with GPL'd ARM jit engine) + GNU Classpath version 0.95. However, I still manage to let gtk-peer work on Cacao inside GTA01 device. But I am of the opinion that it is really a good start point for joint of the power from Free Java (GNU Classpath, Cacao, Kaffe, etc.), OpenMoko, and Embedded Linux.
Also, I met guillaum1 in #cacao, who is the developer of MIDPath, and he suggested me to try the combination of cacao-cldc (cacao without GNU Classpath) + MIDPath. The design of MIDPath is very flexible, and it allows to have MIDP2 working on top of cacao-cldc (without Classpath) or standard cacao (i.e with Classpath). I will do that later.
In addition, some friends in Taiwan and I set up a new laboratory, named "Open RazzmatazZ Laboratory" (OrzLab), which funds an environment for freedom and creativity based on Free Software and Open Source efforts. We are looking for some improvements for OpenMoko, such as CJK (Chinese, Japanese, and Korean) text processing and input methods, Java VM integrations, etc. I do really enjoy the fun of hacking!