Arduino unter Ubuntu 12.04 installieren
Keywords: UNIX Linux Ubuntu Arduino Installation

| ### Arduino Prof. Jürgen Plate

# Arduino unter Ubuntu 12.04/14.04 installieren

Es scheint eigentlich sehr einfach zu sein, die Arduino-IDE unter Ubuntu zu installieren - einfach das Paket mit Aptitude oder `apt-get` auf dem Rechner vollautomatisch einrichten. Nur leider ist die Version im Repository von Ubuntu schon etwas in die Jahre gekommen. Da ist es besser, sich die frische Version direkt von der Arduino-Webseite zu holen. Bei der Gelegenheit kann man dann auch gleich noch etwas tunen.

Die Installation läuft in einigen Schritten ab. Übrigens müssen Sie die Kommandos nicht alle von Hand eingeben, denn weiterunten finden Sie den Link auf ein Bash-Script, das alle Schritte vollautomatisch erledigt. Da alle Kommandos Root-Berechtigung erfordern, erzeugen Sie sich am Besten mit `sudo bash` eine Root-Shell. Um die Arduino-Oberfläche zu installieren, gehen Sie folgendermaßen vor.

- Die notwendigen Tools installieren:
  - Java-Runtime (falls nicht schon auf der Platte):

             apt-get -y install openjdk-6-jre libjna-java libjna-java-doc
             apt-get -y install extra-xdg-menus

    Falls sich mehr als eine Java-Variante auf der Platte befindet muss mittels `update-alternatives --config java` die richtige Version aktiviert werden.
  - GNU-Tools für Atmel AVR-Prozessoren (Compiler, Bibliotheken usw.):

             apt-get -y install gcc-avr avr-libc avrdude avrdude-doc \
             binutils-avr gdb-avr ponyprog

  - Das Arduino-Paket selbst von der Arduino-Website. Statt sich per Browser durch die Webseiten zu klicken, kann das auch mit `wget` automatisiert werden. Danach wird das Paket ausgepackt. Das Verzeichnis wird dann noch auf den Standardnamen 'arduino' verlinkt:

             # Variablen nach Bedarf anpassen:
             NAME=<Namen des Standard-Users>
             AVERSION=<Aktuelle Version der Arduino-Software>

             # Nun die Kommandos:
             cd /home/$NAME/
             wget http://arduino.googlecode.com/files/${AVERSION}-linux.tgz
             tar xzvf ${AVERSION}-linux.tgz
             ln -s $AVERSION arduino

  Nun kann die IDE schon mal testweise gestartet werden. Sinnvoll ist es, gleich mal das Arduino-Board per USB mit dem PC zu verbinden, damit sich das verwendete Schnittstellen-Device feststellen läßt. Normalerweise wird der Treiber automatisch geladen. Wenn Sie nun die IDE starten (`cd arduino; ./arduino`) und unter Tools → Serial Port den Port auswählen, sehen Sie gegebenenfalls einige Standard-COM-Ports (`/dev/ttyS0, /dev/ttyS1 ...`) und den USB-Port des Arduino. Sind es mehrere, können Sie mit dem Kommando `dmesg` nach dem zuletzt eingesteckten USB-Device suchen (meist `/dev/ttyACM0` oder `/dev/ttyUSB0`).

  Jetzt wird das Ganze noch etwas aufgemotzt. Die Arduino-IDE verwendet das Swing-Fenstersystem anstelle von GTK, was bei manchen Rechnern zu einer IDE führt, die etwas holperig läuft. Das lässt sich durch Editieren des Arduino-Startscripts ändern:

      cd arduino  # falls Sie nicht schon/noch im Verzeichnis sind
      test -f arduino.orig || cp arduino arduino.orig # Backup anlegen
      # Hier wird der ganze Schlauch "-Dswing..." entfernt
      sed -e 's/^java.*$/java processing.app.Base/' < arduino.orig > arduino

  Damit der User auch über die serielle Schnittstelle mit dem Arduino kommunizieren darf, muss er gegebenenfalls noch in die Gruppen "tty" und "dialout" aufgenommen werden:

      usermod -aG tty $USERNAME
      usermod -aG dialout $USERNAME

  Mit dem neueren Modellen des Arduino Uno hat ja auch der Chip für die USB-Anbindung gewechselt, es ist nicht mehr der gute alte FTDI-Baustein. Deshalb heisst das Device auch anders, nämlich `/dev/ttyACM0`. Nach dem letzten Update der Arduino-IDE zeigte sich plötzlich das Phänomen, dass die serielle Schnittstelle zum Arduino in der IDE nicht ausgewählt werden konnte. Grund dafür waren die unzureichenden Zugriffrechte. Da kann man aber gleich Nägel mit Köpfen machen und ein für alle mal passende UDEV-Regeln formulieren und in der Konfiguration verankern. Die Kommandofloge trägt dann passende Regeln für den Arduino in die Datei ein:

      sudo su
      cat <<EOF >> /etc/udev/rules.d/50-local.rules
      #Arduino FTDI + NANO
      ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", RUN+="chmod 555 /dev/ttyUSB0"
      #Arduino UNO
      ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idProduct}=="0043", ATTRS{idVendor}=="2341", RUN+="chmod 555 /dev/ttyACM0"
      EOF
      udevadm control --reload-rules

  Wer möchte, kann auch die Zeilen noch duplizieren und für die Devices `/dev/ttyUSB1` und `dev/ttyACM1` erweitern - falls mal zwei Arduinos am PC stecken. In manchen Fällen macht auch der Modemmanager von Ubuntu Ärger. Wenn Sie sowieso keine Modems etc. im EInsatz haben, können Sie den Modemmanager auch löschen:

      sudo apt-get remove modemmanager

  Zum Schluss kann man der IDE noch einen Starter auf dem Desktop spendieren. Wer die deutsche Version installiert hat, muss statt "Desktop" "Arbeitsfläche" verwendet werden:

      cat < /home/$USERNAME/Desktop/Arduino.desktop
      #!/usr/bin/env xdg-open

      [Desktop Entry]
      Version=1.0
      Type=Application
      Terminal=false
      Icon[de_DE]=arduino
      Name[de_DE]=Arduino
      Exec=/usr/bin/arduino
      Name=Arduino
      Icon=arduino
      Comment=Arduino
      EOF7
      chmod 755 /home/$USERNAME/Desktop/Arduino.desktop
      chown $USERNAME.$USERNAME /home/$USERNAME/Desktop/Arduino.desktop

  Das Gesamt-Script heisst arduinoinstall und benötigt nur einen Parameter, den Usernamen (was man z. B. durch `DoArduino.sh franz` für den Unser "franz" erreicht. Zusammen mit der Arduino-IDE wird auch noch das serielle Terminalprogramm `putty` inklusive Starter installiert (`putty` kann auch als ssh-Client dienen).

  Vor dem Aufruf (`./arduinoinstall`) muss das Script mittels `chmod +x arduinoinstall` ausführbar gemacht werden. Oder man ruft es einfach mit der Bash auf: `bash arduinoinstall`.

  ###### Copyright © Hochschule München, FK 04, Prof. Jürgen Plate und die Autoren
  Letzte Aktualisierung: