ftDuino unter Ubuntu - Java Fehler

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
timberwolf
Beiträge: 6
Registriert: 31 Dez 2018, 04:36

ftDuino unter Ubuntu - Java Fehler

Beitrag von timberwolf » 31 Dez 2018, 04:48

Hallo zusammen,

ich versuche zum ersten Mal, einen ftDuino in Betrieb zu nehmen. Betriebssystem ist Ubuntu 18.04, Arduino ist frisch von der Webseite arduino.cc heruntergeladen und hat die Version 1.8.8.

Einrichtung klappt soweit, nur sobald ich versuche, einen Sketch hochzuladen, erscheint folgende Fehlermeldung:

Code: Alles auswählen

user@linux:~$ /opt/arduino/arduino-1.8.8/arduino
Picked up JAVA_TOOL_OPTIONS: 
Der Sketch verwendet 3540 Bytes (12%) des Programmspeicherplatzes. Das Maximum sind 28672 Bytes.
Globale Variablen verwenden 149 Bytes (5%) des dynamischen Speichers, 2411 Bytes für lokale Variablen verbleiben. Das Maximum sind 2560 Bytes.
Exception in thread "Thread-18" java.lang.UnsatisfiedLinkError: /home/user/.jssc/linux/libjSSC-2.8_x86_64.so: /home/user/.jssc/linux/libjSSC-2.8_x86_64.so: Fehler beim Mappen des Shared Objects
	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 jssc.SerialNativeInterface.<clinit>(SerialNativeInterface.java:172)
	at processing.app.SerialPortList.<clinit>(SerialPortList.java:47)
	at processing.app.Serial.list(Serial.java:277)
	at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:131)
	at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77)
	at processing.app.SketchController.upload(SketchController.java:732)
	at processing.app.SketchController.exportApplet(SketchController.java:703)
	at processing.app.Editor$UploadHandler.run(Editor.java:2042)
	at java.lang.Thread.run(Thread.java:748)
Die Gruppenzugehörigkeit des Benutzers sollte stimmen:

Code: Alles auswählen

user@linux:/root$ groups
tty uucp dialout plugdev cdrom fuse users
Und die Berechtigungen der seriellen Schnittstelle auch:

Code: Alles auswählen

user@linux:~# ls -l /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 0 Dez 31 04:30 /dev/ttyACM0
Kann mir jemand weiterhelfen?

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von MasterOfGizmo » 31 Dez 2018, 18:03

Auf was für einer Maschine machst Du das? Anscheinend ist die ~/.jssc/linux/libjSSC-2.8_x86_64.so auf Deinem PC nicht ladbar. Ist das ein normaler PC?

JSSC ist das hier: https://code.google.com/archive/p/java- ... connector/ Das braucht die Arduino-IDE, um mit der seriellen Schnittstelle zu kommunizieren. Du kannst auch mal das ganze .jssc-Verzeichnis löschen, das legt die Arduino-IDE dann neu an. Vielleicht hast Du da ja eine alte/kaputte Version liegen.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

timberwolf
Beiträge: 6
Registriert: 31 Dez 2018, 04:36

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von timberwolf » 31 Dez 2018, 18:30

Es ist ein normaler x86-Laptop mit Intel i5-Prozessor auf Ubuntu 18.04 64-Bit, sollte also passen.

Habe nun sowohl das ~/.jssc-Verzeichnis gelöscht:

Code: Alles auswählen

rm -r /home/user/.jssc/
als auch die Library mit der von deinem Link ersetzt:

Code: Alles auswählen

unzip jSSC-2.7.0-Release.zip
cp jSSC-2.7.0-Release/jssc.jar arduino-1.8.8/lib/jssc-2.8.0-arduino2.jar
chown user:group arduino-1.8.8/lib/jssc-2.8.0-arduino2.jar
Leider ohne Erfolg und mit der oben genannten Fehlermeldung als Ergebnis.

Addendum: Wenn ich innerhalb einer Arduino-Sitzung, also ohne das Arduino IDE-Fenster zu schließen, nach dem ersten Fehlschlag zum zweiten Mal versuche, den Sketch hochzuladen, erscheint folgende Fehlermeldung:

Code: Alles auswählen

Der Sketch verwendet 3540 Bytes (12%) des Programmspeicherplatzes. Das Maximum sind 28672 Bytes.
Globale Variablen verwenden 149 Bytes (5%) des dynamischen Speichers, 2411 Bytes für lokale Variablen verbleiben. Das Maximum sind 2560 Bytes.
Exception in thread "Thread-34" java.lang.NoClassDefFoundError: Could not initialize class processing.app.SerialPortList
        at processing.app.Serial.list(Serial.java:277)
        at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:131)
        at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77)
        at processing.app.SketchController.upload(SketchController.java:732)
        at processing.app.SketchController.exportApplet(SketchController.java:703)
        at processing.app.Editor$UploadHandler.run(Editor.java:2042)
        at java.lang.Thread.run(Thread.java:748)
Sagt dir das was? Hängt das mit dem ersten Fehler zusammen? Nach Beenden und neuem Öffnen der IDE kommt wieder die erste Fehlermeldung vom Ursprungspost.

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von MasterOfGizmo » 31 Dez 2018, 22:13

Das hängt zusammen. Er kann erst die serielle Bibliothek nicht laden und wenn er sie dann in der Folge benutzen will ist sie nicht da.

Irgendwas stimmt zwischen der Arduino-IDE und Deinem PC nicht und es hat nichts mit dem ftDuino zu tun. Einen anderen Arduino könntest Du genauso wenig benutzen.

Und nein, Du musst da nix selbst ersetzen. Einfach löschen und die Arduino-IDE legt das dann automatisch wieder an.
Zuletzt geändert von MasterOfGizmo am 01 Jan 2019, 13:22, insgesamt 1-mal geändert.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von EstherM » 01 Jan 2019, 12:56

Ein frohes neues Jahr!

Um den Fehler reproduzieren zu können, habe ich auf meinem Ubuntu-System ebenfalls die neueste Arduino-IDE installiert und den ftduino so eingebunden, wie das Manual das beschreibt.
Der erste Blinktest ist bei mir erfolgreich.
Prinzipiell sollte der ftduino also unter Ubuntu 18.04.01 laufen.
In meinen etwas älteren Notizen habe ich für mein OpenSuse-System/KDE noch gefunden:
"Startet nicht wegen nicht gefundenem Link. Alles Mist. Start mit

Code: Alles auswählen

kdesu ./arduino
: läuft. Alles gut!"
Vielleicht könntest du mal versuchen, die Arduino-IDE mit sudo zu starten.

Gruß
Esther

timberwolf
Beiträge: 6
Registriert: 31 Dez 2018, 04:36

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von timberwolf » 01 Jan 2019, 16:23

Esther, das war ein super Tipp. Vielen Dank fürs ausprobieren!

Auf meinem System funktioniert es nun mit einem
sudo ./arduino
Nun muss ich mich nur auf die Suche machen, an welchen Berechtigungen es liegt, dass root benötigt wird. Meinen Kindern will ich keine Admin-Rechte geben ;-)

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von EstherM » 01 Jan 2019, 17:26

Lieber timberwolf,
schön, dass es jetzt bei Dir ein bisschen besser läuft. Ich fand es auch doof, dass auf meinem Suse-System der ftduino nur unter Root lief, aber ich habe es nicht weiter verfolgt. Auf dem Ubuntu-Rechner schon früher mal mit einem Arduino gewurschtelt, so dass ich da möglicherweise schon vorher mal was geändert habe. Ich habe dazu aber keine Aufzeichnungen zu gefunden. Nach meiner Erinnerung war das unproblematisch.
Viel Spaß noch,
Esther

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von PHabermehl » 01 Jan 2019, 17:38

Ganz kurz nur von mir die Info, dass es auf mehreren Rechnern unter SuSE 42.2, 42.3 und 15.0 und vorher auch 13.x problemlos lief. Es muss an irgendwelchen Rechten liegen, ggf. den User zu den Gruppen dialout und TTY hinzufügen? Das sind die einzigen Rechte, die mein Standard-User hat...

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von EstherM » 03 Jan 2019, 15:48

Hallo Peter,
der Gedanke mit der fehlenden ist naheliegend und hat bestimmt auch schon vielen geholfen.
In meinem Suse-System bin ich aber Mitglied der Gruppe "dialout" und timberwolf hat die Berechtigungen in seinem Ubuntu ja auch abgeklärt.

Irgendwo lauert da noch ein anderes Problem. Nach meinem Gefühl hat das was mit den verschiedenen Java-Dialekten zu tun. Aber vielleicht ist ja auch was mit meinem Gefühl falsch.
Wir behalten das Problem mal im Auge.
Gruß
Esther

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von PHabermehl » 03 Jan 2019, 19:03

Ich muss die Threads wieder ganz lesen...
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

timberwolf
Beiträge: 6
Registriert: 31 Dez 2018, 04:36

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von timberwolf » 03 Jan 2019, 19:34

Ich habe den Fehler gefunden. Aus Sicherheitsgründen ist /home auf allen unseren Systemen als 'noexec' eingebunden. Aus der /etc/fstab:

Code: Alles auswählen

UUID=123-456-4451-789-aaa   /home        btrfs  subvol=@/home,defaults,noexec,nosuid,nodev     0  0
Das führt dazu, dass die shared libraries, die in diesem Volume liegen - und somit auch die /home/user/.jssc/linux/libjSSC-2.8_x86_64.so - nicht ausgeführt werden können.

Falls jemand ebenfalls von so einer Konstellation betroffen ist, das noexec aber gerne behalten möchte: Abhilfe schafft es, die Bibliothek an eine andere Stelle, an welcher Ausführungsrechte vorhanden sind, zu kopieren und durch einen Symlink zu ersetzen:

Code: Alles auswählen

cp /home/user/.jssc/linux/libjSSC-2.8_x86_64.so /opt/arduino/arduino-1.8.8
rm /home/user/.jssc/linux/libjSSC-2.8_x86_64.so
ln -s /opt/arduino/arduino-1.8.8/libjSSC-2.8_x86_64.so /home/user/.jssc/linux/libjSSC-2.8_x86_64.so
Hurra, es funktioniert!

Danke euch allen für eure Hilfe, ihr habt mich auf die richtige Lösung gebracht!

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von MasterOfGizmo » 04 Jan 2019, 08:55

Hast Du das auf noexec gesetzt oder war das Ubuntu selbst? In letzterem Fall dürften Canonical bzw. die Arduiino-Leute eine Lösung finden. Das betrifft ja alle Arduino-User.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von EstherM » 04 Jan 2019, 09:32

Guten Morgen,
timberwolf hat geschrieben:Ich habe den Fehler gefunden. Aus Sicherheitsgründen ist /home auf allen unseren Systemen als 'noexec' eingebunden.
Das führt dazu, dass die shared libraries, die in diesem Volume liegen - und somit auch die /home/user/.jssc/linux/libjSSC-2.8_x86_64.so - nicht ausgeführt werden können.
Auf diese Lösung wäre ich nie gekommen!
MasterOfGizmo hat geschrieben:Hast Du das auf noexec gesetzt oder war das Ubuntu selbst? In letzterem Fall dürften Canonical bzw. die Arduiino-Leute eine Lösung finden. Das betrifft ja alle Arduino-User.
Wir sind aber netter als die Arduino-Foren.

Gruß
Esther

timberwolf
Beiträge: 6
Registriert: 31 Dez 2018, 04:36

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von timberwolf » 04 Jan 2019, 13:48

MasterOfGizmo hat geschrieben:Hast Du das auf noexec gesetzt oder war das Ubuntu selbst? In letzterem Fall dürften Canonical bzw. die Arduiino-Leute eine Lösung finden. Das betrifft ja alle Arduino-User.
noexec, nosuid und nodev für /home haben wir bei allen unseren Rechnern selbst gesetzt. Canonical und Arduino können nix dafür :D
EstherM hat geschrieben:Auf diese Lösung wäre ich nie gekommen!
Das ist wie bei memnaAangr: Erst rätselst du lange rum, aber sobald du das Wort herausbekommen hast, frägst du dich, wieso du es nicht früher gesehen hast.

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von MasterOfGizmo » 04 Jan 2019, 23:36

Wobei mir ja nicht klar ist, wieso Du das einstellst, obwohl Die nicht bewusst ist, was das im Endeffekt eigentlich tut.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

timberwolf
Beiträge: 6
Registriert: 31 Dez 2018, 04:36

Re: ftDuino unter Ubuntu - Java Fehler

Beitrag von timberwolf » 05 Jan 2019, 18:15

Diese Einstellung ist durchaus bewusst gewählt, nur ist mir bisher keine Software untergekommen, die meint, bei Installation oder Ausführung entgegen aller Konventionen eine shared library im /home-Verzeichnis des Benutzers ablegen zu müssen.

Aber du hast recht, da hätte ich aufgrund der Fehlermeldung früher draufkommen müssen :lol:

Antworten