Arduino Linux Arm 1.6.10 fails to run on Odroid C2

131 views
Skip to first unread message

KurtE

unread,
Aug 2, 2016, 8:10:06 PM8/2/16
to Developers
Not sure if this is the best place to discuss trying to installing the Arm version, but have mentioned it awhile ago on Arduino forum: (http://forum.arduino.cc/index.php?topic=400808)

As well as Teensy forum as well as on Odroid forum (http://forum.odroid.com/viewtopic.php?f=136&t=21249)

At one point I was able to get the daily build to run on the Odroid, but was unsure if it was because of the other things I tried, so today for the fun of it, I flashed the latest version of the Ubuntu 16.0.  When it completed I updated to make sure I had the latest stuff:
sudo apt-get update... ungrade ... dist-upgrade.

I then went up to Arduino.cc and downloaded the current 1.6.10, and extracted it, ran the install.sh, which added the Icon to the desktop.  When I double click on the icon, the splash screen comes up and then nothing.

So went into command window to launch the arduino app and saw the failure:

odroid@odroid64:~/Desktop/arduino-1.6.10$ ./arduino
Picked up JAVA_TOOL_OPTIONS:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/odroid/Desktop/arduino-1.6.10/java/lib/arm/libawt_xawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1086)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at java.awt.Toolkit$3.run(Toolkit.java:1636)
    at java.awt.Toolkit$3.run(Toolkit.java:1634)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.loadLibraries(Toolkit.java:1633)
    at java.awt.Toolkit.<clinit>(Toolkit.java:1668)
    at cc.arduino.view.SplashScreenHelper.<init>(SplashScreenHelper.java:54)
    at processing.app.Base.<clinit>(Base.java:92)
odroid@odroid64:~/Desktop/arduino-1.6.10$

Note: I currently don't need this, but was curious to see if it worked as I mentioned I was able to get a daily build to work, but I know at least one person mentioned it still did not work for them.

Suggestions?

Andrew Kroll

unread,
Aug 2, 2016, 9:30:59 PM8/2/16
to devel...@arduino.cc

Obviously you are missing the following Library: libXtst
Find it build it install it


--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

Kurt Eckhardt

unread,
Aug 2, 2016, 10:18:19 PM8/2/16
to devel...@arduino.cc

Thanks,

 

I was assuming that the downloads were a complete package.  I have not yet tried this release on the other ODroids yet, but the previous release has

Worked on Odroid C1 and XU4, but these are 32 bit Arm processors whereas the C2 is 64 bit.

 

I wanted to make sure that it was not a case where maybe the current ARM build did not run at all, so I tried installed it on an Odroid Xu3-lite, and it runs so far.  But again this is standard 32 bit arm running Ubuntu 16.04. 

Kurt Eckhardt

unread,
Aug 2, 2016, 10:29:30 PM8/2/16
to devel...@arduino.cc

But it appears to be the main issue, I am able now to get the IDE up by doing:

    sudo apt-get install libxtst6:armhf

 

However I am getting quite a few of the messages:

odroid@odroid64:~/Desktop/arduino-1.6.10$ ./arduino

Picked up JAVA_TOOL_OPTIONS:

 

(java:10014): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",

 

(java:10014): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",

 

(java:10014): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",

 

(java:10014): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",

 

(java:10014): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",

 

But at least it looks like it is at least limping along

Peter Feerick

unread,
Aug 3, 2016, 1:28:50 AM8/3/16
to devel...@arduino.cc
Hi Kurt,

Well, I suspect that the 64bit part is the main issue you'll encounter, as 64 bit ARM is still a bit on the green side (read "nearly nonexistent" in some instances"..

You may find this thread on the Pine64 forum of some interest, as some guys there have been working on how to get the latest Arduino IDE working on the Pine64, which is another 64bit ARM SoC board.


Pete


Peter Feerick
BIT, BLDes CQU

Martino Facchin

unread,
Aug 3, 2016, 3:39:14 AM8/3/16
to devel...@arduino.cc
Hi Kurt,
if your kernel has been compiled with

Userspace binary formats ---> Kernel support for 32-bit EL0

it should be able to run both ARM64 and ARM32 binaries. The problem here is that any library linked by those binaries must be 32bit (as it already happens with x86_64 and i686 compatibility libc and runtimes).

The IDE package is self contained only for ARM32 at the moment.

Best,
Martino

Kurt Eckhardt

unread,
Aug 3, 2016, 10:10:46 AM8/3/16
to devel...@arduino.cc

Thanks,

 

On the Pine64 it looks like the one person who has success went the other way around and used 64 bit java.

 

Yes, the C2 is setup to run both and for example currently the 64 bit Firefox does not work, but you can install the 32 bit version. 

 

So this morning trying to install Teensyduino current beta (2) and it failed to load until I did:

sudo apt-get install libxft2:armhf

 

Tried downloading program to Teensy 3.2 and it failed, needed to do:

sudo apt-get install libusb-0.1-4:armhf

 

I had to hit the program button to make it work, but at least now my T3.2 blinks!   

 

Will follow up on this part up on Teensy forum.

 

Kurt

Kurt Eckhardt

unread,
Aug 30, 2016, 6:58:13 PM8/30/16
to devel...@arduino.cc

Quick update:

 

Once I got it working I have not done much here as currently playing with Teensy Beta stuff, plus trying to properly setup a new up board.  But yesterday received email from Arduino forum that someone was having problems with Serial monitor was not working.

 

So made sure I had Arduino 1.6.11 installed on this machine and downloaded Teensyduino 1.30 beta 3 and installed it.  I was still able to open the example Blink and build it and it updated my Teensy 3.2 correctly.  

 

I then did a quick edit to the program, added: Serial.begin(115200); to setup and added a simple Serial.println(loop_cnt++, DEC);

(added the variable as well).  I then built the program and downloaded and saw nothing.  I then left terminal monitor open, tried a download again and still nothing. 

 

Note: I started Arduino from a command prompt and when it finishes downloading I am getting some error messages displayed:

 

Sketch uses 17,512 bytes (6%) of program storage space. Maximum is 262,144 bytes.

Global variables use 4,652 bytes (7%) of dynamic memory, leaving 60,884 bytes for local variables. Maximum is 65,536 bytes.

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Could not initialize class jssc.SerialNativeInterface

                at jssc.SerialPort.<init>(SerialPort.java:120)

                at processing.app.Serial.<init>(Serial.java:115)

                at processing.app.Serial.<init>(Serial.java:66)

                at processing.app.TeensyMonitor$4.<init>(TeensyMonitor.java:131)

                at processing.app.TeensyMonitor.open(TeensyMonitor.java:131)

                at processing.app.Editor.handleSerial(Editor.java:2651)

                at processing.app.EditorToolbar.mousePressed(EditorToolbar.java:384)

                at java.awt.Component.processMouseEvent(Component.java:6532)

                at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)

                at java.awt.Component.processEvent(Component.java:6300)

                at java.awt.Container.processEvent(Container.java:2236)

                at java.awt.Component.dispatchEventImpl(Component.java:4891)

                at java.awt.Container.dispatchEventImpl(Container.java:2294)

                at java.awt.Component.dispatchEvent(Component.java:4713)

                at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)

                at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522)

                at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)

                at java.awt.Container.dispatchEventImpl(Container.java:2280)

                at java.awt.Window.dispatchEventImpl(Window.java:2750)

                at java.awt.Component.dispatchEvent(Component.java:4713)

                at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)

                at java.awt.EventQueue.access$500(EventQueue.java:97)

                at java.awt.EventQueue$3.run(EventQueue.java:709)

                at java.awt.EventQueue$3.run(EventQueue.java:703)

                at java.security.AccessController.doPrivileged(Native Method)

                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)

                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

                at java.awt.EventQueue$4.run(EventQueue.java:731)

                at java.awt.EventQueue$4.run(EventQueue.java:729)

                at java.security.AccessController.doPrivileged(Native Method)

                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)

                at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)

                at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)

                at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)

                at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)

                at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

                at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)

                at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

 

Again this is setup to talk to Teensy 3.2. 

 

From: Kurt Eckhardt [mailto:ku...@rockisland.com]
Sent: Wednesday, August 03, 2016 7:11 AM
To: devel...@arduino.cc
Subject: RE: [Developers] Arduino Linux Arm 1.6.10 fails to run on Odroid C2

 

Thanks,

 

On the Pine64 it looks like the one person who has success went the other way around and used 64 bit java.

Reply all
Reply to author
Forward
0 new messages