Articles tagged with udev

  • 🔗3D Drucker automatisch mit Octoprint in KVM VM verbinden.

    Der Gedanke, einen echten PC als zentralen Rechner mit vielen Octoprint-Instanzen zu nutzen, ist naheliegend und preiswert. Dabei will man jedoch nicht zwangsweise auf dem Host selbst installieren, sondern in eine virtuelle Maschine. Das hat zahlreiche Vorteile, wie z.B. Snapshots und vereinfachte Hostmigration, bringt aber auch Komplexität mit sich.

    uml diagram

    Die virtuelle Maschine kann die Drucker nun nicht mehr direkt sehen, weil /dev auf dem Host nicht gleich /dev in der virtuellen Maschine ist. Daher müssen die Drucker dynamisch und möglichst automatisch an die die virtuelle Maschine durch gereicht werden. Unter Linux kein Problem, dank udev.

    Udev-Regel im VM Host erstellen

    Die Regeln für udev sind leicht erstellt. Vorher braucht man aber den Identifikator des Gerätes. Ich nehme meist

    watch -n .1 lsusb

    und verbinde dann das Gerät. So sehe ich schnell, welches Gerät dazu kommt und welchen Identifikator es hat. Mein Drucker sieht dann so aus. Die ID ist die entscheidende Information.

    Bus 003 Device 007: ID 1a86:7523 QinHeng Electronics CH340 serial converter
    

    Nun die Konfigurationsdatei in /etc/udev/rules.d/20_3dprinter.rules erstellen. Meine sieht so aus.

    ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ENV{DEVTYPE}=="usb_device", RUN+="/opt/scripts/attach_wanhaoi3plus.sh"
    

    Damit wird beim Anstecken des Gerätes ein Skript ausgeführt. Udev kann leider keine Argumente an die ausgeführten Skripte weitergeben. Daher braucht …