Manufacturing-Lab mit Proxmox und OctoPrint

  Christian Müller-Zieroth   Lesezeit: 3 Minuten  🗪 8 Kommentare

Ich steuere meinen 3D-Drucker mithilfe von OctoPrint, welches als LXC auf Proxmox läuft. Proxmox hat dabei seinen eigenen Desktop, mit dem man auf den Webhost von OctoPrint zugreifen kann.

manufacturing-lab mit proxmox und octoprint

Ich habe zu Hause ein Proxmox-Cluster mit nun mehr vier Nodes. Einer davon ist ein alter Vaio-Laptop, welcher mein Manufacturing-Lab darstellt. Er steht direkt neben meinem Anycubic 3D-Drucker und am Laptop selbst kann ich den Drucker mithilfe des OctoPrint-Webhosts steuern.

Die Grundinstallation

OctoPrint ist eine Art Printserver für einen 3D-Drucker. Die meisten, die einen 3D-Drucker haben, werden OctoPrint kennen. OctoPrint ist ein Server mit einem Webhost. Im Webhost kann man z. B. zu druckende Modelle hochladen, die man vorher aufbereitet hat, um dann auch direkt den Drucker remote zu starten. Man sieht mithilfe von OctoPrint genau, wo sich gerade der Druckkopf befindet, und kann z. B. während des Drucks die Temperatur des Druckkopfs oder des Betts verändern.

Oft verwendet man OctoPrint zusammen mit einem RaspberryPi und dessen Kamera. Allerdings setze ich mittlerweile voll auf Proxmox. Vor ein paar Jahren hatte ich eine komfortable Möglichkeit gesucht, von meinen RaspberryPis, die ich im Einsatz hatte, Backups zu machen. Allerdings hatte ich nichts gefunden, das für mich komfortabel genug war. So kam ich zu Proxmox.

Proxmox ist eine Virtualisierungssoftware auf Debian-Basis. Man kann mit Proxmox Linux-Container (LXC) und virtuelle Maschinen laufen lassen. Also hatte ich mir meinen alten VAIO-Laptop hergenommen, ihm Proxmox verpasst und OctoPrint als LXC laufen lassen. Wenn man Proxmox auf einem Laptop installiert, kommt es erst mal ohne Desktop und man landet am Laptop selbst nur im Terminal. Nun hatte ich das Problem, dass ich meinen Drucker ohne weiteres nur aus der Ferne steuern konnte und nicht direkt vor Ort, außer ich würde ein weiteres Gerät, z. B. mein Smartphone, oder einen weiteren Laptop, mit zum Drucker nehmen. Das machte es schwierig, den Drucker im Notfall zu stoppen.
Also recherchierte ich ein wenig im Internet und fand ein nettes Video, in welchem erklärt wird, wie man dem Debian, auf dem Proxmox läuft, einen Desktop und diverse Software hinzufügt, mit der man auf den Webhost von OctoPrint zugreifen kann. So habe ich nun ein annehmbares Gesamtpaket.

Die Tücken

Ich muss allerdings dazu schreiben, dass es nicht so einfach war, den Drucker mit dem Linux-Container zu verbinden. Selbst jetzt habe ich das Problem, dass ich den Container und den Drucker in einer bestimmten Reihenfolge starten muss, damit eine Verbindung hergestellt werden kann. Ich gehe davon aus, dass das am Alter des Notebooks liegt, und es stört mich nicht weiter.

Außerdem habe ich noch das Problem, dass ich meine USB-Webcam zwar mit dem Container verbinden kann, aber sie nicht stabil läuft und ich so immer mal den Service neu starten muss. Zurzeit stört es mich nicht so sehr, aber auf lange Sicht werde ich wahrscheinlich einen zweiten Container verwenden, der sich nur um die Webcam kümmert. So kann ich den Container auch unabhängig von OctoPrint neu starten, ohne Gefahr zu laufen, dass mein Druck abbricht.

Quellen:
https://youtu.be/RD7hV0A2NOc?si=OSr5BrCYcj2fJ1SZ
https://community.octoprint.org/t/setting-up-octoprint-on-a-raspberry-pi-running-raspberry-pi-os-debian/2337
https://haus-automatisierung.com/software/proxmox/2023/05/26/proxmox-lxc-usb-geraete.html
https://www.youtube.com/watch?v=SPlDd1x89Zg

Tags

proxmox, octoprint, laptop

B.Gates
Geschrieben von B.Gates am 30. April 2024 um 11:51

Hallo Christian, Benutze in Proxmox eine virtuelle Maschine für OctoPrint und die WebCam. Ich empfehle dir Debian ohne Desktop-Umgebung. Ich habe festgestellt, dass die Devices, die durchgeschleust werden, stabiler in einer virtuelle Maschine laufen als unter LXC.

Christian Müller-Zieroth
Geschrieben von Christian Müller-Zieroth am 30. April 2024 um 19:01

Hallo B.Gates, Vielen Dank für den Tipp. Ich bin mir aber nicht sicher ob ich dich richtig verstanden habe. Aber bei meiner Methode geht es darum, dass man einen Desktop hat um unmittelbar neben dem Drucker den Drucker steuern kann. Alternativ hätte ich auch einfach direkt ein Linux z. B. Ein ubuntu mit Desktop installieren können und nachträglich octoprint. Aber dann hätte ich nicht die Vorteile von proxmox. Also ich habe durch meine Methode kaum overhead.

Zum Thema USB muss ich vielleicht wirklich mal eine VM ausprobieren. Auf arbeit hab ich auch einen Proxmox-Server mit ein Xubuntu-VMs mit USB-Debug-Kabeln und ich muss schon mal sagen, dass es mit VMs komfortabler ist USB Geräte durch zu schleifen, weil alles über die UI läuft. Und vielleicht laufen die bei mir auch stabiler, wenn ich so drüber nachdenke.

B.Gates
Geschrieben von B.Gates am 1. Mai 2024 um 12:55

Hallo Christian. Ja, ich habe schon an Debian als VM unter Proxmox gedacht. Ich habe dir eine Installation ohne Desktop-Umgebung empfohlen, da OctoPrint über den Internet-Browser aufgerufen wird. Wenn du eine Desktop-Umgebung und OctoPrint verwenden willst, würde ich dir trotzdem empfehlen, direkt auf z.B. Debian zu setzen. Mit den Vorteilen von Proxmox meinst du wahrscheinlich das Sichern und Wiederherstellen der VM. (Setzte dein Fokus auf den 3D-Drucker, nicht auf die Administration von zwei Linux-Systemen.)

Du kannst jede Systempartition viel eleganter und effizienter sichern. Dazu brauchst du nur eine zusätzliche Partition. Ich verwende diese auch gleich als /home. ( sda1 = EFI, sda2 = System, sda3 = Home, sda4 = SWAP) So kann das System in der Home-Partition gesichert werden.

Dazu sind vorgängig die leeren Blöcke in sda2 mit dem Wert Null zu füllen. dd if=/dev/zero of=/media/sda2/zero.file; rm /media/sda2/zero.file

Danach kann die Systempartition leicht und platzsparend in der Home-Partition gesichert werden. dd if=/dev/sda2 | gzip > /media/sda3/system.img.gz

Verwenden zum Wiederherstellen der Sicherung einfach; unzip -c /media/sda3/system.img.gz | sudo dd of=/dev/sda2

Ich verwende ein Betriebssystem, das ich vom USB-Stick boote, um ein Backup oder eine Wiederherstellung durchzuführen. Viel Spass und gutes Gelingen.

Christian Müller-Zieroth
Geschrieben von Christian Müller-Zieroth am 2. Mai 2024 um 06:42

Hallo B.Gates, Vielen Dank für die anregende Lösung. Ich kenne "dd". Aber icb wäre nicht drauf gekommen, dass ich damit einfach snapshots machen kann. Vielleicht kann ich das mal in einem andern Umfeld verwenden.

Für dieses Umfeld bevorzuge ich proxmox auch, weil ich die reccoucen des Laptops einfach mal temorär für andere Dinge verwenden kann, oder auch den octoprint Container wo anders hin migrieren kann, falls der Laptop mal nicht mehr will. Und ich verwende auch den Backup Server von proxmox und kann so sehr gut inkrementelle Backups anlegen und habe dadurch auch alles Backups an einem Ort.

Also die Vorteile von Proxmox überwiegen für mich.

Art
Geschrieben von Art am 30. April 2024 um 18:07

Vielen Dank für die Anregung. Ich ziehe nach und nach meine Raspi Projekte auf Proxmox@Futros+M720q um.

Bei Octoprint habe ich mich allerdings für Octo4a entschieden. Bei mir auf einen Pixel3a, das ich ohne Security Patches nicht mehr "in freier Wildbahn" einsetzen möchte.

Christian Müller-Zieroth
Geschrieben von Christian Müller-Zieroth am 30. April 2024 um 23:23

Gerne. Das ist doch ein NUC. Auch nicht schlecht. Ich bin irgendwie, abgesehen von dem vaio Laptop bei den HP elitedesks gelandet. Davon hab ich jetzt drei und den Laptop als Proxmox-Cluster. Einen davon hab ich gerade erst mit einer 4tb nvme bestückt, weil ich meinen alten qnap durch eine nextcloud ersetzen will.

Der Entwickler von octoprint ist ziemlich fit. Es gibt z. B. Auch eine octoapp mit der man octoprint selbst sehr gut fernsteuern kann und mein HomeAssistant hat mein octoprint ohne mein zutun direkt im Netzwerk gefunden, sodass ich es einfach zur Hausautomatisierung hinzufügen konnte. Vielleicht ist die Info auch noch ganz interessant für dich.

Offler
Geschrieben von Offler am 3. Mai 2024 um 15:28

Das es instabil läuft liegt nicht an einem alten Laptop. Sondern Recht simpel daran, dass LXE und direkte Hardwarezugriffsetwas wackelig sind. Daran ändert rein gar nicht ob die Webcam im gleichen oder einem anderen Container ist.

Christian Müller-Zieroth
Geschrieben von Christian Müller-Zieroth am 4. Mai 2024 um 23:11

Ja naja, mit ging es darum, dass ich einen extra Container mit einer Webcam komplett neustarten kann, ohne, dass ich den anderen Container mit octoprint anfassen muss, da dort evtl. gerade ein Druck läuft, den ich auf keinen Fall unterbrechen will.

Ich hatte in der vergangenheit auch so meinen Probleme mit webcams und Linux. Villeicht liegt es auch an meinem Know-how, da der Drucker Einwandfrei mit dem Container zusammen läuft, wenn er mal verbunden ist.