23 Apr 2007 jserv   » (Master)

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 #1 PREEMPT Sat Apr 14
07:40:05 UTC 2007 armv4tl unknown
It 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!

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!