USB Schnittstellen Raspberry Pi festlegen klappt nicht

Hallo,

ich habe mich wirklich schon wundgesucht, oder bin einfach blind.
Ich habe meine Alarmanlage über ein Seriell / USB Wandler und den EBUSD ESERA Adapter an einem Raspberry Pi und stehe vollends auf dem Schlauch, da bei einem Wechsel der USB Plätze ich immer in IPS alles neu konfigurieren muss.

Ich habe schon die Lösung bzgl. der udev/rules.d Datei ausprobiert:

SUBSYSTEM=="tty", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", ATTRS{manufacturer}=="ESERA-Automation", SYMLINK+="ttyHZG"
SUBSYSTEM=="tty", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", ATTRS{manufacturer}=="FTDI", ATTRS{serial}=="A10KHITH", SYMLINK+="ttyALARM"

Zwar haben beide eine unterschiedliche „serial“ aber es scheint nicht zu klappen.
Liegt das an IPS 6.1?
Hier sind noch ein paar Details bzgl. der Schnittstellen…

root@raspberrypi:/home/raspberry.dirk# lsusb  
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@raspberrypi:/home/raspberry.dirk# lsusb -vs 001:004

Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6001 FT232 Serial (UART) IC
  bcdDevice            6.00
  iManufacturer           1 FTDI
  iProduct                2 FT232R USB UART
  iSerial                 3 A10KHITH
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               90mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 FT232R USB UART
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)



root@raspberrypi:/home/raspberry.dirk# lsusb -vs 001:003

Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6001 FT232 Serial (UART) IC
  bcdDevice            6.00
  iManufacturer           1 ESERA-Automation
  iProduct                2 eBus Coupler 12001
  iSerial                 3 AL6L0XPM
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               90mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 eBus Coupler 12001
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

Hat da jemand evtl. eine Idee?

VG

Such mal nach udev bzw udefadm
Damit kannst du sie festlegen

Moin,

Schon getan (siehe die UDEV Einträge oben).
Trotz unterschiedlicher SERIAL klappt es nicht.
Zwar werden beiden je meine Festgelegten Namen über Symlink zugewiesen, aber er mischt den ttyALARM immer noch mit USB1 bzw USB0 und die Alarmanlage ist jenachdem auf ALARM bzw USBx zugunsten….

Bin da echt ratlos….

Wie kann ich testen ob es Ggf doch am RASPI oder IPS liegt oder mache ich sonstwas falsch?

Ziel wäre ja, dass die Alarmanlage immer fix erkannt wird, egal welchen USB Port ich nehme und nicht in IPS immer die serial I/O immer neu einstellen muss.

Die Alarmanlage hat einen RS232 zu USB Konverter dran mit eben oben genannten Chipsatz.

Hi Dirk,

Wenn du alles richtig gemacht hast, muss es klappen

Vielleicht hast du nicht die richtige oder gar keine Seriennummer bekommen.
Versuch mal dieses

udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB0

Hast du für beide die SerienNr ermittelt?
udevadm info -a -n /dev/ttyUSB0 | grep ‚{serial}‘ | head -n1

Hier noch einmal die Vorgehensweise
Dann die rules anlegen
sudo mcedit /etc/udev/rules.d/99-usb-serial.rules

Hier Beispielsweise

SUBSYSTEM==„tty“, ATTRS{serial}==„SERIENNUMMER“, SYMLINK+=„WUNSCHNAME“, OWNER=„pi“

Als

SUBSYSTEM==„tty“, ATTRS{serial}==„0006“, SYMLINK+=„Geraet1“, OWNER=„pi“

Dann noch den zweiten usb genauso einfügen

Dann reboot

Testen mit

ls -l /dev/Geraet1

Ergebnis sollte so aussehen

pi@raspi:~ $ ls -l /dev/Geraet1
lrwxrwxrwx 1 root root 7 nov2 16:40 /dev/EZ → ttyUSB0

Sorry, für mein Steno …sitze am Flgh und klimpere auf meinem IPhone

Werden die gerätelinks in /dev denn korrekt angelegt?
nimm ansonsten bei den Regeln mal die Attribute manufacturer und serial raus und verlass dich nur auf die Vendor und Device ID

Vendor und Product sind leider identisch

Habe die „99-usb.rules“ ---- oder muss es in der Tat „99-usb-serial.rules“ heissen???

noch mal gemacht:

SUBSYSTEM=="tty", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", ATTRS{manufacturer}=="ESERA-Automation", ATTRS{serial}=="AL6L0XPM", SYMLINK+="ttyHZG"
SUBSYSTEM=="tty", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", ATTRS{manufacturer}=="FTDI", ATTRS{serial}=="A10KHITH", SYMLINK+="ttyALARM"

Ergebnis:

lrwxrwxrwx 1 root root          7  2. Nov 09:10 /dev/ttyALARM -> ttyUSB1
crw-rw---- 1 root dialout 204, 64  2. Nov 09:10 /dev/ttyAMA0
lrwxrwxrwx 1 root root          7  2. Nov 09:10 /dev/ttyHZG -> ttyUSB0
crw------- 1 root root      5,  3  2. Nov 09:10 /dev/ttyprintk
crw-rw---- 1 root dialout 188,  0  2. Nov 09:11 /dev/ttyUSB0
crw-rw---- 1 root dialout 188,  1  2. Nov 09:10 /dev/ttyUSB1

Die Schnittstellen ttyUSB0 und ttyUSB1 gibt es immer noch und sind quasi doppelt:

root@raspberrypi:/home/raspberry.dirk# udevadm info -a -n /dev/ttyUSB1 | grep '{serial}' | head -n1
    ATTRS{serial}=="A10KHITH"
root@raspberrypi:/home/raspberry.dirk# udevadm info -a -n /dev/ttyUSB0 | grep '{serial}' | head -n1
    ATTRS{serial}=="AL6L0XPM"
root@raspberrypi:/home/raspberry.dirk# udevadm info -a -n /dev/ttyALARM | grep '{serial}' | head -n1
    ATTRS{serial}=="A10KHITH"
root@raspberrypi:/home/raspberry.dirk# udevadm info -a -n /dev/ttyHZG | grep '{serial}' | head -n1
    ATTRS{serial}=="AL6L0XPM"

D.h. die Alarmanlage und der EBUSD ESERA Adapter sind quasi doppelt vorhanden…

ja ich nehme in IPS entspechend ttyALARM bzw. ttyHZG

Alles klappt soweit.

Dann ziehe ich zum Teste einmal den ttyALARM ab und wieder rein, und schon sitzt ttyALARM auf ttyUSB2, obwohl ich den selben USB port benutze und den ttyUSB1 gibt es nicht mehr mit [tt]ls- l /dev/tty*[/tt]

wieder raus rein, liegt der Alarm auf ttyUSB1

OK - ES KLAPPT zzt - war nur viel zu ungeduldig bis sich die Schnittstelle nach Umstecken oder auch raus / rein wieder aufggebaut hat

DANK!

1 „Gefällt mir“

Warum soll eigentlich das USB-Mapper Modul nicht mehr verwendet werden? Das war super simpel und ordentlich in der Konsole zu benutzen. Warum muss man jetzt händisch udev rules anlegen?

Grüße
Stefan