PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Consoleserver - USB-Ports fest zuordnen?



rund
12.02.09, 15:55
Hi,
ich will hier im Netz mit einem Linux-Server und der Software ser2net ein Cisco-Lab im Intranet zur Verfügung stellen. Anbinden will ich im ersten Step 8 Router. So viele RS232-Ports hab ich natürlich nicht, aber USB-Ports. Entsprechend habe ich jetzt 8 Adapter von USB auf RS232 gekauft und diese angeschlossen.
In der Software weise ich dann einen TCP-Port einem ttyUSB zu.

Die Anbindung selbst funktioniert, das Problem ist, dass die Konsolenkabel von Cisco sehr störanfällig ist und mir bei Einschalten der Labrouter (geschieht vom Benutzer über Webifc) die Linux Ports verschwinden (sporadisch "kernel: hub 2-0:1.0: port 2 disabled by hub (EMI?), re-enabling...") und teilweise auf anderen Pfaden neu gemapped werden. Außerdem weiß ich nicht, ob nach einem Neustart die Reihenfolge der Geräte beibehalten werden würde.

Jetzt suche ich nach einer Lösung um die USB-Geräte festen Pfaden zuzuordnen. Soweit ich in Google gesehen habe sollte es mit der iSerial gehen, aber..... die Geräte haben keine iSerial. Product- und Vedor-ID nützen mir auch nichts, da alle die gleichen Adapter sind. Bus-ID/Dev-ID fallen aus, da diese beim abstecken hochzählen. Damit habe ich imho alle unterschiedlichen Parameter von "udev -v" abgearbeitet.

Jetzt fehlt mir jede Idee, wie ich eine eindeutige Zuordnung bekommen kann.
Irgendwelche Ideen?

Anbei mal die Ausgabe von lsusb -v:


Bus 002 Device 038: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x067b Prolific Technology, Inc.
idProduct 0x2303 PL2303 Serial Port
bcdDevice 3.00
iManufacturer 1 Prolific Technology Inc.
iProduct 2 USB-Serial Controller
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 39
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
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 0x000a 1x 10 bytes
bInterval 1
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
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)

rund
13.02.09, 11:44
Nach mehreren Stunden google und experimentieren haben ich folgende Lösung für die udev-rules gefunden:



KERNEL=="ttyUSB*",DEVPATH=="*1a.1/usb2/2-1*",SYMLINK+="USBCOM1"
KERNEL=="ttyUSB*",DEVPATH=="*1a.1/usb2/2-2*",SYMLINK+="USBCOM2"
KERNEL=="ttyUSB*",DEVPATH=="*1d.1/usb4/4-1*",SYMLINK+="USBCOM3"
KERNEL=="ttyUSB*",DEVPATH=="*1d.1/usb4/4-2*",SYMLINK+="USBCOM4"
KERNEL=="ttyUSB*",DEVPATH=="*1d.2/usb5/5-1*",SYMLINK+="USBCOM5"
KERNEL=="ttyUSB*",DEVPATH=="*1d.7/usb7/7-6/7-6.4*",SYMLINK+="USBCOM6"
KERNEL=="ttyUSB*",DEVPATH=="*1d.7/usb7/7-6/7-6.3/7-6.3.4*",SYMLINK+="USBCOM7"
KERNEL=="ttyUSB*",DEVPATH=="*1d.7/usb7/7-6/7-6.3/7-6.3.3*",SYMLINK+="USBCOM8"



Den physikalischen Pfad hae ich durch an/abstecken der Ports bei laufendem "udevmonitor env" gefunden.