Ich habe einen Proxmox Server laufen. Auf diesem Server läuft einer der Container mit Debian 11 und Repetier Server darauf.
Ich steuere darüber zwölf 3D Drucker die via USB angeschlossen sind (angebunden mit einem CP210x USB-Serial Wandler).
Da der CP210x keine eindeutige Seriennummer hat, muss ich die Drucker über die angeschlossene USB Buchse direkt am Server ansteuern. Ein Auszug aus meiner udev Datei:
/etc/udev/rules.d/89-serial.rules
Damit erstellt er mir die Drucker mit einer eindeutigen Nummer unter /dev/ - das ist gut soweit und funktioniert tadellos.
Beim start des Containers mounte ich diese so:
Auch dies funktioniert - jetzt kommt schon das erste große Aaaaber: sollte einer der Druck zum Zeitpunkt des startens nicht eingeschaltet sein - ist der Symlink auf dem Server nicht verfügbar und somit auch nicht im Container. Er wird auch nicht nachträglich eingefügt.
Wenn der Container läuft, ich einen Drucker ausschalte (es laufen ja nicht alle 12 rund um die Uhr) und wieder einschalte - dann sind die /dev/ttyPRx unter falschen Besitz und Schreibrechten. Dafür lasse ich auf dem Container ein Script über cron laufen welche in regelmäßigen Abständen (5min) die Besitzrechte und die Zugriffsrechte wieder zurücksetzt. Das ist nicht schön, funktioniert aber. Wie kann ich dies besser lösen?
Meine Frage nun:
Kann man, um diesen ganzen rumgebiege aus dem Weg zu gehen, nicht direkt die Hardware (USB Port) durchreichen in den Container? So das ausschließlich der Container für die Verwaltung eben jenes Ports zuständig ist? Würde dies besser mit einer VM anstatt eines Containers laufen? (USB HotPlug etc..)
Nachtrag: ich habe etwas von USB Mount gehört in der Container Config gehört - in etwa so:
usb1: host=2-7
gibt es dies, ist dies noch aktuell und ist dies für mich von Vorteil?
Ich steuere darüber zwölf 3D Drucker die via USB angeschlossen sind (angebunden mit einem CP210x USB-Serial Wandler).
Da der CP210x keine eindeutige Seriennummer hat, muss ich die Drucker über die angeschlossene USB Buchse direkt am Server ansteuern. Ein Auszug aus meiner udev Datei:
/etc/udev/rules.d/89-serial.rules
Code:
SUBSYSTEM=="tty", \
ENV{ID_VENDOR_ID}=="10c4", ENV{ID_MODEL_ID}=="ea60", ATTRS{busnum}=="2", ATTRS{devnum}=="3", \
SYMLINK+="ttyPR1"
Damit erstellt er mir die Drucker mit einer eindeutigen Nummer unter /dev/ - das ist gut soweit und funktioniert tadellos.
Beim start des Containers mounte ich diese so:
Code:
lxc.mount.entry: /dev/ttyPR1 dev/ttyPR1 none bind,optional,create=file
Auch dies funktioniert - jetzt kommt schon das erste große Aaaaber: sollte einer der Druck zum Zeitpunkt des startens nicht eingeschaltet sein - ist der Symlink auf dem Server nicht verfügbar und somit auch nicht im Container. Er wird auch nicht nachträglich eingefügt.
Wenn der Container läuft, ich einen Drucker ausschalte (es laufen ja nicht alle 12 rund um die Uhr) und wieder einschalte - dann sind die /dev/ttyPRx unter falschen Besitz und Schreibrechten. Dafür lasse ich auf dem Container ein Script über cron laufen welche in regelmäßigen Abständen (5min) die Besitzrechte und die Zugriffsrechte wieder zurücksetzt. Das ist nicht schön, funktioniert aber. Wie kann ich dies besser lösen?
Meine Frage nun:
Kann man, um diesen ganzen rumgebiege aus dem Weg zu gehen, nicht direkt die Hardware (USB Port) durchreichen in den Container? So das ausschließlich der Container für die Verwaltung eben jenes Ports zuständig ist? Würde dies besser mit einer VM anstatt eines Containers laufen? (USB HotPlug etc..)
Nachtrag: ich habe etwas von USB Mount gehört in der Container Config gehört - in etwa so:
usb1: host=2-7
gibt es dies, ist dies noch aktuell und ist dies für mich von Vorteil?
Last edited: