USBIP mit openHAB im LXC Container

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
curius
Beiträge: 78
Registriert: 1. Aug 2019 10:10
Answers: 0

USBIP mit openHAB im LXC Container

Beitrag von curius »

Hallo!

Ich bin gerade dabei meine openHAB Instanz im LXC Container laufen zu lassen.
Nun habe ich jedoch leider das Problem, dass ich auf USBIP angewiesen bin und meine USB-Sticks über das Netzwerk per WLAN ansteuern muss.
Ich habe also derzeit eine openHAB VM in Proxmoxx im Keller und 2 USB Sticks (CC2531 und Elero Transmitter Stick) im Erdgeschoß am Raspi laufen. Die USB Devices sind über das Netzwerk mittels USBIP für die openHAB Proxmoxx VM verfügbar.

Das funktioniert soweit auch alles einwandfrei.

Leider läuft diese Konfiguration nicht, wenn openHAB im LXC Container rennt.
Ich kann im LXC Container leider USBIP nicht starten...

Bei Eingabe von...

Code: Alles auswählen

sudo modprobe configs
oder

Code: Alles auswählen

sudo modprobe usbip-core
bekomme ich folgende Fehlermeldung...

Code: Alles auswählen

modprobe: error: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/5.4.73-1-pve/modules.dep.bin'
Läuft openHAB in einer VM unter Debian, ist alles kein Problem, läuft es im LXC Container unter Debian, so funktioniert es nicht.
Kann mir da von euch vielleicht jemand weiterhelfen?

Besten Dank!

Grüße
Christian

hydrotec
Beiträge: 20
Registriert: 21. Jun 2021 06:10
Answers: 0

Re: USBIP mit openHAB im LXC Container

Beitrag von hydrotec »

Hallo Christian,

kenne mich mit Proxmox nicht aus, deswegen nur Vermutung.

Unter LXD muss der USB-Stick erst einmal dem System bekannt sein.
(Wie deine USB-Sticks über USB-over-IP an deinem Server ankommen, weißt du ja selber)
ls -l /dev/serial/by-id
Anschließend muss folgender Befehl ausgeführt werden, um dem LXC Container das USB "Gerät" zur Verfügung zu stellen.
lxc config device add <instance> <name> <type> [key=value]...
Beispiel: lxc config device add Zigbee2mqtt01 ttyUSB0 unix-char path=/dev/ttyUSB0 uid=1000 gid=1000
Innerhalb des Containers kann dann das "Gerät" gefunden, und verwendet werden.
ls -l /dev/ttyUSB0

Einfach ausgedrückt.
Bei LXC muss das "Gerät" erst einmal dem Server (Proxmox) bekannt gemacht werden,
und anschließend dieses bekannte "Gerät" an den LXC Container durchgeschleust werden.

Eventuell hilft dir diese Seite (leider in englisch) etwas weiter.


Gruß, Karsten

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: USBIP mit openHAB im LXC Container

Beitrag von udo1toni »

Was dann natürlich nicht usbip ist :) aber ja, das wäre der normale Weg, einen (oder auch mehrere) USB Stick(s) in den Container hinein zu reichen.

Wobei im Zweifel usbip ebenfalls im Host eingerichtet werden müsste, so die Sticks nicht unmittelbar am Server angeschlossen sind.
Eventuell (aber nur so ne Idee...) könnte es auch daran liegen, dass der Container unprivilegiert läuft (das wäre die Standard Betriebsart).
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

hydrotec
Beiträge: 20
Registriert: 21. Jun 2021 06:10
Answers: 0

Re: USBIP mit openHAB im LXC Container

Beitrag von hydrotec »

udo1toni hat geschrieben: Was dann natürlich nicht usbip ist :) ...
Wie ich das verstanden hatte, ist doch bei USBIP der USB-Stick auf der Clientseite so zu verwenden, als wäre er direkt dort eingesteckt.
Hab das auch nur kurz überflogen, bisher noch keinen Bedarf für solch eine Lösung gehabt.

Aber Christian wird uns (bzw. mich) sicherlich aufklären ;)

Gruß, Karsten

curius
Beiträge: 78
Registriert: 1. Aug 2019 10:10
Answers: 0

Re: USBIP mit openHAB im LXC Container

Beitrag von curius »

Hallo hydrotec und udo1toni!

Besten Dank für eure rasche Antwort...
@hydrotec: Die von dir beschriebene Vorgehensweise wäre (soweit ich mich vorab schon informiert habe) richtig, aber erst im nächsten Schritt.
Bei mir scheitert schon der eigentliche Start von USBIP, ohne überhaupt nach Geräten im Netzwerk suchen zu können ;-)

@udo1toni: Bei diesem Thema muss ich mich in der Tat noch ein wenig einlesen, da kenne ich mich noch zu wenig aus (Unterschiede zwischen privilegierte und unprivilegierte Container). Einfach mal naiv einen privilegierten Container erstellen und testen, hat vorerst noch keinen Erfolg gebracht :D

Wie auf dieser Seite beschrieben, schaut es so aus, als ob das Kernelmodul nicht geladen werden kann...
https://blog.3mdeb.com/2015/2015-10-27- ... p-updated/ --> Abschnitt Kernel for RPi

Ich werde mal weitersuchen - besten Dank noch mal für eure Unterstützung!

Schöne Grüße
Christian

curius
Beiträge: 78
Registriert: 1. Aug 2019 10:10
Answers: 0

Re: USBIP mit openHAB im LXC Container

Beitrag von curius »

Hallo!

Ich denke, dass ich der Lösung schon wieder einen Schritt näher bin...
https://discuss.linuxcontainers.org/t/h ... ainer/5033

Ich muss scheinbar fehlende Kernel Module dem Host hinzufügen, um diese dann im Container nutzen zu können...
Für den Container sind dann lediglich die "Host Module" verfügbar...

Man sieht, ich habe noch generell mit den Basisinformationen hinsichtlich Container zu kämpfen ;-)

Sobald ich eine Lösung habe, werde ich weiter berichten.
Besten Dank!

Grüße
Christian

hydrotec
Beiträge: 20
Registriert: 21. Jun 2021 06:10
Answers: 0

Re: USBIP mit openHAB im LXC Container

Beitrag von hydrotec »

@Christian

LXC, bzw. allgemein Container, ist nicht ganz einfach zu verstehen.
Ging mir selber auch so. :D
Bereue diesen Schritt bis heute nicht.
Lieber einen performanten Server mit vielen Containern, anstatt viele RPI in der Wohnung verteilen.
curius hat geschrieben: Wie auf dieser Seite beschrieben, schaut es so aus, als ob das Kernelmodul nicht geladen werden kann...
https://blog.3mdeb.com/2015/2015-10-27- ... p-updated/ --> Abschnitt Kernel for RPi
Wenn ich diese Anleitung (welche noch aktuell ist?) ansehe, dann ist es schon so wie ich mir das gedacht hatte.
Auf deinem Host brauchst du den USBIP-Client, damit die Sticks auf dem Host erreichbar sind.
Wenn dem so ist, dann brauchst du nur noch den Port, unter dem die Sticks auf dem Host erreichbar sind, an den Container weiterleiten.
Wie das funktioniert, solltest du Proxmox Profis fragen. ;)
Innerhalb des Containers brauchst du dann keinen weiteren USBIP-Client installieren.

Kleiner Hinweis:
curius hat geschrieben: Ich denke, dass ich der Lösung schon wieder einen Schritt näher bin...
https://discuss.linuxcontainers.org/t/h ... ainer/5033
Bei diesem how-to wird LXD/LXC behandelt, nicht Proxmox/LXC.
Bin mir nicht sicher ob das gleiche Vorgehensweisen sind.


Nur mal interessehalber, wozu brauchst du USBIP, würde nicht auch MQTT gehen?

Gruß, Karsten

curius
Beiträge: 78
Registriert: 1. Aug 2019 10:10
Answers: 0

Re: USBIP mit openHAB im LXC Container

Beitrag von curius »

Hallo Karsten!

Besten Dank für deine Antwort...
Der CC2531 (ZigBee Stick) macht mir keine Probleme, da habe ich eine Verbindung via MQTT
Aber der Elero Transmitter Stick, den ich für die Rolladensteuerung benötige, den muss ich via USBIP ansteuern.
Soweit mir bekannt, gibt es dafür keine andere Möglichkeit :?

Aber ich werde mich mal weiter mit den Containern beschäftigen - das macht irgendwie Spaß, die sind so viel performanter als meine "alten" VM's :D

Schöne Grüße
Christian

hydrotec
Beiträge: 20
Registriert: 21. Jun 2021 06:10
Answers: 0

Re: USBIP mit openHAB im LXC Container

Beitrag von hydrotec »

@Christian

Prinzipiell ist es ja egal wie man seine Netzwerkkomponenten miteinander kombiniert,
hauptsache es funktioniert.
Und wenn USBIP bei dir soweit funktioniert, warum nicht. ;)
Scheint ja generell nichts Schlechtes zu sein, vor allem wenn man es, warum auch immer, benötigt.

Nochmal zu Proxmox/LXC USB
Hier eine Seite von CoolTux (hauptsächlich in FHEM unterwegs) zu diesem Thema.
USB Device an einen Container durchreichen
Wenn also deine USB-Sticks am Server angemeldet sind, müsste diese Vorgehensweise bei dir funktionieren.
curius hat geschrieben: Aber ich werde mich mal weiter mit den Containern beschäftigen - das macht irgendwie Spaß, die sind so viel performanter als meine "alten" VM's :D
:D ;)

Gruß, Karsten

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: USBIP mit openHAB im LXC Container

Beitrag von udo1toni »

Das Durchreichen des USB-Sticks ist in der Tat in Proxmox (noch?) nicht so einfach, dass man es mit ein paar Klicks erledigen könnte. Die Vorgehensweise ist aber einigermaßen logisch.

Hier ist es ganz gut erklärt: https://homematic-forum.de/forum/viewtopic.php?t=48361 inklusive (zwei Postings drunter) einer guten Anleitung, wie man eine passende udev Rule erstellt, um dafür zu sorgen, dass der USB-Stick durchgereicht wird, auch wenn er mal an einem anderen Port angeschlossen wird.

usbip sollte "seine" Sticks ebenso unter /dev/ abbilden. Eventuell kann man dabei auch auf eine udev Rule verzichten, und die virtuellen Sticks werden dennoch immer an der gleichen Stelle abgebildet.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten