OpenJDK on BUG 1.3 Devices *Update: now with shark*

by kengilmer

For awhile now, behind the scenes we’ve been working on getting a high-quality build of OpenJDK ready for our new BUG 2.0 device.  This VM offers great performance and up-to-date features on parity with what’s available on the desktop.  Currently, this package is available for Angstrom distros.  The BUG 1.3 device uses Poky, another variant of OpenEmbedded.  I’ve adapted the recipes to build the OpenJDK (without Shark) such that it’s compatible with BUG 1.3.  There are quite a bit of dependencies and sometimes you have to force a few packages but eventually you will get a working OpenJDK on your BUG.

OpenJDK and dependencies are currently available at 

To install, add this custom package repository to your ipkg config.  Edit the file /etc/ipkg.conf and add this line:

src/gz armv6-openjdk

Now update the local package metadata:

$ ipkg update

Now install OpenJDK:

$ ipkg -t /home/root install -force-depends rhino

Interested in using the CACAO VM with OpenJDK?  Just install the package:

$ ipkg -t /home/root install -force-depends openjdk-6-vm-cacao 

How about shark, which uses LLVM to JIT the bytecode:

$ ipkg -t /home/root install -force-depends openjdk-6-vm-shark


Ignore warnings about librhino.  After these packages you should be able to run OpenJDK.

root@BUG:~# java -cacao -version
java version "1.6.0_18"
IcedTea Runtime Environment (IcedTea6 1.8) (6b18-1.8)
CACAO (build 0.99.4, compiled mode)
root@BUG:~# java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8)
OpenJDK Zero VM (build 14.0-b16, mixed mode)

If you wish to have BUG use OpenJDK instead of PhoneME on boot, modify the /etc/init.d/concierge RC script to point to /usr/bin/java instead of java-cdc.

Thanks to Henning Heinold (woglinde) on for the help.  For future builds, here is the OE patch.