Skript beim Start von Arduino Yún ausführen

funktioniert mit allen Linino Linux Distributionen


Für ein Projekt beschäftige ich mich aktuell mit dem Arduino Yún. Anders als die anderen Arduinos kommt das Yún mit der Linux-Distribution Linino daher. Diese bietet mit LuCi gleich eine passende Verwaltungsoberfläche für den Browser basierend auf OpenWRT.

Eines der ersten Dinge die ich für mein Vorhaben brauchte war es, ein Skript immer direkt nach dem Systemstart laufen zu lassen. Bloß was ist der korrekte Weg mit dem Mini-Linux und dem Yún? Nun, ich weiß es nicht. Die für mich am praktikabelsten scheinende Lösung möchte ich aber hier für mich und alle interessierten festhalten.

Da es über die Weboberfläche einen Editor für crontab gibt hatte ich mich anfangs entschiedenen dies zu nutzen, um mein Skript nach dem Start/Reboot auszuführen. Aber das Yún bzw. Linino unterstützt das @reboot Attribut von Crontab nicht. Also ist dies leider keine Option, auch wenn man damit einfach seine Skripte verwalten könnte. Aber es gibt andere Wege, vielleicht nicht ganz so praktisch, führen aber zum Ziel.

Skript erstellen

  1. Geht per SSH auf das Yún. Das geht unter Windows z.B. mit Putty.
  2. Es empfiehlt sich natürlich die Datei auf der SD Karte zu lagern, sofern vorhanden. Dafür erstellt man auf der SD Karte einen Ordner arduino so wird dieser automatisch nach dem nächsten Start unter /mns/sda1 eingebunden. Wechselt mit cd mnt/sda1/arduino in das Verzeichnis oder dorthin, wo die Datei liegen soll.
  3. Erstellt die Skript-Datei, in meinem Beispiel startup, mit touch startup.
  4. Die neue Datei muss für die Verwendung als ausführbar markiert werden, dies geschieht mit chmod a+x startup.
  5. Mit einem Editor wie vi, nano oder cat kann nun der Inhalt/das Skript in der Datei angelegt werden.

Damit wurde nun eine ausführbare Datei auf der SD Karte erstellt, welche beim Systemstart genutzt werden kann. Testen kann man dies auch vorab mit ash startup. Im zweiten Teil muss dem Arduino nur noch mitgeteilt werden, dass die neue Datei auch aufgerufen werden soll.

Skript automatisch ausführen

  1. Öffnet die Datei /etc/rc.local mit einem Editor. Hier können Befehle angegeben, welche zum Systemstart aufgerufen werden sollen. Dort wird zusätzlich auch eine kleine Verzögerung mit eingebaut, damit das System auch wirklich bereit ist.
  2. Fügt hier über die Zeile exit 0 folgendes ein: sleep 10;/mnt/sda1/arduino/startup.
  3. Nach dem speichern sollte der Yún neu gestartet werden. Mit dem nächsten Boot sollte euer Skript automatisch ausgeführt werden.

Es ist sehr schade, dass es nicht möglich ist Crontab mit @reboot zu nutzen. Mit der hier gezeigten Lösung kann man zwar alles bewerkstelligen, was man mit dem Crontab auch könnte, die Verwaltung oder gar Änderungen im Browser sind so aber leider nicht einfach zu realisieren.

Zusammengefassung

cd /mnt/sda1/arduino
touch startup
chmod a+x startup
vi /etc/rc.local
Datei anlegen und in Editor öffnen
sleep 10;/mnt/sda1/arduino/startup
in die Datei /etc/rc.local einfügen
Share:

Einen Kommentar verfassen

Ihre E-Mail-Adresse wird nicht veröffentlicht, sie dient nur der Identifikation! Für die Profilbilder wird Gravatar verwendet und reCAPTCHA, um Spam zu vermeiden.

Kommentare 0

Es sind noch keine Kommentare für diesen Beitrag vorhanden.