ubuntuusers.de

arduino IDE installieren

Status: Gelöst | Ubuntu-Version: Ubuntu MATE 22.04 (Jammy Jellyfish)
Antworten |

Wendelinchen

Anmeldungsdatum:
4. August 2017

Beiträge: 47

Hallo,

ich bin heute auf ein Problem mit meinem Desktop-PC (ein AMD Ryzen 5 1600X Six-Core Processor × 12 mit Ubuntu Version 22.04.1 LTS (Jammy Jellyfish); 64-bit Kernel Linux 5.15.0-58-generic x86_64; MATE 1.26.0) gestossen:

Vor längerer Zeit hatte ich mal mit einem Arduino rumgespielt und mir deshalb die Arduino-IDE installiert. Wenn ich mich richtig erinnere, funktionierte das auch.

Das Interesse an dem Arduino habe ich dann etwas verloren und lange die IDE nicht mehr benötigt. Jetzt habe ich mir einen ESP32 besorgt, der ja auch mit der Arduino IDE zu programmiern ist. Wenn ich im Menü unter "Programmierung" die Arduino-IDE anklicke, geht nur kurz der Eingangsbildschirm der IDE auf, um gleich wieder ohne Fehlermeldung zu verschwinden.

Ich vermute, dass (mal wieder) bei irgendwelchen Updates irgendwas schiefgelaufen ist. Zwar weiß ich schon, dass ich eventuell an Fehlermeldungen herankäme, riefe ich die IDE aus eimem Terminal auf, weiß aber nicht, wie der Eintrag im Programm-Menü mit der ausführbaren Datei verlinkt ist, was ich also im Terminal eintippen muss.

Um nicht lange suchen zu müssen, habe ich die gesamte IDE (mit synaptic) entfernt und alles neu installiert, das Ergebnis war jedoch dasselbe. In dem Thread von delux las ich, dass er in /usr/local/bin einen Ordner arduino gefunden hat. Seine Vermutung war, er könnte die IDE neu installieren, wenn er vorher diesen Ordner entfernt. Leider schreibt er nicht, ob das geklappt hat. Diesen Ordner gibt's bei mir aber ohnehin nicht. Kann mir jemand weiterhelfen, mein kleiner ESP32 wartet schon dringend auf ein Programm...

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

Das erneute installieren von Programmen bringt nur etwas, wenn das Programm-Paket selbst beschädigt ist (oder bei --purge die globale Konfiguration mitgelöscht wird). Insofern hilft dir das in 99% der Fälle nicht weiter. Die Nutzerkonfiguration bleibt in jedem Fall unberührt.

Zunächst gibt es für (Fehler-)meldungen journalctl, kannst du auch mit dem Schalter -f live mitlaufen lassen.

Was den Programmnamen angeht: .desktop-Dateien hilft dir da weiter. Da gibt es entsprechende Exec{,Pre}-Zeilen, die den Aufruf enthalten.

Wendelinchen

(Themenstarter)

Anmeldungsdatum:
4. August 2017

Beiträge: 47

Vielen Dank für Deine prompte Antwort.

Ja, an dem 'neu installieren' erkennt man wohl alte Windows-Benutzer...

Dank Deiner Hilfe habe ich rausgefunden, was jetzt eigentlich aufgerufen wird und es im Terminal gemacht:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
winnie@ryzen-2:/usr/bin$ arduino
Picked up JAVA_TOOL_OPTIONS: 
java.lang.UnsatisfiedLinkError: /usr/lib/x86_64-linux-gnu/liblistSerialsj.so.1.4.0: /usr/lib/x86_64-linux-gnu/liblistSerialsj.so.1.4.0: undefined symbol: sp_get_port_usb_vid_pid
	at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
	at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2445)
	at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2501)
	at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2700)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2662)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
	at java.base/java.lang.System.loadLibrary(System.java:1873)
	at processing.app.Platform.<clinit>(Platform.java:143)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:315)
	at processing.app.BaseNoGui.initPlatform(BaseNoGui.java:514)
	at processing.app.Base.<init>(Base.java:201)
	at processing.app.Base.main(Base.java:141)

Da steht also :"undefined symbol: sp_get_port_usb_vid_pid", und das wird wohl die Fehlerursache sein. Habe ich da eine falsche Java-Version, oder was bedeutet das?

Femtom

Anmeldungsdatum:
21. November 2022

Beiträge: 105

Das ist ein bekannter Fehler, der müsste bei Ubuntu 22.04 aber schon gefixt sein.

Du kannst mal Ubuntu updaten und schauen, ob es danach funktioniert.

Das problematische Paket ist liblistserialsj1 in der Version 1.4.0-1, der Fix ist die Version 1.4.0-1ubuntu0.22.04.1

Wendelinchen

(Themenstarter)

Anmeldungsdatum:
4. August 2017

Beiträge: 47

Hallo Femtom,

Dein Tipp ist gut, woher weiß man denn sowas? Bei mir ist Version 1.4.0-1 und nicht Version 1.4.0-1ubuntu0.22.04.1 von liblistserialsj1 installiert.

Nach einem update/upgrade war aber immer noch die falsche Version da, das änderte sich auch nicht nach 'apt remove liblistserialsj1' und anschließendem 'apt install liblistserialsj1'. Die Erklärung, wie man einen Patch installiert (https://wiki.ubuntuusers.de/patch/) verstehe ich leider nicht. Von "Version" ist da nirgends die Rede, nur vom Dateinamen, und der ist bei beiden Dateien gleich. Wie kriege ich den Patch installiert? Und warum nennt man die Version nicht gleich 1.4.0-2?

Einen Tipp bitte noch und dann wird's wohl gehen.

Vielen Dank und liebe Grüße, W.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Bei problematischen Paketen, lohnt sich manchmal ein AppImage zu verwenden. Das ist ein „Komplettpaket“, welches vom Nutzer ausführbar gemacht und gestartet werden kann. Von der Arduino-IDE gibt es laut der Downloadseite eins. Der Vorteil ist, das es nur für den Benutzer vorhanden ist, alle Abhängigkeiten mitbringt und unabhängig vom Paketmanager ist. Der Nachteil ist, das es eine Fremdquelle ist, keine Automatismen greifen, etc. Ebenso wirst du den Schreibzugriff auf das USB-Gerät manuell erlauben müssen (Rechte, chmod, Benutzer und Gruppen).

Was patch angeht: Dafür brauchst du ein patch, oder diff-File. Das enthält lediglich die Unterschiede zwischen Version a und b. Beispiel:

1
2
3
4
5
6
7
# Datei 1: „original“
ls -l /dev/yyt*
# unverändert
a = 1
b = 2
c = 3
echo $a $b $c

1
2
3
4
5
6
7
# Datei 2: „update“ mit korrektur des Verzeichisses
ls -l /dev/tty*
# unverändert
a = 1
b = 2
c = 3
echo $a $b $c

Du kannst jetzt mit bspw.

diff -u original update > diff.patch 

einen Patch erstellen und diesen veröffentlichen. Alle mit nur der Originaldatei brauchen also nicht komplett herunterladen, sondern können sich den patch holen und mit

patch -u original -i update 

diesen einspielen.

Femtom

Anmeldungsdatum:
21. November 2022

Beiträge: 105

Die Arduino-IDE aus den Paketquellen von 22.04 müsste ohne zu patchen laufen.

Vielleicht hast du für die Paketquellen eine konservative Einstellung - das Update wird über jammy-updates verteilt.

Also in /etc/apt/sources.list darf dieses nicht auskommentiert sein. Es müsste die Zeile mit universe sein, da darf kein "#" davor sein. Die beiden anderen, main und restricted, sind bei mir auch nicht auskommentiert:

deb http://de.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
deb http://de.archive.ubuntu.com/ubuntu/ jammy-updates universe

Wenn ich bei mir die vorhandenen Versionen prüfe, sieht das so aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
~$ apt-cache policy liblistserialsj1
liblistserialsj1:
  Installed: 1.4.0-1ubuntu0.22.04.1
  Candidate: 1.4.0-1ubuntu0.22.04.1
  Version table:
 *** 1.4.0-1ubuntu0.22.04.1 500
        500 http://de.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages
        100 /var/lib/dpkg/status
     1.4.0-1 500
        500 http://de.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

Um herauszufinden, ob das Problem bekannt ist kann man so vorgehen:

  1. Fehler in Suchmaschine eingeben → "liblistSerialsj.so.1.4.0: undefined symbol: sp_get_port_usb_vid_pid"

  2. Einen Ergebnis aussuchen, das erfolgversprechend aussieht → https://bugs.launchpad.net/ubuntu/+source/arduino/+bug/1916278

  3. Durchschauen, ob das hilfreich ist → Gefixt seit 05.01.2022 in 22.04

Alternativ "Arduino" hier in der Forumsuche, erstes Ergebnis: https://forum.ubuntuusers.de/topic/arduino-installation/

Die Ergebnisse können aber auch nur verwirrend sein, wenn man wenig Erfahrung damit hat.

Wendelinchen

(Themenstarter)

Anmeldungsdatum:
4. August 2017

Beiträge: 47

Vielen Dank noch mal an Femtom, Dein zweiter Tipp war auch gut. In meiner /etc/apt/sources.list war nichts mit "jammy-updates" auskommentiert, irgendwas mit "jammy-updates" tauchte erst gar nicht irgendwo auf. Ich habe Deine beiden Zeilen einfach in die Liste kopiert, die Arduino-IDE nochmal installiert und siehe an, jetzt funktioniert sie auch.

Ich bin einfach nicht davon ausgegangen, dass ein Programm, das über den offiziellen Weg installiert wurde, über einen anderen Weg seine Updates erhält. Ich verstehe auch nicht, warum man das so eingerichtet hat, aber es wird wohl einen guten Grund dafür geben.

Vielen Dank auch an ChickenLipsRfun2eat. Ich habe mir ein Appimage heruntergeladen und werde es auf einen Stick installieren.

Femtom

Anmeldungsdatum:
21. November 2022

Beiträge: 105

Wendelinchen schrieb:

Ich bin einfach nicht davon ausgegangen, dass ein Programm, das über den offiziellen Weg installiert wurde, über einen anderen Weg seine Updates erhält. Ich verstehe auch nicht, warum man das so eingerichtet hat, aber es wird wohl einen guten Grund dafür geben.

Nur noch als Anmerkung, das sind offizielle Quellen. Wenn man Ubuntu installiert, sind die normalerweise aktiv. Wenn die bei dir nicht vorhanden waren, muss sie jemand ausgeschaltet haben. Das geht auch über die graphische Benutzeroberfläche. Einstellen kann man das, weil für manche Einsatzzwecke nur die unbedingt notwendigen Updates gewollt sind (z.B. nur Sicherheitsupdates für einen laufenden Server).

Antworten |