Octoprint auf Orange Pi Zero H2+ installieren

Veröffentlicht von

orangepi-zero-octoprint

Vorab: Warum ein Orange Pi Zero benutzen, wenn es Raspberry Zero gibt? Der Orangepi Zero hat von Haus aus 3 voll funktionierende USB-Anschluss und die WLan Reichweite ist mit einem gutem Smartphone oder gar Laptop vergleichbar. Nachteile: Höherer Stromverbauch, Octoprint lässt sich nur über Konsole updaten (Update 15.07.2018): mittlerweile ganz normal Updateable).

  1. Einkaufsliste
  2. Armbian installieren
    1. Armbian auf OrangePi Zero H2+ einrichten
    2. WLAN über Putty einrichten
  3. Octoprint vorbereiten
    1. Benutzer “Octoprint” hinzufügen
    2. PYSerial installieren
    3. Octoprint installieren
  4. Server starten
    1. Octoprint automatisch starten lassen
  5. Webcam installieren
    1. ffmpeg und mjpg_streamer installieren
    2. Webcam in Octoprint aktivieren
  6. Octoprint restart, reboot und shutdown aktivieren
  7. Tuningtipps
  8. Image Octoprint 1.3.6 + Webcam für Orangepi Zero Download
  9. Orange Pi Zero Gehäuse STL Download

Was müssen wir nun machen, um Octoprint auf dem  Orangepi Zero zum laufen zu bekommen?

2.Armbian installieren:

Armbian für den Orangepi wird nun heruntergeladen. Ich als Nichtlinuxer hatte nun  schon ein Problem, ob nun Legacy oder Mainline kernel?? Unter Legacy gibt es non-open-source Treiber für die Grafik, der Mainline-Kernel wäre besser durchoptimiert. Ich habe mich für den Legacy Kernel entschieden.

Um nun unsere Armbian Image auf eine SD-Karte zu bekommen, laden wir noch Etcher herunter. Etcher ist als Windows 32/64, MacOs und Linux Version herunterladbar.

Haben wir die Datei Armbian_5.35_Orangepizero_Ubuntu_xenial_default_3.4.113.7z (Stand 07.04.2018) heruntergeladen entpacken wir diese z.B. mit Winrar. Benötigt wird nur die *.img Datei hier Armbian_5.35_Orangepizero_Ubuntu_xenial_default_3.4.113.img.

Anschließend starten wir Etcher und folgen der Beschreibung der Software.

Select Image -> die Datei Armbian_5.35_Orangepizero_Ubuntu_xenial_default_3.4.113.img auswählen und auf Start klicken. Dabei die Abfrage von Windows mit Ja bestätigen.

etcher-armbian-installieren

Nach dem Flashvorgang die Speicherkarte abmelden und aus dem PC ziehen.

2.1 Armbian auf OrangePi Zero H2+ einrichten

Nun wird die SD-Karte in den Zero eingesteckt, dass Lan-Kabel in die Buchse des OrangePi geführt und anschließend unter Strom gesetzt. Nun heißt es etwas warten und wir nutzen die Zeit, um Putty herunter zu laden.

Die IP des Zeros finden wir über das Routerbackend heraus. Bei einer Fritz.box geben wir in den Browser einfach fritz.box ein. Das Standard Passwort ist zumeinst 1234. Im Backend wird auf “Netzwerk” geklickt und da sollte dann unter LAN auch schon unser “orangepizero” stehen.

fritz.box-orangepi-zero-h2+

Nun haben wir die IP-Adresse, hier 192.168.178.133. Diese tragen wir in Putty ein, am besten auch gleich als Session abspeichern, da immer mal wieder rein reboot gemacht werden muss. Die Abfrage um den Server’s host key bestätigen wir wieder mit ja.

putty-orangepi-zero-h2+

Als nächstes kommt die Abfrage nach Loginnamen und Passwort. Achtung! Das Passwort wird nicht angezeigt, dennoch an das Zero übergeben. Einfach weitertippen und Enter drücken.

Login: root

Passwort: 1234

Unmittelbar danach wird ein Account Passwortwechsel zu Pflicht.

Hier

Passwort: orangepi

Daraufhin sollt ihr einen Useraccount anlegen, hier

Login: pi

Passwort: orangepi

Den Rest habe ich mit Enter bestätigt und die Frage ob die Informationen richtig sind bejaht. Etwas warten und Armbian meckert über die nicht korrekte Größe der Partition der SD.

Dazu 

sudo reboot

eingeben. Und wieder als Root einloggen.

2.2 WLan vom OrangePi Zero einrichten

Mit:

sudo nmtui

Wir klicken auf “Activate a connection”, wählen unter Wi-Fi unseren Router aus und bestätigen mit Enter, geben daraufhin dessen Passwort ein.

nmtui-orangepi-zero

Ab jetzt sollte in eurem Router der Orangepi als Lan und Wlan Gerät angezeigt werden.

orangepi-zero-lan-wlan

Ihr könnt ab jetzt euren Pi vom Lan ziehen und am besten nun via

sudo reboot


den orangepi neustarten, um das Archiv auf die komplette SD-Karte zu erweitern.

3.Octoprint auf dem Orangepi Zero installieren

Nachfolgende Befehle müssen abgearbeitet werden, zwischen jeden Befehl kann schon einige Zeit vergehen.. Einzelne Abfragen sollten mit “Y” bestätigt werden.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-pip python-dev git virtualenv python-setuptools psmisc

3.1 Benutzer Octoprint hinzufügen

Um die volle Konfiguration von Octoprint benutzen zu können, braucht ihr noch einen User der auf dem Namen octoprint läuft. Hier muss vorerst wieder ein Passwort gesetzt werden. Ich nahm wieder “orangepi”, die weiteren Abfrage einfach mit Enter bestätigen und Y abschließen.

sudo adduser octoprint
sudo usermod -a -G tty octoprint
sudo usermod -a -G dialout octoprint
sudo adduser octoprint sudo

Nun müssen wir noch die Passwortabfrage für den User “octoprint” entfernen.

sudo visudo

am Ende 

octoprint ALL=(ALL) NOPASSWD:ALL

einfügen.

Mit Strg + X und Y + Enter speichert ihr ab.

Jetzt löschen wir das Passwort für octoprint und wechseln den User:

sudo passwd octoprint -d
sudo su octoprint

3.2 PYSerial installieren

cd ~
wget https://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz
tar -zxf pyserial-2.7.tar.gz
cd pyserial-2.7
sudo python setup.py install

3.3 Endlich Octoprint installieren

cd ~
git clone https://github.com/foosel/OctoPrint.git
cd OctoPrint
virtualenv venv
./venv/bin/python setup.py install

Das wars, Octoprint ist installiert. Leider noch nicht ganz, es startet noch nicht automatisch.

4.Server starten

~/OctoPrint/venv/bin/octoprint serve

Jetzt ist der Server gestartet, leider müsste der Befehl nach jedem Neustart wieder manuell ausgeführt werden. Aus diesem Grunde weiter im Text.

4.1 Octoprint Server automatisch starten lassen

Wir sind weiterhin als User “octoprint” angemeldet und geben folgende Zeilen der Reihe nach ein:

sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint
sudo chmod +x /etc/init.d/octoprint
sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint

Jetzt bearbeitet ich folgendes Verzeichnis

sudo nano /etc/default/octoprint

Ersetzt die beiden Zeilen

DAEMON=/home/pi/OctoPrint/venv/bin/octoprint
OCTOPRINT_USER=pi


mit

DAEMON=/home/octoprint/OctoPrint/venv/bin/octoprint
OCTOPRINT_USER=octoprint

Wieder mit Strg + X / Y / Enter abspeichern. Nun noch ins Autostart-Verzeichnis verschieben.

sudo update-rc.d octoprint defaults


Abschließend

sudo service octoprint start

ausführen und zum Test

sudo reboot

letztlich ausführen.

Mit Eurer IP, hier 192.168.178.28, nun in den Browser 192.168.178.28:5000 eingeben.

5.Webcam für Octoprint auf dem Orangepi Zero einrichten

Octopi Webcam einrichten

Da wir immer noch als “octoprint” User in der Konsole angemeldet sind, wechseln wir erstmal wieder zum “root” mit

sudo su root
cd ~

5.1 ffmpeg und mjpg_streamer installieren

Jetzt können wir die nötigen Pakete nachinstallieren mit

apt-get install ffmpeg
apt-get install subversion-tools libjpeg-dev libcairo2-dev libpango1.0-dev libgif-dev build-essential g++ imagemagick v4l-utils
svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
cd mjpg-streamer
make
make install
mv /root/mjpg-streamer /opt/

Daraufhin legen wir die mjpg_streamer an

sudo nano /etc/init.d/mjpg_streamer

und kopieren diesen Quelltext hinein

#!/bin/sh
# /etc/init.d/mjpg_streamer

#
# Creation: 04.02.2013
# Last Update: 04.02.2013
#
# Written by Georg Kainzbauer (http://www.gtkdb.de)
#

### BEGIN INIT INFO
# Provides: mjpg_streamer
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: MJPG-Streamer
# Description: MJPG-Streamer takes JPGs from Linux-UVC compatible webcams and streams them as M-JPEG via HTTP.
### END INIT INFO

start()
{
echo "Starting mjpg-streamer..."
# /usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -y -r 640x480 -f 10" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080" >/dev/null 2>&1 &
/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -r 640x480 -f 25" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080" >/dev/null 2>&1 &
}

stop()
{
echo "Stopping mjpg-streamer..."
kill -9 $(pidof mjpg_streamer) >/dev/null 2>&1
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac

exit 0

mit Strg + X / Y / Enter wird wieder abgespeichert.

Damit die mjpg ausführbar wird, werden Zugriffsrechte angepasst.

sudo chmod 0755 /etc/init.d/mjpg_streamer

Nur noch autostartfähig machen

update-rc.d mjpg_streamer defaults

und rebooten

sudo reboot

5.2 Webcam testen und in Octoprint aktivieren

Mit Eurer IP und dem Zusatz :8080/?action=stream könnt ihr nun testen, ob eure Webcam läuft.

webcam-octoprint-testbild

Wenn alles läuft, dann starten wir Octoprint. Wenn nicht, schaut in die Kompatibilitätsliste der Webcams zu Octoprint und gleicht folgende Zeile

/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -r 640x480 -f 25" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080" >/dev/null 2>&1 &

aus

sudo nano /etc/init.d/mjpg_streamer

mit den Einstellungen der jeweiligen Cams ab.

Mit 192.168.178.28:5000 rufen wir nun Octoprint im Browser auf und richten unter Einstellungen\Funktionen\Webcam+Zeitraffer mit folgenden Zeilen ein.

http://192.168.178.28:8080/?action=stream
http://192.168.178.28:8080/?action=snapshot
/usr/bin/ffmpeg

Octoprint-Einstellungen-Web

Letztlich über putty noch einmal den Orangepi neu booten.

sudo reboot


und Octoprint im Browser neu laden – fertig!

6.Octoprint Serverbefehle hinzufügen

Unter Octoprint Settings\Octoprint\Server\Befehle noch folgende Codes einfügen:

octoprint-server-befehle

7.Tuningtipps

Mit dem entfernen von “-y” kann man eine Menge an CPU-Last einsparen, sofern die Webcam “MJPG” unterstützt.

/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -y -r 640x480 -f 10" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080" >/dev/null 2>&1 &

Mit

v4l2-ctl --list-formats-ext


Liest man alle möglichen Formate und Auflösungen der angeschlossenen Webcam aus

und

htop


ist auch klasse, um die CPU-Auslastung grafisch anzeigen zu lassen. Hier wird auch angezeigt, welcher Prozess welche Auslastung hat.

Happy printing!

Please follow and like us:

4 Kommentare

  1. großartige Arbeit vielen dank für deine Mühen. Ich habe nur ein großes Problem, ein zweiter orangepi zero mit der Optopi image von dir holt sich die selbe ip, liegt wahrscheinlich daran das beide auch die selbe mac adresse haben ;( bin absolut kein programmierer und hab nur wenig ahnung von linux. wie kann ich die Mac adresse auf dem zweiten opi zero ändern? sudo nmtui scheint er nicht zu mögen weil er sich danach gar keine ip mehr holt.

  2. Hallo, vielen Dank für die Verfügungstellung des Images für den OrangePi !
    Eine Frage hätte ich jedoch, wie hast du dieses erstellt, bin noch auf keinen zufriedenstellenden Weg gekommen. Hast du vielleicht eine Tipp, für eine Anleitung?

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.