Arch x86_64

Hi All,

I have seen some x86_64 problems around, but I haven't got it working so far.

The svn checkout source compiles fine. I have the Sun java jre (64 bit). The RXTX library is compiled from source, too. That compiles successfully.

I have edited the arduino script to include the paths to RXTXComm and librxtxSerial and removed the distribution ones.

However, I still get:

java.lang.UnsatisfiedLinkError: gnu.io.RXTXCommDriver.nativeGetVersion()Ljava/lang/String; thrown while loading gnu.io.RXTXCommDriver java.lang.NoClassDefFoundError: Could not initialize class gnu.io.RXTXCommDriver thrown while loading gnu.io.RXTXCommDriver

Now if I download and run the amd64 binaries version 0012then it runs and says: Experimental: JNI_OnLoad called.

Stable Library

Native lib Version = RXTX-2.1-7 Java lib Version = RXTX-2.1-7

But I still can't select a serial port - it's greyed out.

Has anyone managed this on Arch64 or any plain x86_64 platform?

Thanks in advance for your help.

What serial port (/dev device) does your Arduino appear on? If the software runs but the menu is grayed out, that indicates that RXTX is running successfully, but just not finding your Arduino.

Well some progress:

The gotcha is that you must plug the arduino board in! My mistake :)

However, when I try to use the serial port like the serial port monitor I get

An unexpected error has been detected by Java Runtime Environment:

SIGSEGV (0xb) at pc=0x00007fa7fc8de69d, pid=5412, tid=140359475550544

Java VM: Java HotSpot(TM) 64-Bit Server VM (11.0-b16 mixed mode linux-amd64)

Problematic frame:

C [librxtxSerial.so+0x769d] read_byte_array+0x3d

An error report file with more information is saved as:

/home/matthew/builds/arduino-0012/hs_err_pid5412.log

If you would like to submit a bug report, please visit:

http://java.sun.com/webapps/bugreport/crash.jsp

The crash happened outside the Java Virtual Machine in native code.

See problematic frame for where to report the bug.

./arduino: line 16: 5412 Aborted java processing.app.Base

Does this help diagnose? I have removed the RXTXcomm and librxtxSerial from my java install, so only the supplied arduino versions are being called.

I've been banging my head today trying to get rxtxSerial.so to work on a 64-bit load of gentoo. I've tried 2 different programs I've known to work when I had it loaded with 32 bit gentoo. I've been getting a very similar error, and I've tried 3 different java VM's (IcedTea, JRE-6, JDK-6), recompiled RXTX from scratch with every imaginable option on and off, and even copied the binary from a 64 bit ubuntu .deb. All of them give me this, more or less:

rich@rich-STi /opt/sun-jre-bin-1.6.0.11/lib/amd64 $ ~/.bin/jdash 
Gtk-Message: Failed to load module "atk-bridge": libatk-bridge.so: cannot open shared object file: No such file or directory
JDash / v0.9.19 01-14-2008
Protected under LGPL.  Copyright (C) 2007  Shane Powell
Monitor: net.sourceforge.JDash.ecu.comm.SSMOBD2Monitor
Experimental:  JNI_OnLoad called.
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fe56b370ecd, pid=12916, tid=140623783496016
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (11.0-b16 mixed mode linux-amd64)
# Problematic frame:
# C  [librxtxSerial.so+0x7ecd]  Java_gnu_io_RXTXPort_nativeDrain+0xfd
#
# An error report file with more information is saved as:
# /home/rich/.jdash/hs_err_pid12916.log
#
# If you would like to submit a bug report, please visit:
#   cant_post_urls - colon slash slash java.sun.com/webapps/bugreport/crash.jsp
#
/home/rich/.jdash/jdash.sh: line 8: 12916 Aborted                 java -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dswing.systemlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Djava.library.path=opt/sun-jdk-1.6.0.11/jre/lib/amd64/ -jar JDash.jar

And the crash dump (relevant parts):

#
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f84cc742ae0, pid=28150, tid=140208803105104
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (11.0-b16 mixed mode linux-amd64)
# Problematic frame:
# C  [librxtxSerial.so+0x7ae0]  Java_gnu_io_RXTXPort_nativeDrain+0xd7
#
# If you would like to submit a bug report, please visit:
#   cant_post_urls - colon slash slash java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x0000000041c21000):  JavaThread "main" [_thread_in_native, id=28154, stack(0x00007f84e7d74000,0x00007f84e7e75000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0xffffffffcc73989c

....Registers and stack....

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [librxtxSerial.so+0x7ae0]  Java_gnu_io_RXTXPort_nativeDrain+0xd7

[error occurred during error reporting (printing native stack), id 0xb]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  gnu.io.RXTXPort.nativeDrain(Z)Z+0
j  gnu.io.RXTXPort$SerialOutputStream.flush()V+72
j  net.sourceforge.JDash.ecu.comm.SSMOBD2Monitor.sendPacket(Lnet/sourceforge/JDash/ecu/comm/RS232Packet;I)Lnet/sourceforge/JDash/ecu/comm/RS232Packet;+60
j  net.sourceforge.JDash.ecu.comm.SSMOBD2Monitor.init(Lnet/sourceforge/JDash/ecu/param/ParameterRegistry;Lnet/sourceforge/JDash/ecu/comm/InitListener;)Ljava/util/List;+64
j  net.sourceforge.JDash.Startup.startup([Ljava/lang/String;)V+412
j  net.sourceforge.JDash.Startup.main([Ljava/lang/String;)V+8
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x0000000041e9f000 JavaThread "Thread-2" [_thread_in_native, id=28168, stack(0x00007f84cc63a000,0x00007f84cc73b000)]
  0x00007f84d45a7800 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=28167, stack(0x00007f84cc949000,0x00007f84cca4a000)]
  0x00007f84d458b000 JavaThread "AWT-Shutdown" [_thread_blocked, id=28166, stack(0x00007f84ccdcb000,0x00007f84ccecc000)]
  0x00007f84d457cc00 JavaThread "Image Fetcher 0" daemon [_thread_blocked, id=28165, stack(0x00007f84cca4a000,0x00007f84ccb4b000)]
  0x00007f84d4357800 JavaThread "AWT-XAWT" daemon [_thread_in_native, id=28164, stack(0x00007f84d2e16000,0x00007f84d2f17000)]
  0x00007f84d400e800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=28163, stack(0x00007f84d3531000,0x00007f84d3632000)]
  0x00007f84d4024400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=28161, stack(0x00007f84d8d69000,0x00007f84d8e6a000)]
  0x00007f84d4022000 JavaThread "CompilerThread1" daemon [_thread_blocked, id=28160, stack(0x00007f84d8e6a000,0x00007f84d8f6b000)]
  0x00007f84d4020400 JavaThread "CompilerThread0" daemon [_thread_blocked, id=28159, stack(0x00007f84d8f6b000,0x00007f84d906c000)]
  0x00007f84d401e400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=28158, stack(0x00007f84d906c000,0x00007f84d916d000)]
  0x00007f84d4000c00 JavaThread "Finalizer" daemon [_thread_blocked, id=28157, stack(0x00007f84d916d000,0x00007f84d926e000)]
  0x0000000041caac00 JavaThread "Reference Handler" daemon [_thread_blocked, id=28156, stack(0x00007f84d926e000,0x00007f84d936f000)]
=>0x0000000041c21000 JavaThread "main" [_thread_in_native, id=28154, stack(0x00007f84e7d74000,0x00007f84e7e75000)]

Other Threads:
  0x0000000041ca5400 VMThread [stack: 0x00007f84d936f000,0x00007f84d9470000] [id=28155]
  0x00007f84d4026c00 WatcherThread [stack: 0x00007f84d8c68000,0x00007f84d8d69000] [id=28162]

VM state:not at safepoint (normal execution)

.....a bunch of open libs...

VM Arguments:
jvm_args: -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dswing.systemlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Djava.library.path=/opt/sun-jre-bin-1.6.0.11/lib/amd64
java_command: JDash.jar
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=/etc/java-config-2/current-system-vm
CLASSPATH=.
PATH=/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2:/usr/games/bin
LD_LIBRARY_PATH=/opt/sun-jre-bin-1.6.0.11/lib/amd64/server:/opt/sun-jre-bin-1.6.0.11/lib/amd64:/opt/sun-jre-bin-1.6.0.11/../lib/amd64
SHELL=/bin/bash
DISPLAY=localhost:11.0

Signal Handlers:
SIGSEGV: [libjvm.so+0x5fcb80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGBUS: [libjvm.so+0x5fcb80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGFPE: [libjvm.so+0x4e0d10], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGPIPE: [libjvm.so+0x4e0d10], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGXFSZ: [libjvm.so+0x4e0d10], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGILL: [libjvm.so+0x4e0d10], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x4e3430], sa_mask[0]=0x00000000, sa_flags=0x10000004
SIGHUP: [libjvm.so+0x4e3180], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGINT: [libjvm.so+0x4e3180], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGTERM: [libjvm.so+0x4e3180], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGQUIT: [libjvm.so+0x4e3180], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004


---------------  S Y S T E M  ---------------

OS:Gentoo Base System release 2.0.0
uname:Linux 2.6.29-rc1 #6 SMP Tue Jan 27 22:44:21 EST 2009 x86_64
libc:glibc 2.9 NPTL 2.9
rlimit: STACK 8192k, CORE 0k, NPROC 8175, NOFILE 1024, AS infinity
load average:1.01 0.55 0.33

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

Memory: 4k page, physical 890976k(225972k free), swap 498004k(492784k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (11.0-b16) for linux-amd64 JRE (1.6.0_11-b03), built on Nov 10 2008 01:28:14 by "java_re" with gcc 3.2.2 (SuSE Linux)

time: Thu Jan 29 02:18:30 2009
elapsed time: 2 seconds

I am running a git kernel from last week (love the fast boot...9 seconds to an operational X session from grub with an SSD drive, tweaked init, and asyncronous kernel hardware init, new in 2.6.29), which may have something to do with it, but I can access my serial device (openport OBD-II/SSM interface) using python with no problem. This is the first place I found that has a similar problem to mind, over the entire internet, except for bug # 128809 for freeBSD, which is outstanding for a couple of years. Any ideas? Thanks!

-Rich

If you’re in a hurry to get your arduino IDE running you could get the 32bit version with a 32bit Java instead of the x86_64 version :slight_smile:

Another option might be to run it inside a VM like xen, kvm, qemu or vmware with a different guest OS like Ubuntu or Debian

I have 0011-i386 and 0012-i386 running on Fedora x86_64 with a 32bit Java

java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)

I’m sorry I can’t add anything particularly insightful as I’ve been too busy to install 0012-x86_64

Good luck :slight_smile:

Thanks for the suggestion! I emerged the 32 bit emulation sun JRE on my gentoo box, and all librxtxSerial (32 bit) doesn't barf. Thanks!

What is this arduino thing anyhow? I came across this thread in search of answers for a rare problem with 64 bit java and librxtxSerial, and this thing looks interesting. I actually do have a need to capture several channels of 0-5V analog via serial (accelerometer, compass, and other data), and currently I have something called a uChameleon which only supports 8 bits of resolution on the analog inputs, which isn't quite enough to suit my needs. Does this do any better than 8 bits? How many channels of analog in does it support? Thanks,

-Rich

Arduino supports six, 10 bit 0-5vdc analog input pins. Lefty

Hi m3t0g33k and friends,

did anybody solve the crashing monitor on opensuse 64? I have exactly the same behavior over opensuse 11.1 with the latest versions of the requested packages (java, avr-**, etc.) I installed 0015 Arduino IDE (only for 32), but did the changes on the AVRdude, and RXTX-Java as suggested at http://en.opensuse.org/Arduino and other sites. I am able to compile sketches and upload them to Arduino Duemilanove w/ATmega328 without problem! :D But the monitor feature does not work. It does nothing. But I read somewhere that under linux, we have to reset the board before to use the monitor. If I do that, I just get the Arduino IDE crashing some seconds after pressing the monitor button. :-? On the error log, I get the same content that previously reported.

has anybody found a solution? thanks! GPS

I could not 'fix' the serial monitor issue, but I got a work-around for Linux: 1. Open two consoles/terminals. 2. In the first type (replacing /dev/ttyUSB0 with your device)

cat /dev/ttyUSB0
  1. In the second console type (again replacing the /dev/ttyUSB0)
cat > /dev/ttyUSB0

It's ugly, it's outside the IDE, but it works.

As an alternative you can use minicom.

Thanks so much Lachezar. That did help me. gps

Hi Lachezar, here I got the monitor of Arduino IDE working…
See this:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1244869368/0#0

regards!
gps

I've been using cutecom which I've been happy with. Thanks Gian, that fixed the crash.