NEWS
USB iSerial für CC2538+2592 möglich?
-
Moin,
ich hoffe ich bin hier richtig. Ich habe meine ioBroker Instanzen auf einem Proxmox installiert.
Nun möchte ich mehrere Sticks von @arteck an den Server bringen und, wenn möglich bevorzugt, anhand der iSerial (USB) mit udev rules an den jeweiligen LXC Container durchreichen.Gibt es eine Möglichkeit den Sticks entsprechend (nachträglich) eine serial zu 'verpassen'?
Vielen Dank im Voraus für eine kurze Antwort. -
@waschbaerbauch75 Wo kommt denn dieser Screenshot her?
Aus dem Proxmox-Host? Wieso gibt es da eine solche Shell?
-
@martinp
Dieses Darstellung habe ich vom virtualhere Client gescreenshottet.Da ist das hübscher konsolidiert
-
@waschbaerbauch75 Interessanter wäre aus der PVE Host Console die Ausgabe von
ls /dev/tty*
und
ls dev/serial/by-id
-
@martinp sagte in USB iSerial für CC2538+2592 möglich?:
ls dev/serial/by-id
da gibt es bei billigen Adaptern/Konvertern oft keine ID.
Deswegen "leiste" ich mir die Waveshare RS485_USB Teile.Hier kann ich mir das auch vorstellen
-
@martinp
ja ich verstehe was du mir damit sagen möchtest (denke ich). Leider (so ich denn richtig im Thema bin) ergibt das mit dem by-id bzw by-path gelegentlich Probleme wenn der Host aktualisiert und neu gestartet wird. Sporadisch ändert der Proxmox Host dann seine Pfadels /dev/serial/by-id usb-1a86_USB2.0-Serial-if00-port0 usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_fab6f39d073bec11ab2ea0957a0af07f-if00-port0 usb-Texas_Instruments_CC2538_USB_CDC-if00
Das ist jetzt in diesem Fall für den existierenden Host nur ein Texas_Instruments_CC2538_USB_CDC, da ich aber dieser Tage immer mal wieder am umbauen und aufräumen bin würde ich gern die neuen Systeme als LXC mit den spare Parts Texas_Instruments_CC2538_USB_CDC aufbauen. Die alten Systeme sind als VMs aufgesetzt und brauchen deutlich mehr Ressourcen, welche ich gerne anderweitig nutzen wollen würde.
Daher die Idee die 'iSerial' zu nutzen - die könnte ich dann als unique auch nach Neustart automatisiert zuweisen lassen.
-
@waschbaerbauch75 sagte in USB iSerial für CC2538+2592 möglich?:
Leider (so ich denn richtig im Thema bin) ergibt das mit dem by-id bzw by-path gelegentlich Probleme wenn der Host aktualisiert und neu gestartet wird.
genau dagegen hilft ja by-id.
Da wird nicht der sich ändernde USB-Port sondern die eindeutige Geräte ID verwendet.
Die muss es allerdings erst einmal geben.solange du (wie mir scheint) unterschiedliche IDs hast, klappt das.
@waschbaerbauch75 sagte in USB iSerial für CC2538+2592 möglich?:
brauchen deutlich mehr Ressourcen,
könntest du das für mich mal in Zahlen fassen?
-
@waschbaerbauch75 Wenn ich das richtig verstehe, scheint das System doch etwas komplexer aufgestellt ...
- Du nutzt einen virtualhere Server um über das Netzwerk USB-Geräte zugänglich zu machen -> wo läuft der Server, auch unter Proxmox? LXC-Container?
- Du nutzt Proxmox, um darin ioBroker Instanzen zu betreiben -> warum mehrere Instanzen? Ist das ein Proxmox Cluster?
- Du hast mehrere USB-Sticks
Ich glaube, mit solch einem Ansatz wird es nur äußerst wenige User geben, die hier im Forum unterwegs sind ...
-
@martinp
Ja ein wenig komplexer trifft es wohl. Großes Spielkind mit ausuferndem SpieltriebDu nutzt einen virtualhere Server um über das Netzwerk USB-Geräte zugänglich zu machen -> wo läuft der Server, auch unter Proxmox? LXC-Container?
Aktuell nicht für den ioBroker - das waren pre-ioBroker Zeiten (FHEM) - hab mir für den Screenshot nur mal fix den Server und den Client gestartet. Meine beiden Lizenzen für virtualhere sind allerdings auf die Serialnummern der RaspberryPis gekoppelt, welche ich damals dafür in Gebrauch hatte.
Du nutzt Proxmox, um darin ioBroker Instanzen zu betreiben -> warum mehrere Instanzen?
'Eine Produktive' und mehrere 'hier tob ich mich mal aus' Instanzen
Ist das ein Proxmox Cluster?
So ist es - aktuell besteht der Proxmox Cluster aus drei Systemen:
- Dell T20 - 4 x Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz -32GB
- Dell T20 - 4 x Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz- 24GB
- HP MS Gen8 - 8 x Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz - 16GB
Auf dem Gen8 laufen aktuell die 'alten' Instanzen - also die 'produktive' ioBroker und mein altes Testcenter.
Auf den weiteren Maschinen halt was einem alles mal so vor die Flinte kommt - nextcloud, omada, shinobi, mqtt, grafana, prometheus, tasomoadmin, fhem, grocy, mariadb und was es noch so alles gibt.Du hast mehrere USB-Sticks
Auch das ist korrekt - ich habe ein Sammelsurium an Zigbee Sticks, Jeelink, CUL, CULHM, ...
genau dagegen hilft ja by-id. Da wird nicht der sich ändernde USB-Port sondern die eindeutige Geräte ID verwendet.
Die muss es allerdings erst einmal geben.Moment- ich prüfe!
könntest du das für mich mal in Zahlen fassen?
Ich versuche es mal:
ioBroker mit VM und Desktop -> min. 7GB - aktuell hab ich der VM 12GB RAM zugestanden
ioBroker mit VM ohne Desktop -> liegt im Testbetrieb um und bei 4GB RAM und darf max. 8GB nutzen
ioBroker im LXC Container -> dümpelt aktuell bei etwas mehr als einem GB RAM Auslastung -
@waschbaerbauch75 said in USB iSerial für CC2538+2592 möglich?:
ls /dev/serial/by-id
root@DELL-T20-32GB:~# ls /dev/serial/by-id usb-Texas_Instruments_CC2538_USB_CDC-if00 root@DELL-T20-32GB:~#
dmesg [420518.789731] hub 1-8:1.0: USB hub found [420518.790015] hub 1-8:1.0: 4 ports detected [420519.106219] usb 1-8.2: new full-speed USB device number 6 using xhci_hcd [420519.232551] usb 1-8.2: New USB device found, idVendor=0451, idProduct=16c8, bcdDevice= 1.00 [420519.232557] usb 1-8.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [420519.232569] usb 1-8.2: Product: CC2538 USB CDC [420519.232570] usb 1-8.2: Manufacturer: Texas Instruments [420519.240253] cdc_acm 1-8.2:1.0: ttyACM0: USB ACM device [420520.326224] usb 1-8.1: new full-speed USB device number 7 using xhci_hcd [420520.452663] usb 1-8.1: New USB device found, idVendor=0451, idProduct=16c8, bcdDevice= 1.00 [420520.452669] usb 1-8.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [420520.452670] usb 1-8.1: Product: CC2538 USB CDC [420520.452672] usb 1-8.1: Manufacturer: Texas Instruments [420520.460349] cdc_acm 1-8.1:1.0: ttyACM1: USB ACM device
Das ist jetzt auch schwierig - zwei Sticks angeklöppelt, dmesg erkennt sie, aber nur einer ist unter 'by-id'
root@DELL-T20-32GB:/dev/serial/by-path# ls pci-0000:00:14.0-usb-0:8.1:1.0 pci-0000:00:14.0-usb-0:8.2:1.0 root@DELL-T20-32GB:/dev/serial/by-path#
Bedingt durch die sporadischen Fehlzuordnungen beim Neustart des Hosts ist die VM Variante mit mehr Verbrauch an RAM aber auch keine wirklich immer funktionierende Lösung. Der markierte Bereich ist dann z.B. '3' statt '1' und schwupps sind alle Sticks disconnected.
-
@waschbaerbauch75 sagte in USB iSerial für CC2538+2592 möglich?:
aber nur einer ist unter 'by-id
dann hat der andere keine echte ID, sondern nur eine Gerätekennung.
-
-
@waschbaerbauch75 sagte in USB iSerial für CC2538+2592 möglich?:
oder ob die Hardware das generell nicht 'her gibt'.
da gehe ich erst einmal von aus.
...
@homoran sagte in USB iSerial für CC2538+2592 möglich?:
da gibt es bei billigen Adaptern/Konvertern oft keine ID.
Deswegen "leiste" ich mir die Waveshare RS485_USB Teile.
Hier kann ich mir das auch vorstellen -
@homoran said in USB iSerial für CC2538+2592 möglich?:
da gehe ich erst einmal von aus.
Die Hoffnung stirbt zuletzt!
Ich geh mal ein wenig den Körper schinden - vielleicht gibt es ja noch jemanden dem dazu eine mögliche Lösung einfällt und wenn nicht muss ich halt mit den Einschränkungen leben wie bisher
-
@waschbaerbauch75 Ich bin da auch kein Experte und gucke mir die Ergebnisse an, wenn ich ein Device einstecke, und mache mir daraus einen Reim.
Mein "by-id" Pfad hat eine Namens-Struktur angenommen, die auch den Steckplatz wiederspiegelt, auf der das Device steckt enthält.
Ich weiß aber nicht, wie das ausgewertet wird ...
martin@ZigbeeStuff:~$ ls /dev/serial/by-id usb-dresden_elektronik_ConBee_III_DE03189531-if00-port0
"if00-port0" wird sich wohl ändern, wenn ich den Stick in einen anderen USB-Port des Systems stecke ....
Von da her sollten Anwendungen ja durchaus einen Ansatz haben, die Devices zu unterscheiden, wenn diese entsprechend ihrer Aufgabe immer in "ihren" Port gesteckt werden....
-
@martinp sagte in USB iSerial für CC2538+2592 möglich?:
if00-port0" wird sich wohl ändern, wenn ich den Stick in einen anderen USB-Port des Systems stecke ....
nein!
das ist Bestandteil der ID -
@martinp sagte in USB iSerial für CC2538+2592 möglich?:
"if00-port0" wird sich wohl ändern, wenn ich den Stick in einen anderen USB-Port des Systems stecke ....
Nein, denn das ist das Interface auf dem Stick. Es gibt z.B. auch welche mit zwei Interfaces. Die ID ändert sich allenfalls wenn da per Firmware-Update eine neue ID draufgeflasht würde.
-
@martinp sagte in USB iSerial für CC2538+2592 möglich?:
Von da her sollten Anwendungen ja durchaus einen Ansatz haben, die Devices zu unterscheiden
Ja, über die ID halt... Die ändert sich ja eben nicht.
-
@thomas-braun Hätte ich auch selber drauf kommen können
martin@ZigbeeStuff:~$ lsusb ... Bus 002 Device 002: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO) ...
"usb-dresden_elektronik_ConBee_III_DE03189531-if00-port0"
Wenn es statt "...-if00-port0" "...if02-port2" hintendran gewesen wären, hätte es immerhin einen Grund gegeben, auf eine falsche Fährte zu geraten ...