ttyUSB-Geräte mit festem Namen versehen

PDF Dokumente für Informationen im Detail, sowie Bauanleitungen. Alles, was man wissen sollte. Bei Fragen, bitte erst einmal hier vorbeischauen.

Moderator: Ulrich

MolPower
Beiträge: 119
Registriert: Do 8. Sep 2022, 17:44
Danksagung erhalten: 2 Mal

Re: ttyUSB-Geräte mit festem Namen versehen

Beitrag von MolPower »

Ich habe auch dieses mal gelöste Problem:
Der Hinweis mit dem "." war der entscheidende Tip.
3f980000.usb wird zwar als Seriennummer rausgeworfen, jedoch mit einem tiefen Blick durch
udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB0
war dann keine Seriennummer vorhanden.
Habe nun ein anderes ATTRS Attribut genommen - und damit geht es.

Leider wurde nicht allgemeinverständlich erklärt wie man das umgehen kann, wie man wo an ein anderes Attribut kommt.

BeGe
Beiträge: 4
Registriert: Mi 26. Jul 2023, 12:02

Re: ttyUSB-Geräte mit festem Namen versehen

Beitrag von BeGe »

Ich habe drei baugleiche Inverter. Da finde ich keine unterschiedlichen Attribute. gibt es vielleicht noch einen anderen Trick?

Vielen Dank im Voraus für die Hilfe.
Gruß, Bernhard

Janniman
Beiträge: 144
Registriert: Mi 13. Okt 2021, 09:52
Hat sich bedankt: 6 Mal
Danksagung erhalten: 7 Mal

Re: ttyUSB-Geräte mit festem Namen versehen

Beitrag von Janniman »

Moin.
Vielleicht hilft dir dieser Thread.

https://unix.stackexchange.com/question ... ot-working

Ist zwar nicht ideal, wenn man die Geräte abzieht und an einem anderem USB-Port wieder ansteckt, aber wenn man weiß, wohin jeder einzelne Stick soll... Ich würde mich freuen, wenn es dir hilft.

In eigener Sache: Nun hoffe ich noch darauf, dass nicht wieder einer hinter dem Busch hervorspringt und mit dem Knüppel haut. :evil:

Jan

Blindflug
Beiträge: 1
Registriert: Di 19. Mär 2024, 18:03

Re: ttyUSB-Geräte mit festem Namen versehen

Beitrag von Blindflug »

Hallo Ihr!
habe ein USB to 2x Serial

Eine feste Zuweisung mit der Serial geht nicht da, alle beiden Ports die gleiche SN haben!

udevadm info -a -n /dev/ttyUSB0 | grep '{serial}' | head -n1
ATTRS{serial}=="FT8B61MS"
udevadm info -a -n /dev/ttyUSB1 | grep '{serial}' | head -n1
ATTRS{serial}=="FT8B61MS"

Lsusb:
lrwxrwxrwx 1 root root 13 Mar 22 16:00 usb-FTDI_FT2232H_device_FT8B61MS-if00-port0 -> ../../ttyUSB0

Code: Alles auswählen

looking at device '/devices/platform/soc/1c14000.usb/usb5/5-1/5-1:1.0/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="usb-serial"
    DRIVER=="ftdi_sio"
    ATTR{event_char}=="(not readable)"
    ATTR{latency_timer}=="16"
    ATTR{port_number}=="0"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"

  looking at parent device '/devices/platform/soc/1c14000.usb/usb5/5-1/5-1:1.0':
    KERNELS=="5-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="ftdi_sio"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="ff"
    ATTRS{bInterfaceSubClass}=="ff"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{interface}=="FT2232H device"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/platform/soc/1c14000.usb/usb5/5-1':
    KERNELS=="5-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="200mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 2"
    ATTRS{bcdDevice}=="0700"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="5"
    ATTRS{configuration}==""
    ATTRS{devnum}=="2"
    ATTRS{devpath}=="1"
    ATTRS{devspec}=="(null)"
    ATTRS{idProduct}=="6010"
    ATTRS{idVendor}=="0403"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="FTDI"
    ATTRS{maxchild}=="0"
    ATTRS{power/active_duration}=="18441092"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="18441088"
    ATTRS{power/control}=="on"
    ATTRS{power/level}=="on"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_time}=="18440801"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{product}=="FT2232H device"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{remove}=="(not readable)"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="FT8B61MS"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="16"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/platform/soc/1c14000.usb/usb5':
    KERNELS=="usb5"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0606"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="5"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 6.6.21-current-sunxi ehci_hcd"
    ATTRS{maxchild}=="1"
    ATTRS{power/active_duration}=="18441280"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="18441280"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_time}=="18441242"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{remove}=="(not readable)"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="1c14000.usb"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="22"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/platform/soc/1c14000.usb':
    KERNELS=="1c14000.usb"
    SUBSYSTEMS=="platform"
    DRIVERS=="ehci-platform"
    ATTRS{companion}==""
    ATTRS{driver_override}=="(null)"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{uframe_periodic_max}=="100"

  looking at parent device '/devices/platform/soc':
    KERNELS=="soc"
    SUBSYSTEMS=="platform"
    DRIVERS=="simple-pm-bus"
    ATTRS{driver_override}=="(null)"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"

  looking at parent device '/devices/platform':
    KERNELS=="platform"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
lines 123-167/167 (END)
lrwxrwxrwx 1 root root 13 Mar 22 16:00 usb-FTDI_FT2232H_device_FT8B61MS-if01-port0 -> ../../ttyUSB1

Code: Alles auswählen

looking at device '/devices/platform/soc/1c14000.usb/usb5/5-1/5-1:1.1/ttyUSB1':
    KERNEL=="ttyUSB1"
    SUBSYSTEM=="usb-serial"
    DRIVER=="ftdi_sio"
    ATTR{event_char}=="(not readable)"
    ATTR{latency_timer}=="16"
    ATTR{port_number}=="0"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"

  looking at parent device '/devices/platform/soc/1c14000.usb/usb5/5-1/5-1:1.1':
    KERNELS=="5-1:1.1"
    SUBSYSTEMS=="usb"
    DRIVERS=="ftdi_sio"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceNumber}=="01"
    ATTRS{bInterfaceProtocol}=="ff"
    ATTRS{bInterfaceSubClass}=="ff"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{interface}=="FT2232H device"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/platform/soc/1c14000.usb/usb5/5-1':
    KERNELS=="5-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="200mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 2"
    ATTRS{bcdDevice}=="0700"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="5"
    ATTRS{configuration}==""
    ATTRS{devnum}=="2"
    ATTRS{devpath}=="1"
    ATTRS{devspec}=="(null)"
    ATTRS{idProduct}=="6010"
    ATTRS{idVendor}=="0403"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="FTDI"
    ATTRS{maxchild}=="0"
    ATTRS{power/active_duration}=="18930376"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="18930376"
    ATTRS{power/control}=="on"
    ATTRS{power/level}=="on"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_time}=="18930084"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{product}=="FT2232H device"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{remove}=="(not readable)"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="FT8B61MS"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="16"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/platform/soc/1c14000.usb/usb5':
    KERNELS=="usb5"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0606"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="5"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 6.6.21-current-sunxi ehci_hcd"
    ATTRS{maxchild}=="1"
    ATTRS{power/active_duration}=="18930564"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="18930564"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_time}=="18930525"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{remove}=="(not readable)"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="1c14000.usb"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="22"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/platform/soc/1c14000.usb':
    KERNELS=="1c14000.usb"
    SUBSYSTEMS=="platform"
    DRIVERS=="ehci-platform"
    ATTRS{companion}==""
    ATTRS{driver_override}=="(null)"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{uframe_periodic_max}=="100"

  looking at parent device '/devices/platform/soc':
    KERNELS=="soc"
    SUBSYSTEMS=="platform"
    DRIVERS=="simple-pm-bus"
    ATTRS{driver_override}=="(null)"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"

  looking at parent device '/devices/platform':
    KERNELS=="platform"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"

lines 123-167/167 (END)
Kann man auch mehre Parameter für die Zuweisung verwenden?
Und Welche?

Grüße

ElektroFuchs
Beiträge: 68
Registriert: Sa 30. Jan 2021, 12:55
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal

Re: ttyUSB-Geräte mit festem Namen versehen

Beitrag von ElektroFuchs »

Hallo Blindflug,

schon mal mit fester USB-Port Zuweisung versucht? Wie ich das gelöst hatte findest Du weiter am Anfang.
Vielleicht klappt es damit.

Gruß

schrori95
Beiträge: 7
Registriert: Do 21. Nov 2024, 00:59

Re: ttyUSB-Geräte mit festem Namen versehen

Beitrag von schrori95 »

Hallo :)

danke für die tolle Anleitung, leider habe ich nicht das erwartete Ergebnis... Die gerate hängen alle an hubs

pi@solaranzeige:~ $ udevadm info -a -n /dev/ttyUSB0 | grep '{serial}' | head -n1
ATTRS{serial}=="0000:01:00.0"
pi@solaranzeige:~ $ udevadm info -a -n /dev/ttyUSB1 | grep '{serial}' | head -n1
ATTRS{serial}=="0000:01:00.0"
pi@solaranzeige:~ $ udevadm info -a -n /dev/ttyUSB2 | grep '{serial}' | head -n1
ATTRS{serial}=="0000:01:00.0"

TeamO
Beiträge: 1248
Registriert: Mo 22. Jun 2020, 08:58
Wohnort: Ulm / Neu-Ulm
Hat sich bedankt: 26 Mal
Danksagung erhalten: 212 Mal

Re: ttyUSB-Geräte mit festem Namen versehen

Beitrag von TeamO »

Hier hatte ich in diesem Thread schon geschrieben, wie Du die Zuweisung anhand der Ports machen kannst. Dass funktioniert auch beim Anschluss über Hubs.
TeamO hat geschrieben:
Do 2. Mär 2023, 08:32
dirkl hat geschrieben:
Mi 1. Mär 2023, 23:50
Das funktioniert leider nicht, da sich der Port beim Anstecken des zweiten Adapters ändert.
Die Hardware-Ports ändern sich doch nicht. Jeder Port hat eine feste Bezeichnung, welcher Du dann den eentsprechenden Adapter zuweist.

Code: Alles auswählen

udevadm info -a -n /dev/ttyUSB0 | grep '{devpath}' | head -n1
Gibt Dir den (Hardware-)USB-Port von ttyUSB0 aus und

Code: Alles auswählen

udevadm info -a -n /dev/ttyUSB1 | grep '{devpath}' | head -n1
gibt Dir den (Hardware-)USB-Port von ttyUSB1 aus.
Als Antwort kommt dann zum Beispiel:

Code: Alles auswählen

pi@solaranzeige:~ $ udevadm info -a -n /dev/ttyUSB0 | grep '{devpath}' | head -n1
    ATTRS{devpath}=="1.4"
pi@solaranzeige:~ $ udevadm info -a -n /dev/ttyUSB1 | grep '{devpath}' | head -n1
    ATTRS{devpath}=="1.3"
Somit ist der USB-Adapter ttyUSB0 am Port 1.4 und der ttyUSB1 an Port 1.3.
Welcher für welchen Wechselrichter ist, kannst Du ja leicht rausfinden.
Jetzt musst Du nur noch in der /etc/udev/rules.d/99-usb-serial.rules entsprechend den Ports (devpath) die Zuweisung von einem Festen Namen auf diesen Port vornehmen.
In dem Beispiel von mir dann folgendes:

Code: Alles auswählen

SUBSYSTEM=="tty", ATTRS{devpath}=="1.3", SYMLINK+="ttyUSB1", OWNER="pi"
SUBSYSTEM=="tty", ATTRS{devpath}=="1.4", SYMLINK+="ttyUSB0", OWNER="pi"
Wichtig ist, dass die Bezeichnung mit ttyUSB beginnt. Das hatte Ulrich mal geschrieben.

Mit dieser Variante können auch Hidraw-Geräten feste Ports zugewiesen werden.
Gruß Timo

Auflistung Geräte/Dashboards/Anschlussart
Datenbankfelder der einzelnen Geräte
GANZ WICHTIG: Überblick der vorhandenen Anleitungen

Fertige Komplett-Systeme gibt es hier anfragen[AT]bauer-timo[.]de

Tibber Invite (100% Öko-Strom + 50€ Bonus)

ElektroFuchs
Beiträge: 68
Registriert: Sa 30. Jan 2021, 12:55
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal

Re: ttyUSB-Geräte mit festem Namen versehen

Beitrag von ElektroFuchs »

Hallo Schrori95,

wie die Zeilen in der rules99 aussehen müssen, wenn ein HUB dazwischen hängt, siehst Du auch in meinem Beispiel.

SUBSYSTEM=="tty", ATTRS{devpath}=="1.2.2", SYMLINK+="ttySolar1"
SUBSYSTEM=="tty", ATTRS{devpath}=="1.2.1", SYMLINK+="ttySolar2"
SUBSYSTEM=="tty", ATTRS{devpath}=="1.2.3", SYMLINK+="ttySolar3"
SUBSYSTEM=="tty", ATTRS{devpath}=="1.2.4", SYMLINK+="ttyBMS1"

So sah es mal bei mir aus in der rules, wo am Port 1.2 vom Raspi ein HUB dran war.

Gruß

Benutzeravatar
Schwarzermann
Beiträge: 248
Registriert: Sa 9. Okt 2021, 11:16
Wohnort: 87733
Hat sich bedankt: 7 Mal
Danksagung erhalten: 9 Mal

Re: ttyUSB-Geräte mit festem Namen versehen

Beitrag von Schwarzermann »

So ich habe das ganze bei mir gerade auch durch gearbeitet sofern man die geschweifte klammer nicht gegen eie normalklammer und gross und kleinschreibung niht verwechselt und 2 geräte gleich benennt funktioniert es auch soweit gut war schon für mich als ungeübter ein 20 min Akt aber es funktioniert, somit kann ich endlich auch meinen 2 Big7 HUB darunter Schrauben und das gnaze nochmals erweitern .
Danke an TeamO für die Arbeit.
Der mit sympatischen Vollmeise

Zurück zu „Dokumente, Bauanleitungen und How To's“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste