HeAdLeSs
Posts: 17
Joined: Wed Oct 15, 2014 12:18 pm
Location: Cyprus
Contact: Website

USB udev rules

Tue Oct 17, 2017 10:25 am

Hallo.

Ich brauche mal eure Hilfe.
Ich habe gerade die Situation das meine USB Geräte ein riesen Chaos werden. :? Es hängt auch so einiges dran (inkl. USB Hub) bzw. kommt noch mehr. Aber der Reihe nach.

Bis jetzt war nur ein Huawei 3G Stick und eine USB Soundkarte dran. Der Huawei möchte gleich 3 USB Ports haben (braucht er auch). /dev/ttyUSB0-2. Jetzt ist noch ein Serial-to-USB dazu gekommen. Und schon geht es los. Das System bindet diesen als erstes ein. Also /dev/ttyUSB0. Das findet der Huawei aber irgendwie doof und scheint sich auch auf diesen Port zu connecten (wie auch immer das geht). Ich kann die Serielle Schnittstelle nicht auslesen. Wenn ich den Serial-to-USB erst nach dem start dran hänge, dann bekommt er /dev/ttyUSB3 und alles ist gut.

Wie auch immer. Es kommen bald noch Mass Storage Speicher dazu. Das wir mir ein Chaos, da ich nicht nach jedem Neustart die USB Ports in den Programmen anpassen will.

Soweit ich gesehen habe, kann man den USB Geräten einen eindeutigen Symlink mit udev zuweisen.

Hier mal mein lsusb:

Code: Select all

Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 007: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
Bus 001 Device 005: ID 0d8c:0014 C-Media Electronics, Inc.
Bus 001 Device 006: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Wenn ich das jetzt richtig verstehe mit dem udev dann erstelle ich für jede Regel eine neue Datei (?) in /dev/udev/rules.d/[zahl]-[ein name].rules. Richtig? Oder alles in eine Datei?
Und dann wäre der Inhalt der Datei die Regel. Nur wie muss die in diesem Fall aussehen? Und besonders bei dem Huawei mit seinen 3 Ports? Soweit ich es verstanden habe kann ich einem Gerät einen Symlink zuweisen. Der braucht aber 3...
Und werden die Geräte trotz Symlink noch immer auch als /dev/ttyUSB* eingebunden?

Hier noch den lsusb des Huawei. Da sieht man die beiden Input und den einen Output Port.

Code: Select all

pi@RPi2 ~ $ sudo lsusb -v -d 12d1:1001

Bus 001 Device 006: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x12d1 Huawei Technologies Co., Ltd.
  idProduct          0x1001 E169/E620/E800 HSDPA Modem
  bcdDevice            0.00
  iManufacturer           3 HUAWEI Technology
  iProduct                2 HUAWEI Mobile
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           85
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          1 Huawei   Configuration
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              32
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              32
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              32
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              32
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              32
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              32
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered
Danke schon mal für die Hilfe.

Viele Grüße
HeAdLeSs

Return to “Deutsch”