elero USB Stick auf Proxmox LXC

Begonnen von kamp, 07 Februar 2022, 16:37:57

Vorheriges Thema - Nächstes Thema

kamp

Hallo,

ich steige gerade vom Raspi auf einen LXC in meinem PVE um. Der Umzug ist nahezu abgeschlossen, nur an einem Punkt hänge ich. Ich habe dank der Anleitung von CoolTux (https://www.cooltux.net/doku.php?id=it-wiki:proxmox:usb_passthrough) den elero Stick in den LXC durchgereicht - soweit ich erkenne sollte es passen.

Allerdings bleibt er in FHEM auf "disconnected" stehen.

Folgende Schritte habe ich durchgeführt:
PVE:
Eintrag in /etc/udev/rules.d/98-RFxtrx-CUL.rules:
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="eleroStick", MODE="0666", GROUP="dialout"

Einträge in /etc/pve/lxc/101.conf:
lxc.cgroup.devices.allow: c 189:257 rwm
lxc.mount.entry: /dev/eleroStick dev/eleroStick none bind,optional,create=file

Device in PVE:
lrwxrwxrwx  1 root root           7 Feb  7 16:11 eleroStick -> ttyUSB0
crw-rw-rw-  1 root dialout 188,   0 Feb  7 16:11 ttyUSB0

Device in LXC:
crw-rw-rw-  1 root dialout 188, 0 Feb  7 15:11 eleroStick

Definition in FHEM:
DEF   /dev/eleroStick@38400

Hat da jemand eine Idee?

CoolTux

Und der User fhem ist in der Gruppe dialout?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kamp


CoolTux

Und die 38400 sind korrekt? Die hattest Du auch beim alten System? Was genau sagt das FHEM Log wenn du das Device auf verbose 5 stellst.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kamp

ja, das hatte ich im raspi auch genau so (nur halt /dev/usb0@38400)

der Stick macht mit verbose 5 gar keine Einträge im Log. Auch nicht nach FHEM-Neustart...?

kamp

Habe mich dem Thema nochmals angenommen, folgendes finde ich nun im LOG.

Can't use string ("/dev/eleroStick@38400") as a HASH ref while "strict refs" in use at ./FHEM/DevIo.pm line 690.

CoolTux

Gib mal bitte ein list vom Device. Das klingt alles sehr komisch.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wernieman

Du hast folgendes gelesen:
eleroStick -> ttyUSB0

d.h. eleroStick ist nur ein Simlnk. Hast Du jetzt in ProxyMox nur eleroStick, oder auch ttyUSB0 durchgereicht?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

CoolTux

Zitat von: Wernieman am 09 Februar 2022, 08:51:52
Du hast folgendes gelesen:
eleroStick -> ttyUSB0

d.h. eleroStick ist nur ein Simlnk. Hast Du jetzt in ProxyMox nur eleroStick, oder auch ttyUSB0 durchgereicht?

Muss er nicht. Es sollte reichen wenn er den durch udev rule erstellten Symlink durchreicht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kamp

#9
Zitat von: CoolTux am 09 Februar 2022, 08:54:53
Muss er nicht. Es sollte reichen wenn er den durch udev rule erstellten Symlink durchreicht.

Ja, hätte ich auch so verstanden (bin aber kein LXC-Profi wie man sieht :) )

Device List:
ZitatInternals:
   Clients    :EleroDrive:EleroSwitch
   DEF        /dev/eleroStick@38400
   DeviceName /dev/eleroStick@38400
   FUUID      6033e1d3-f33f-1b7d-7e45-3881832c58767de2
   NAME       rolloEleroStick
   NR         163
   PARTIAL   
   STATE      disconnected
   TYPE       EleroStick
   USBDev     /dev/eleroStick@38400
   channels   
   MatchList:
     1:EleroDrive .*
     2:EleroSwitch .*
   READINGS:
     2022-02-07 15:11:53   AnswerMsg       
     2022-02-09 09:11:32   state           disconnected
Attributes:
   ChannelTimeout 2
   Interval   60
   icon       usb_stick
   room       Zentrale
   verbose    5

Vollständige LOG-Einträge bei FHEM Neustart vom Device
Zitat2022.02.09 09:11:32 3: Opening rolloEleroStick device /dev/eleroStick
2022.02.09 09:11:32 1: rolloEleroStick: Can't open /dev/eleroStick: Operation not permitted

Sollte ich mal die Rechte bei MODE für udev ändern (von 0666 auf 0777)? EDIT -> keine Änderung im Verhalten mit 0777 (crwxrwxrwx  1 root dialout 188, 0 Feb  9 09:23 eleroStick)

Zusatzinfos (vielleicht hab ich was übersehen):
Zitataus lsusb
Bus 003 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC

crw-rw-r-- 1 root root 189, 258 Feb  8 14:01 /dev/bus/usb/003/003

aus udevadm info:
prod id 6001
vendor id 0403

/etc/udev/rules.d/98-eleroStick.rules
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="eleroStick", MODE="0777", GROUP="dialout"

lxc conf Einträge:
arch: amd64
features: nesting=1
hostname: srv-automation
memory: 2048
net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=8E:88:70:19:BE:88,ip=dhcp,type=veth
onboot: 1
ostype: debian
rootfs: Syspool:subvol-101-disk-0,size=15G
swap: 0
lxc.cgroup2.devices.allow: c 189:258 rwm
lxc.mount.entry: /dev/eleroStick dev/eleroStick none bind,optional,create=file

EDIT: Ich habe gelesen, wenn man PVE > 7 verwendet (ich verwende 7.1), sollte man cgroup2 statt cgroup in der LXC conf verwenden. Habe ich auch mal geändert, keine Änderung im Verhalten.

CoolTux

Ich denke Du hast einen Fehler beim herausfinden des Devices gemacht.

zeig bitte mal die Ergebnisse von

lsusb

dann das Ergebniss von

ls -l /dev/bus/usb/DEIN/STICK

ich denke die 189 ist falsch. Da sollte glaube 188 stehen. Aber das schauen wir mal zusammen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

kamp

Danke

Zitatroot@srv:~# lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 003 Device 002: ID 2040:8265 Hauppauge dualHD
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

Zitatroot@srv:~# ls -l /dev/bus/usb/003/003
crw-rw-r-- 1 root root 189, 258 Feb  9 19:52 /dev/bus/usb/003/003

CoolTux

Zitatcrw-rw-r-- 1 root root 189, 258 Feb  9 19:52 /dev/bus/usb/003/003

Also 189, 258

Du hast also aktuell den zweiten Wert fehlerhaft in deiner LXC config

ZitatEinträge in /etc/pve/lxc/101.conf:
lxc.cgroup.devices.allow: c 189:257 rwm
lxc.mount.entry: /dev/eleroStick dev/eleroStick none bind,optional,create=file
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Benni

Zitat von: CoolTux am 10 Februar 2022, 08:32:18
Also 189, 258

Du hast also aktuell den zweiten Wert fehlerhaft in deiner LXC config

Ich würde tendenziell die Minor-Nummer des Treibers ganz weglassen, also allow einfach generell für 189

gb#

kamp

#14
Zitat von: CoolTux am 10 Februar 2022, 08:32:18
Also 189, 258

Du hast also aktuell den zweiten Wert fehlerhaft in deiner LXC config

Danke, ja wie du siehst habe ich zwei USB Devices für zwei verschiedene LXC - habe ich nun auf 258 geändert, aber leider trotzdem das selbe Verhalten.

Zitat von: Benni am 10 Februar 2022, 09:21:36
Ich würde tendenziell die Minor-Nummer des Treibers ganz weglassen, also allow einfach generell für 189

gb#

wäre mir auch lieber, aber ich habe ein zweites Device (TV Karte), welches in einen anderen Container soll, welches blöderweise auch 189 als ersten Wert hat... da ist der zweite Wert allerdings 257 statt 258

(Offtopic) habe gestern versucht die TV Karte an einen anderen LXC durchzureichen mit der selben Methode. wird korrekt in /dev/dvb gelistet und auch die Unterordner, aber tvheadend erkennt ihn trotzdem nicht. Kann es sein, dass hier etwas am Host falsch konfiguriert ist? Ich meine zwei Devices in zwei unterschiedliche LXC gehen nicht, scheint mir seltsam...)

kamp

Ich habe heute eine VM mit FHEM aufgesetzt, wenn ich den USB Stick durchreiche, startet die VM nicht und der Host geht in einen undefinierbaren Zustand (schwer zu beschreiben, Container, VMs funktionieren, er lässt sich aber z.B. nicht mehr rebooten. Auch andere VM oder LXC lassen sich nicht stoppen/starten...hilft nur hard reset um wieder einen brauchbaren Zustand zu erhalten.)

Ich habe nun eine PCIe USB Controller eingebaut und den Stick daran angeschlossen. Mit LXC kein Erfolg - mit VM läuft es aber einwandfrei. Somit funktionieren zumindest meine Rolläden mal wieder, dennoch würde ich gerne statt einer Vm einen LXC verwenden (habe sie noch nicht gelöscht, also weiter basteln möglich) - vielleicht hilft das ja auch künftig jemandem. Ich vermute aber, dass der Host hier irgend ein Problem mit dem Onboard-USB hat...

(Das mit der TV Karte habe ich gelöst, indem ich eine PCIe TV Karte verwende, allerdings auch hier nun in einer VM statt angedachtem LXC)

Benni

Zitat von: kamp am 10 Februar 2022, 11:44:33
wäre mir auch lieber, aber ich habe ein zweites Device (TV Karte), welches in einen anderen Container soll, welches blöderweise auch 189 als ersten Wert hat... da ist der zweite Wert allerdings 257 statt 258

Sollte für mein Verständnis aber egal sein!
Mit dem allow wird ja nur dem LXC generell der Zugriff auf das Device, bzw. auf den Treiber des Devices erlaubt. Von welchem Container das device dann tatsächlich verwendet, bzw. welches device welcher Container dann im Detail verwendet ist ja wieder was anderes.



kamp

ok, nachdem sich ein zweites Problem in LXC mit dem Umzug von LXC in eine VM gelöst hat, werde ich zu 99% bei der VM bleiben. https://forum.fhem.de/index.php/topic,126091.0.html

Benni

Was auch immer bei dir LXC-mäßig schief läuft?

Ich habe dblog ohne Probleme im LXC am laufen. FHEM und MySQL (resp. MariaDb aus Turnkey-MySQL image) jeweils in einem eigenen LXC.

Rennt problemlos, natürlich im async mode!

gb#

PS: Sorry, hier OT aber der andere Thread war ja leider schon geschlossen!

Thyraz

Läuft bei mir ebenfalls beides absolut problemlos in getrennten LXC Containern.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...