Linux and ARM Java VM's

Has anyone gotten Ignition clients to run on an ARM linux device yet (specifically on an Cortex-A8 processor)? Is OpenJDK sufficient for the JavaVM or do we need the official Oracle JRE?

It would be awesome to have some touchpanels like Technexion’s th-1535 running a native client.

We have an A5 linux box around here that we got it running on, but it’s not something you’ll be able to get running easily on your own right now.

It requires using a custom shell script instead of the service wrapper to start Ignition (not that hard), and an ignition-arm*.so file compiled specifically for that platform (impossible for you to do youself).

KSB has plans to sell an ARM-based data collection box in the near future, maybe Kyle can step in and give you more info.

Edit: I’m talking about running a gateway. Oops. Running a client should be a bit easier, and won’t require the shell script or native binary. We have an A7 tablet here that runs the client like a champ.

No need to run the gateway. Just want the client. If you haven’t guessed already, this image put the idea into my head:

I was thinking about running a custom build of Angstrom (a derivative of OpenEmbedded) on one of those touch panels, so anything our friends at Oracle could pass on about the tablet they fiddled with for Nuremberg would be extremely useful.

What this comes down to is that there is a glut of cheap (Chinese) displays and interfaces based on the BeagleBoard either already on the market or soon to be entering the market. If there is an easy way to get a client running on an ARM Cortex-A8 chip, then the sky is the limit for cheap touchscreen displays and tablet type devices.


Take a look at these: … video-out/ … umb-drive/

Wow! Enough for a client?


[quote=“DennisWomack”]Take a look at these: … video-out/ … umb-drive/

Wow! Enough for a client?


More than enough for a client, but the standard JVM is still missing in addition to the fact that jnlp’s can’t be launched from Android at the moment…

Wow cool. If the filesystem is on that microSD card, I bet we can use the same trick we used on the tablet to put normal linux on there, and then we can run the full JavaSE ARM jvm on it…

More links: … rch-linux/

And another… … r-under-75

And another with 1 gig of ram. $83.00. … alers.html


I have the Ignition client running smoothly on a Nexus 7 with Ubuntu installed. I would like to take the next step and try to run Ignition on the device. What would it take to get you guys to supply me with the ignition-arm*.so file compiled specifically for the Nexus 7?

By the way, for those of you that are interested in testing the Nexus 7 you can easily follow the instructions on to get Ubuntu set up. However, this makes the Nexus 7 a unitasker devoted to testing Ubuntu. A better plan is to follow these instructions: to set up multiple ROMS on the Nexus. This way you can use it both as an Android and as a Linux ARM testing platform.

Either way you decide to go, once you have Ubuntu set up, install java-6-openjdk-armhf and you will be able to start testing Ignition clients. Oracle has a JDK for the A7 ARM however it does not contain the javaws web start file. If anyone can compile one I would be interested in testing it as I am sure it will be faster than the open version. … -7-tablet/

How is this similar/dissimilar to the process you used? I would like to try this one. How functional was your client?
What issues did you have? Did you do any data entry with it? How responsive was it? I had a nexus 7 and i traded it for
A smaller acer that had more options…

The installation process on your link was very similar to the one on the Ubuntu site. I recommend the MultiRom approach so that you can continue using the device as an Android in addition to testing Ubuntu.

As far as speed is concerned, the first thing you need to do is get away from the Unity desktop which is slow. Install the LXDE desktop and the system is pretty fast. Running Ignition as a client under LXDE is good and data entry went fine. I expect that it would be even faster if it was running Oracle Java but I am stuck on that one for now.

I initially tried to use OpenJDK 1.7, it worked but it wouldn’t allow me to hide the windows menu bar when running the client. I noticed the same problem on 1.7 on the x86 platform so I rolled back to 1.6 and voila it works just fine.

To keep you from losing your mind typing on a touchpad keyboard on the Nexus, set up remote desktop connection using vino and then do all your testing/programming on the remote connection

Here is another one to take a look at.

Search for:

Mini Computer,1080P Dual-core Android 4.1 TV Box MK808 Mini PC RK3066 1GB DRR3+8GB Nand Flash

What is MK808?
MK808 is the first Android 4.1 Jelly Bean TV Box in our market, It can upgrade your dumb-TV to a smart TV easily;
Withi this MK808, You can watch stunning 1080p HD content from YouTube and many more on your TV! Send emails, update your facebook status, play Angry Birds or Fruit Ninja like never before. Download new apps, create and display a powerpoint, listen to music, read books, and play most all those interactive games you love so much on your phone or tablet.
Compare with other tv box, this MK808 tv box has 8GB storage, and dual Wifi antenna, the wifi signal will be better a lot than other tv box. also it use the Cooling SMT technology,has lower temperature when working.
Android 4.1 Jell Bean OS, Google Play Store pre-installed;
1.6Ghz Rockchip RK3066 Dual Core CPU, Quad core Mali-400 GPU;
1GB RAM /8GB storage;
Built in dual wifi antenna in this android device ,support 802.1b/g/n, which makes it more faster than other android tv boxes;
Support external SD card
capacity:1GB-16GB ; Hard Disk: 1GB ~ 5TB;
Muliti-language supported
Package Included:
SS808 Android 4.0 Mini PC.
Power adaptor.
Adaptor dongle for mini-USB to USB.
Mini-USB data cable.
HDMI to mini-HDMI cable.
User manual


Question is… Is there a JRE for this, i.e. ARM 9 … -the-cubox

Can this lead to an ignition client running on the tiny arm box?

This is very interesting topic since we are looking to put Ignition on an embedded hardware.
I’ve tried to deploy Ignition under Linux Ubuntu 12.04 OS running on ODROID-X open mobile development platform which is based on Exynos4412 ARM Cortex-A9 Quad Core (from
The board has sufficient resources to run headless server and consumes very low power.
There is OpenJDK Java distribution for ARM that allows for running a client for Ignition. My experience with Oracle version of embedded Java was negative. It requires some extra configurations that I could not find. Besides Oracle on its web sites indicated that using embedded Java requires license fee which they calculate when you request it.

The biggest obstacle is lack of Ignition server distribution for ARM. Linux distribution is compiled for Intel 386 instruction set even jar files. It runs fine on Intel processor PC with Ubuntu either server or desktop Linux 12.04 LTS with OpenJDK.

It’s interesting that Inductive Automation announced plans for such development and possible brunching of the Ignition with special pricing for the embedded version.
Hope that this will materialize soon.

This is from the Wikipedia article on ARM Architecture:

Jazelle DBX (Direct Bytecode eXecution) is a technique that allows Java Bytecode to be executed directly in the ARM architecture as a third execution state (and instruction set) alongside the existing ARM and Thumb-mode. Support for this state is signified by the “J” in the ARMv5TEJ architecture, and in ARM9EJ-S and ARM7EJ-S core names. Support for this state is required starting in ARMv6 (except for the ARMv7-M profile), although newer cores only include a trivial implementation that provides no hardware acceleration.

Wonder if this DBX would help here? No JIT compiles, just do it. Sounds like Nike!


Good morning

I am not sure DBX can help. Since Java on ARM seems to be working fine it supposed to be able to run bytecode or jar files.

The problem is in wrappers and some other configuration details that are specific for Intel 386 family of processors. Overcoming this obstacle requires cross compiling with proper setting for the ARM. It can be done only by the developer.