Arduino UNO unter OpenSuse 11.1

warning: fread(): Length parameter must be greater than 0 in /var/www/elchs-kramkiste.de/lapurd/includes/common.inc(1695) : eval()'d code on line 19.

Dieser Eintrag beschreibt meine Versuche, ein Arduino UNO (mit USB-Schnittstelle) unter OpenSuse 11.1 32-Bit in Betrieb zu nehmen, da ich mit diesem Arduino-Board unter Kubuntu 10.04 32-Bit LTS ab dem 2. Tag des Experimentierens immer größere Probleme hatte.

Vor dem Anschluss des UNO-Boards erst mal in einer Konsole


tail -f /var/log/messages

eingegeben, um zu sehen, ob es auch richtig erkannt wird.

kernel: usb 4-2: new full speed USB device using ohci_hcd and address 2
kernel: usb 4-2: configuration #1 chosen from 1 choice
kernel: usb 4-2: New USB device found, idVendor=2341, idProduct=0001
kernel: usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
kernel: usb 4-2: Product: Arduino Uno
kernel: usb 4-2: Manufacturer: Arduino (www.arduino.cc)
kernel: usb 4-2: SerialNumber: 6493832333135171C102
kernel: cdc_acm 4-2:1.0: ttyACM0: USB ACM device
kernel: usbcore: registered new interface driver cdc_acm
kernel: cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters

Die drittletzte Zeile der o.a. Ausgabe zeigt das Device "ttyACM0", also war das schon mal ok.

Die Arduino-0021-IDE (weil erst ab dieser Version das neue UNO-Board unterstützt wird) installiert (*.tgz entpackt nach ~/opt/arduino21), Link zum Arduino-IDE-Programm auf dem Desktop erzeugt, gestartet, auf Uno umgestellt, aber Schnittstelle /dev/ttyACM0 wird nicht angeboten unter "Tools / Serial Port" (genauer: Serial Port ist grau und kann gar nicht angewählt werden).

Also per Yast nach dieser Anleitung die Pakete avrdude und avr-libc (zieht autom. cross-avr-binutils und cross-avr-gcc nach bzw. mit) installiert.

Ergebnis: Menüeintrag "Serial Port" unter "Tools" war immer noch grau.

Arduino in einer Konsole gestartet:

~/opt> /home/system1/opt/arduino-0021/arduino
Experimental:  JNI_OnLoad called.
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version   = RXTX-2.1-7
check_group_uucp(): error testing lock file creation Error details:
                    Keine Berechtigungcheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL
check_group_uucp(): error testing lock file creation Error details:
                    Keine Berechtigungcheck_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL
....

Die letzte Meldung wurde mehrfach wiederholt.

Also wohl ein Rechteproblem (wie auch in der o.g. Anleitung erwähnt).

Meine Benutzerkennung der Gruppe uucp (dialout war schon) hinzugefügt, reichte nicht, obige Fehlermeldungen blieben. Rechte auf /var/lock/ auf 777 gesetzt, keine Fehlermeldungen mehr, aber in der Arduino-IDE war "Tools / Serial Port" immer noch grau.

Neuer Versuch (nach dieser Anleitung): Die CrossToolchain Repo in die Yast-Repos eingebunden und dadurch

avrdude von 5.5 auf 5.10,
avr-libc von 1.6.1 auf 1.7.0
cross-avr-gcc von 4.1.3 auf 4.3.3 und
cross-avr-binutils von 2.19 auf 2.19.1

gebracht (per Yast neu installiert und die jeweils aus dem Repo angebotene Version selektiert).

Ergebnis: Arduino-IDE gestartet, "Tools / Serial Port" immer noch grau....

Also weiter im Text (also der Anleitung weiter folgend):

Die Zeile bzw. der Befehl


find /opt/cross/bin/ -iname "avr*" -exec ln -s -t /usr/local/bin/ {} \;

musste bei mir auf


find /opt/cross/avr/bin/ -iname "avr*" -exec ln -s -t /usr/local/bin/ {} \;

geändert werden (OpenSUSE 11.1 hat wohl eine andere Verzeichnisstruktur, könnte bei 11.3 wieder anders sein usw.).

OpenJava sowie rxtx-java-2.1_CVS20090105-1.15.i586.rpm installiert
bzw. über in Step 5 beschriebene 1-Klick-Installation (an OpenSuse 11.1 angepasster Link).

Die Arduino-IDE gestartet und .... S*****.... 'tschuldigung, aber unter "Tools" war der Eintrag "Serial Port" immer noch grau. Dann mal zu einer Maßnahme gegriffen, die ich überwiegend nur von WIN-Installationen kenne (aber gelegentlich auch bei Linux wirkt):

Neustart des PCs!

Und?

Bingo, geschafft. Menüeintrag "Serial Port" war anwählbar, ein Device (ttyS0) verfügbar. Also die IDE wieder beendet, das Arduino UNO Board angeschlossen, IDE gestartet und jetzt war auch das Device ttyACM0 verfügbar und nutzbar für den Uplaod von Sketchen (wie die Programme im Arduino-Umfeld genannt werden).

Mal sehen, wie sich das Ganze weiter entwickelt, denn unter (K)ubuntu gab es auch erst ab dem 2. Tag Verbindungs- bzw. Übertragungsprobleme.