Installation von Octoprint

User octoprint (oder eigenen Benutzer) erstellen und dann mit octoprint am Server anmelden

adduser octoprint

Wechsel in das Heimverzeichnis des Benutzers octoprint

cd ~

Benutzer octoprint in die sudoers Datei aufnehmen

su
nano /etc/sudoers

Zeile einfügen und mit Strg+O speichern —> STRG+X SCHLIESSEN

octoprint ALL=(ALL) ALL

Download und Installation der benötigten Pakete

sudo apt-get install python-pip python-dev git
sudo apt-get install python-setuptools

Download des Octoprint-Installationsverzeichnises (es wird im Homedirectory des Benutzers octoprint angelegt (/home/octoprint/OctoPrint)

git clone https://github.com/foosel/OctoPrint.git

Wechsel in das neue (heruntergeladene) Verzeichnis OctoPrint (beachte GROSS-/kleinschreibung)

cd OctoPrint

Start der Installation von Octoprint (es handelt sich um ein python-Script, welches mit Root-Rechten ausgeführt wird (sudo))

sudo python setup.py install

Erstellen eines Verzeichnisses (.octoprint) im Homedirectory des Benutzers octoprint

mkdir ~/.octoprint

Damit der Benutzer octoprint auch die serielle Schnittstelle uneingeschränkt benutzen darf, muss ihm dies gestattet werden.

Hinzufügen des Benutzers pi zur Gruppe tty und dialout (Nutzung der seriellen Schnittstellen (auch virtuelle via USB-Port))

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

Erststart

Zum Starten geben wir Folgendes ein:

octoprint serve

Das Antwort sollten einige Textzeilen erscheinen, in der in der letzten Zeile u.A. zu lesen ist:
… Listening on 0.0.0.0:5000
Dies bedeutet, dass der Octoprint-Server erfolgreich gestartet ist und auf dem Port 5000 (Standard-Port) zur Verfügung steht.

Webinterface des Octoprints öffnen (IP.des.Servers:5000

192.168.0.111:5000

STRG+X stoppt den OctoPrintServer wieder

Cura Engine installieren
wechseln ins Home Verzeichniss

cd ~
sudo apt-get -y install gcc-4.7 g++-4.9
git clone -b legacy https://github.com/Ultimaker/CuraEngine.git

ins Curaverzeichniss wechseln …

cd CuraEngine
wget http://bit.ly/curaengine_makefile_patch -O CuraEngine.patch
patch < CuraEngine.patch
make CXX=g++-4.9

Danach findet man die CuraEngine unter

/home/octoprint/CuraEngine/build/CuraEngine

Der OctoPrint Deamon wird gestartet mit

octoprint daemon start

Weitere Befehle

octoprint daemon start|stop|restart

OctoPrint Autostart bei Serverstart

/etc/rc.local editieren

sudo nano /ect/rc.local

Zeile vor exit 0 eintragen

sudo -u octoprint octoprint daemon start

STRG+O speichert —> SRTG+X beendet nano

WebCam:

Streamer download und compilieren.

cd ~
apt-get install subversion libjpeg62-turbo-dev imagemagick libav-tools libv4l-dev cmake
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
export LD_LIBRARY_PATH=.
make

Stream starten mit

./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so"

Für einige Webcams (einschließlich der PS3 Eye) muß der YUV-Modus mit dem folgenden Startbefehl erzwungen werden:

./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so"

Der Stream ist nun unter:

http://<your IP>:8080/?action=stream

verfügbar. (Wenn du eine Fehlermeldung über fehlende Dateien oder Verzeichnisse bekommst, kann das Ausgabe-Plugin mit -o „./output_http.so -w ./www“ weiter helfen.)

Kamera in Octoprint einfügen:

Öffne:

nano /home/octoprint/.octoprint/config.yaml

(erstelle die Datei einfach, wenn sie noch nicht existiert) und füge die folgenden Zeilen hinzu:

webcam:
  stream: http://<your IP>:8080/?action=stream
  snapshot: http://127.0.0.1:8080/?action=snapshot
  ffmpeg: /usr/bin/avconv

Starte den OctoPrint-Server neu, lösche den Cache in Ihrem Browser und lade die OctoPrint-Seite neu. Du solltest nun den Stream von der Webcam auf der Registerkarte „Control“ und eine Registerkarte „Timelapse“ mit Optionen sehen.

WebCam in OctoPrint ein/aus schalten

In

/home/octoprint/OctoPrint/scripts

2 Dateien erstellen

touch /home/octoprint/OctoPrint/scripts/webcam
touch /home/octoprint/OctoPrint/scripts/webcamDaemon

webcam füllen mit

#!/bin/bash
# Start / stop streamer daemon

case "$1" in
    start)
        /home/octoprint/OctoPrint/scripts/webcamDaemon >/dev/null 2>&1 &
        echo "$0: started"
        ;;
    stop)
        pkill -x webcamDaemon
        pkill -x mjpg_streamer
        echo "$0: stopped"
        ;;
    *)
        echo "Usage: $0 {start|stop}" >&2
        ;;
esac

webcamDaemon füllen mit

#!/bin/bash

MJPGSTREAMER_HOME=/home/octoprint/mjpg-streamer/mjpg-streamer-experimental
MJPGSTREAMER_INPUT_USB="input_uvc.so"
MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so"

# init configuration
camera="auto"
camera_usb_options="-r 1280x720 -f 10"
camera_raspi_options="-fps 10"

if [ -e "/boot/octopi.txt" ]; then
    source "/boot/octopi.txt"
fi

# runs MJPG Streamer, using the provided input plugin + configuration
function runMjpgStreamer {
    input=$1
    pushd $MJPGSTREAMER_HOME
    echo Running ./mjpg_streamer -o "output_http.so -p 5100 ./www" -i "$input"
    LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -p 5100  ./www" -i "$input"
    popd
}

# starts up the RasPiCam
function startRaspi {
    logger "Starting Raspberry Pi camera"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options"
}

# starts up the USB webcam
function startUsb {
    logger "Starting USB webcam"
    runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $camera_usb_options"
}

# we need this to prevent the later calls to vcgencmd from blocking
# I have no idea why, but that's how it is...
vcgencmd version

# echo configuration
echo camera: $camera
echo usb options: $camera_usb_options
echo raspi options: $camera_raspi_options

# keep mjpg streamer running if some camera is attached
while true; do
    if [ -e "/dev/video0" ] && { [ "$camera" = "auto" ] || [ "$camera" = "usb" ] ; }; then
        startUsb
    elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "$camera" = "auto" ] || [ "$camera" = "raspi" ] ; }; then
        startRaspi
    fi

    sleep 120
done

Nun die Datei

/home/octoprint/.octoprint/config.yaml

öffnen.

Am Ende einfügen

system:
  actions:
   - action: streamon
     command: /home/octoprint/OctoPrint/scripts/webcam start
     confirm: false
     name: Start video stream
   - action: streamoff
     command: /home/octoprint/OctoPrint/scripts/webcam stop
     confirm: false
     name: Stop video stream

OctoPrint Updaten:

cd /home/octoprint/OctoPrint
git pull
python setup.py clean
python setup.py install

LVM – LV in PV erstellen

Volume Group fileserver erstellen

vgcreate fileserver /dev/sdb1

Logical Volumes share (40GB) in der Volume Group fileserver.

lvcreate --name share --size 40G fileserver 
meins (lvcreate --name home-server --size 5G LVM)

Überblick über unsere Logical Volumes:

lvdisplay

Lass uns nun media von 1GB auf 1.5GB vergrößern:

lvextend -L1.5G /dev/fileserver/media

Lass es uns wieder auf 1GB verkleinern:

lvreduce -L1G /dev/fileserver/media

Vergrößerung des entsprechenden LV auf die neue Gesamtgröße: lvresize

# lvresize --size [size] /dev/[lvg]/[lv]
# z.B.:
lvresize --size 30G /dev/meinlvm/home

Vergrößerung des Dateisystems: resize2fs

# resize2fs /dev/[lvg]/[lv] [size]
# z.B.:
resize2fs /dev/meinlvm/home 30G

Windows unter XEN als VM

Installationsbeispiel Windows 2000

1. ISO der CD erstellen

2. Config übernehmen

import os, re
arch = os.uname()[4]
if re.search('64', arch):
    arch_libdir = 'lib64'
else:
    arch_libdir = 'lib'

kernel = "/usr/lib/xen-4.1/boot/hvmloader"
builder='hvm'
vcpus = 8
memory = 1024

# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.
shadow_memory = 8
name = "xenwin2000"
vif = [ 'type=ioemu, bridge=eth0, mac=00:16:17:12:23:01, model=e1000' ]
acpi = 1
apic = 1
viridian = 1
xen_platform_pci=1

disk = [ 'file:/mnt/server/VMs/domains/win2000/win2000.img,hda,w','file:/mnt/server/VMs/domains/win2000/win2000.iso,ioemu:hdc:cdrom,r']

device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'

#gfx_passthru = 1
#pci=['00:02.0']

#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c) or CD-ROM (d) 
# default: hard disk, cd-rom, floppy
boot="dc"
sdl=0

vnc=1
vnclisten="0.0.0.0"
vncconsole=0
vncpasswd='78466890'

serial='pty'
usb = 1
usbdevice='tablet'

3. img Datei erstellen (Datei für die Festplatte)

 dd if=/dev/zero of=/mnt/server/VMs/domains/win2000/win2000.img bs=512k seek=4096 count=0

4. Booten

xm create win2000.cfg

5. Mittels TightVNC verbinden

ServerIP:5900
78466890

&. Installation durchführen