Octoprint auf Orange Pi Zero H2+ installieren

Veröffentlicht von

orangepi-zero-octoprint

EDIT 16.03.2021: Keine Unterstützung mehr, beide Orange Pi sind bei mir den Hitzetod gestorben.

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 guten Smartphone oder gar Laptop vergleichbar. Nachteile: Höherer Stromverbrauch, Octoprint lässt sich nur über Konsole aktualisieren (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 Zero 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.

Update 06.12.2018 Mir erscheint mittlerweile das Image vom Armbian Stretch 
mainline kernel 4.14.y am sinnvollsten.  Es läuft schön sauber durch.

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 herunterzuladen.

Die IP des Zeros finden wir über das Routerbackend heraus. Bei einer Fritz.box geben wir in den Browser einfach fritz.box ein. Das Standardpasswort ist zumeist 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 ein 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 

[code]sudo reboot[/code]

eingeben. Und wieder als Root einloggen.

2.2 WLan vom OrangePi Zero einrichten

Mit:

[code]sudo nmtui[/code]

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
[code]sudo reboot[/code]
den orangepi neu starten, 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.

[code]sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-pip python-dev git virtualenv python-setuptools psmisc[/code]

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.

[code]sudo adduser octoprint
sudo usermod -a -G tty octoprint
sudo usermod -a -G dialout octoprint
sudo adduser octoprint sudo[/code]

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

[code]sudo visudo[/code]

am Ende 

[code]octoprint ALL=(ALL) NOPASSWD:ALL[/code]

einfügen.

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

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

[code]sudo passwd octoprint -d
sudo su octoprint[/code]

3.2 PYSerial installieren

Veraltet:

[code]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[/code]

Aktuelle PYSerial (Stand 09.11.2018, nur interessant für die Armbian Xenial Image)

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

3.3 Endlich Octoprint installieren

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

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

Nun kam hier bei mir die Fehlermeldung Netaddr wäre noch nicht installiert. Mit folgendem Befehl wird es nachinstalliert.

[code]pip install netaddr

pip install –upgrade pip[/code]

4.Server starten

[code]~/OctoPrint/venv/bin/octoprint serve[/code]

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:

[code]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[/code]

Jetzt bearbeitet Ihr folgendes Verzeichnis
[code]sudo nano /etc/default/octoprint[/code]

Ersetzt die beiden Zeilen
[code]DAEMON=/home/pi/OctoPrint/venv/bin/octoprint
OCTOPRINT_USER=pi[/code]
mit
[code]DAEMON=/home/octoprint/OctoPrint/venv/bin/octoprint
OCTOPRINT_USER=octoprint[/code]

Wieder mit Strg + X / Y / Enter abspeichern. Nun noch ins Autostart-Verzeichnis verschieben.
[code]sudo update-rc.d octoprint defaults[/code]
Abschließend
[code]sudo service octoprint start[/code]

ausführen und zum Test

[code]sudo reboot[/code]

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 erst mal wieder zum „root“ mit

[code]sudo su root
cd ~[/code]

5.1 ffmpeg und mjpg_streamer installieren

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

[code]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/[/code]

Daraufhin legen wir die mjpg_streamer an
[code]sudo nano /etc/init.d/mjpg_streamer[/code]

und kopieren diesen Quelltext hinein
[code]#!/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 640×480 -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 640×480 -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[/code]

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

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

[code]sudo chmod 0755 /etc/init.d/mjpg_streamer[/code]

Nur noch autostartfähig machen

[code]update-rc.d mjpg_streamer defaults[/code]

und rebooten

[code]sudo reboot[/code]


[code]cd mjpg-streamer

sudo ./mjpg_streamer -i „./input_uvc.so“ -o „./output_http.so“[/code]

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

[code]/usr/local/bin/mjpg_streamer -i „/usr/local/lib/input_uvc.so -d /dev/video0 -n -r 640×480 -f 25“ -o „/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080“ >/dev/null 2>&1 &[/code]

aus

[code]sudo nano /etc/init.d/mjpg_streamer[/code]

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.

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

Octoprint-Einstellungen-Web

Letztlich über putty noch einmal den Orangepi neu booten.
[code]sudo reboot[/code]
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.
[code]/usr/local/bin/mjpg_streamer -i „/usr/local/lib/input_uvc.so -d /dev/video0 -n -y -r 640×480 -f 10“ -o „/usr/local/lib/output_http.so -n -w /usr/local/www -p 8080“ >/dev/null 2>&1 &[/code]

Mit

[code]v4l2-ctl –list-formats-ext[/code]
Liest man alle möglichen Formate und Auflösungen der angeschlossenen Webcam aus

und
[code]htop[/code]
ist auch klasse, um die CPU-Auslastung grafisch anzeigen zu lassen. Hier wird auch angezeigt, welcher Prozess welche Auslastung hat.

Happy printing!

13 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?

  3. Vielen Dank für die Anleitung.
    Ich krieg OctoPrint zum laufen. Jedoch Version 1.3.10
    Updaten klappt irgendwie nicht. Auch Autostart will nicht funktionieren.
    Könntest du mal prüfen ob die Anleitung noch aktuell ist?

    1. Hast du dir mal die Image, welche ich zum download anbiete, angeschaut? Mit der habe ich auf die 1.3.1 geupdated und die läuft bei mir genau in diesem Moment.

  4. octoprint@orangepizero:~/OctoPrint$ pip install –upgrade pip
    Invalid requirement: ‚–upgrade‘
    Traceback (most recent call last):
    File „/usr/lib/python2.7/dist-packages/pip/req/req_install.py“, line 82, in __init__
    req = Requirement(req)
    File „/usr/share/python-wheels/packaging-17.1-py2.py3-none-any.whl/packaging/requirements.py“, line 97, in __init__
    requirement_string[e.loc:e.loc + 8]))
    InvalidRequirement: Invalid requirement, parse error at „‚\xe2\x80\x93upgra'“

  5. Sehr schöne Anleitung …. leider OutDated … welche Armbian Version wäre nach heutigen (12/20202) Maßstäben die richtige /sinnvollste ? die Focal oder die Buster ?
    Danke im Voraus

  6. Soweit eine tolle Anleitung .. NUR bei 3.3 kommt die Fehlermeldung „virtualenv command not found“ — bin mir auch nicht sicher ob er Python-pip (pip3 im 3ten Anlauf) nun wirklich genommen hat
    ich glaube mit dieser Anleitung komme ich heute (2021) leider nicht weiter …. hatte sehr gehofft das es klappt … kann jemand helfen ?

  7. My thanks for this guide!

    I have OrangePi Zero 2, not H2, slightly different animal.
    There is no armbian for this one yet. But official Debian (server) works well.
    Rest of the guide was extremely useful. Also seems that Octoprint could not be installed under Python 2 environment anymore – some dependency complained. I installed Python3 packages, works. Had trouble with mjpeg_streamer because did not notice quotes: „“ instead of „. 🙂

  8. Servus…wir haben 2021 und die Anleitung schient nicht mehr zu funktionieren. Die Instalation ist zum Teil anders, es gibt andere Abfragen und auch ab „Installation Octoprint“ geht’s nicht wirklich weiter…vielleicht hast du da mal ein Update? Wäre toll, denn ich hab hier einen Zero und würde gerne Octoprint mitlaufen lassen wegen Octolapse… Danke

Kommentar hinterlassen

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