USB Gerät in LXC Container unter Proxmox 7.1

Moin!

Heute machen wir wieder was zum Thema IOBroker. Wie der Titel schon verrät, beschäftigen wir uns mit dem Durchreichen eines USB Gerätes. In diesem Fall verwenden wir einen Zig Bee Stick CC2531. Dies gestaltet sich in einem unpriviligierten LXC Container etwas schwieriger als in einem priviligierten.

Ihr könnt vorab schonmal den Adapter „Zigbee“ installieren.

Was wir benötigen:

Wir verbinden uns per SSH auf den Host. Als erstes stecken wir den Stick ein. Am besten in einen Port indem das Gerät auf ewig stecken bleiben kann. Anschließend prüfen wir ob das Gerät erkannt wurde.

[email protected]:~# lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 051d:0003 American Power Conversion UPS
Bus 003 Device 006: ID 0451:16a8 Texas Instruments, Inc. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Die beiden dick markierten Zahlen sind für uns wichtig. Bitte notiert euch diese. Mit diesen beiden Zahlenkombinationen können wir nun weiter arbeiten. Im Anschluss prüfen wir die nächsten Ziffern. Dazu ersätzt ihr einfach meine Zahlenkombi durch eure.

ls -l /dev/bus/usb/003/006
crw-rw-r-- 1 root root 189, 261 Mar  8 18:39 /dev/bus/usb/003/006

Auch hier notieren wir uns die NEUE dick markierte Zahlenkombi. Nun editieren wir die conf. eures Containers, damit der Host eine ttyACM Schnittstelle generieren kann. Diese benötigen wir um den Stick durchreichen zu können. Wichtig! Bitte tragt eure Zahlenkombinationen ein!

sudo nano /etc/pve/lxc/ContainerID.conf

lxc.cgroup.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/bus/usb/003/006 dev/bus/usb/003/006 none bind,optional,create=file

Ist dies erledigt sollte eine neue Datei angelegt worden sein. Wir prüfen dies und notieren uns erneut die Zahl.

ls -l /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 0 Mar  8 19:09 /dev/ttyACM0

Mit der gewonnenen Erkenntnis können wir jetzt weiter arbeiten. Damit ttyACM0 durchgereicht werden kann, müssen wir nun diese Schnittstelle durchreichen. Also erneut in die Config springen. Wichtig! Bitte tragt eure Zahlenkombinationen ein!

sudo nano /etc/pve/lxc/ContainerID.conf

lxc.cgroup2.devices.allow: c 166:* rwm
lxc.mount.entry: /dev/ttyACM0 dev/ttyACM0 none bind,optional,create=file

Schlussendlich sollte eure Configfile nun so erweitert worden sein:

lxc.cgroup2.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/bus/usb/003/006 dev/bus/usb/003/006 none bind,optional,create=file
lxc.cgroup2.devices.allow: c 166:* rwm
lxc.mount.entry: /dev/ttyACM0 dev/ttyACM0 none bind,optional,create=file

Wir korrigieren noch die Rechte des Gerätes, damit es vom LXC genutzt werden kann. Das müssen wir seit Proxmox 7 mit einer UDEV Regel erledigen. Dazu benötigen wir aber noch weitere Informationen. Um diese Infos zu bekommen, werden wir folgende Befehle absetzen und die dick markierten Ergebnisse notieren.

[email protected]:~# udevadm info -a -n /dev/ttyACM0 | grep '{idVendor}' | head -n1
    ATTRS{idVendor}=="0451"
[email protected]:~# udevadm info -a -n /dev/ttyACM0 | grep '{idProduct}' | head -n1
    ATTRS{idProduct}=="16a8"

Mit den Informationen können wir unsere UDEV Regel definieren. Wir fügen dazu einfach die Ausgaben der Befehle, aus dem vorherigen Schritt, in den Befehl ein.

nano /etc/udev/rules.d/50-myusb.rules

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="16a8", GROUP="users", MODE="0666"

Ist das geschafft starten wir den Container.

sudo pct start ContainerID

Wir schließen das Terminal zum Host und springen in eine SSH Verbindung zum LXC Container. Dort angekommen prüfen wir ob das Device auch korrekt durchgereicht wurde.

ls -la /dev/
crw-rw-rw-  1 nobody nogroup 166, 0 Mär  8 19:09 ttyACM0

Nun sind wir in den Maschinen fertig und öffnen das WebUI.
Instanzen —> Zigbee —> Auf den Maulschlüssel —> Einstellungen —> Oben links, Schnittstelle /tty/ACM0 auswählen —> Speichern —> Fertig!

Grüße gehen aus dem Archiv!

Abonnieren
Benachrichtige mich bei
guest
2 Kommentare
Älteste
Neuste Meist Bewerteste
Inline Feedbacks
Zeige alle Kommentare
2
0
Bitte lasse uns an deinen Gedanken teilhaben und kommentier den Beitrag.x
Cookie Consent mit Real Cookie Banner