Da OctoPrint auf meinem Raspberry 2 etwas träge ist, habe ich meinen alten Intel NUC mit ATOM CPU herausgekramt und OctoPrint darauf installiert.
Nach der Debian minimal Installation müssen noch ein paar Systemanpassungen gemacht werden, damit auch alle Komponenten (wie z.B. WLAN) des NUC funktionieren.
WLAN
Der integrierte WLAN Chip in meinem NUC ist ein “ Intel Corporation Wireless 7260″. Hierfür werden Firmware Dateinen von Intel benötigt. Diese sind im „non-free“ Repository enthalten. Dieses muss allerdings erst noch aktiviert werden. In der Datei /etc/apt/sources.list
muss hinter dieser Zeile
deb http://ftp.de.debian.org/debian/ stretch main
noch das „non-free“ Repository ergänzt werden, so dass sie folgendermaßen aussieht:
deb http://ftp.de.debian.org/debian/ stretch main contrib non-free
Nun kann man die fehlenden Firmware Dateien nachinstallieren.
apt-get update && apt-get install firmware-iwlwifi firmware-realtek
Nach einem Neustart sollten nun die Netzwerkkarte und die WLAN-Karte ordnungsgemäß funktionieren (Netzwerkkarte funktioniert vorher schon, aber der Kernel meldet eine fehlende Firmware Datei).
Nun fehlt nur noch die WLAN Verbindung. Hierfür muss wpa_supplicant
installiert werden.
apt-get install wpasupplicant
Nun müssen noch Anpassungen an den Dateien /etc/network/interfaces
und /etc/wpa_supplicant/wpa_supplicant.conf
gemacht werden. Die IP-Adresse soll vom DHCP-Server vergeben werden.
vim /etc/network/interfaces
auto wlp2s0
allow-hotplug wlp2s0
iface wlp2s0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
In der Datei wpa_supplicant.conf
müssen die Zugangsdaten zum WLAN angegeben werden. Dieses Beispiel stellt eine Verbindung zu einem WPA2 gesicherten WLAN her.
vim /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="SSID"
psk="PASSWORT"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}
Installation OctoPrint
Die folgenden Pakete sind Grundvoraussetzung und müssen als erstes installiert werden.
apt-get install python-pip virtualenv git libavahi-compat-libdnssd-dev
Nun kann die aktuelle Version aus dem Repository heruntergeladen werden.
cd /opt/
git clone https://github.com/foosel/OctoPrint.git
Da OctoPrint nicht mit Root-Rechten läuft, muss man einen neuen User anlegen. Zusätzlich benötigt der neue Benutzer auch die Rechte auf das OctoPrint Verzeichnis. Nun kann die Virtuelle Python Umgebung für Octoprint erzeugt werden.
useradd -m octoprint
chown -R octoprint:octoprint /opt/OctoPrint
cd OctoPrint
sudo -u octoprint virtualenv venv
Als kleiner Zwischenschritt kann nun die Python Bibliothek für Bonjour installiert werden.
venv/bin/pip install https://goo.gl/SxQZ06
Nun kann OctoPrint installiert werden.
./venv/bin/python setup.py install
chown -R octoprint:octoprint /opt/OctoPrint
Wenn alles gut gegangen ist, so kann unter http://IP-Adresse:5000/ die OctoPrint-Installation erreicht werden.
Autostart
Bis jetzt muss OctoPrint noch manuell gestartet werden. Das ist aber für einen Server nicht praktikabel. Mit STRG+C
läßt sich OctoPrint wieder beenden. Als nächstes müssen noch die Autostart Scripte eingerichtet werden.
wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.init && sudo mv octoprint.init /etc/init.d/octoprint
wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.default && sudo mv octoprint.default /etc/default/octoprint
sudo chmod +x /etc/init.d/octoprint
Eine kleine Anpassung in der Datei /etc/default/octoprint
und schon lässt sich OctoPrint als Daemon starten. Hier der gesamte Inhalt der Datei.
# Configuration for /etc/init.d/octoprint
# The init.d script will only run if this variable non-empty.
OCTOPRINT_USER=octoprint
# base directory to use
#BASEDIR=/home/octoprint/.octoprint
# configuration file to use
#CONFIGFILE=/home/octoprint/.octoprint/config.yaml
# On what port to run daemon, default is 5000
PORT=5000
# Path to the OctoPrint executable, you need to set this to match your installation!
DAEMON=/opt/OctoPrint/venv/bin/octoprint
# What arguments to pass to octoprint, usually no need to touch this
DAEMON_ARGS="--port=$PORT"
# Umask of files octoprint generates, Change this to 000 if running octoprint as its own, separate user
UMASK=022
# Process priority, 0 here will result in a priority 20 process.
# -2 ensures Octoprint has a slight priority over user processes.
NICELEVEL=-2
# Should we run at startup?
START=yes
Ist die ConfigDatei geändert, muss noch das Script dem Autostart hinzugefügt werden.
update-rc.d octoprint defaults
Zugriff auf den seriellen Port
Um Zugriff auf die seriellen Ports des Systems zu bekommen, muss der Benutzer octoprint
der Gruppe dailout
hinzugefügt werden.
usermod -a -G dialout octoprint
Nach einem Neustart des Systems sollte nun die Webseite mit dem Wizzard erreicht werden können.