Quadmouse
Bei der Quasmouse ist es genauso wie beim Argolis Triple, mit ausnahme das die Quadmouse keine iSerial hat! Deshalb wird es sehr schwer mehrere Quadmouse auseinander zu halten
Also zunächst über den Befehl lsusb -v die benötigten Informationen (iInterface) herraus suchen:
Bus 001 Device 005: ID 0403:6011 Future Technology Devices International, Ltd FT4232H Quad HS USB-UART/FIFO IC
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0403 Future Technology Devices International, Ltd
idProduct 0x6011 FT4232H Quad HS USB-UART/FIFO IC
bcdDevice 8.00
iManufacturer 1 FTDI
iProduct 2 Quad RS232-HS
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 101
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
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 Quad RS232-HS
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 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 0x0200 1x 512 bytes
bInterval 0
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 2 Quad RS232-HS
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 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
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 2 Quad RS232-HS
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 2 Quad RS232-HS
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x08 EP 8 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
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: 0x0000
(Bus Powered)
Und erstellen dann entweder für jedes bInterfaceNumber eine 91-usb.rules Zeile:
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{interface}=="Quad RS232-HS", ATTRS{bInterfaceNumber}=="00", SYMLINK+="quad1"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{interface}=="Quad RS232-HS", ATTRS{bInterfaceNumber}=="01", SYMLINK+="quad2"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{interface}=="Quad RS232-HS", ATTRS{bInterfaceNumber}=="02", SYMLINK+="quad3"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{interface}=="Quad RS232-HS", ATTRS{bInterfaceNumber}=="03", SYMLINK+="quad4"
2x Quadmouse
Da die Quadmouse keine iSerial hat, muss für udev die "usb id" genommen werden.. Das findet man über den Befehl dmesg|grep usb herraus:
[ 12.727429] ftdi_sio 1-4:1.0: FTDI USB Serial Device converter detected
[ 12.728733] usb 1-4: Detected FT4232H
[ 12.728749] usb 1-4: Number of endpoints 2
[ 12.728758] usb 1-4: Endpoint 1 MaxPacketSize 512
[ 12.728767] usb 1-4: Endpoint 2 MaxPacketSize 512
[ 12.728775] usb 1-4: Setting MaxPacketSize 512
[ 12.753645] usb 1-4: FTDI USB Serial Device converter now attached to ttyUSB0
[ 12.772763] ftdi_sio 1-4:1.1: FTDI USB Serial Device converter detected
[ 12.774629] usb 1-4: Detected FT4232H
[ 12.774645] usb 1-4: Number of endpoints 2
[ 12.774654] usb 1-4: Endpoint 1 MaxPacketSize 512
[ 12.774790] usb 1-4: Endpoint 2 MaxPacketSize 512
[ 12.774798] usb 1-4: Setting MaxPacketSize 512
[ 12.790216] usb 1-4: FTDI USB Serial Device converter now attached to ttyUSB1
[ 12.798047] ftdi_sio 1-4:1.2: FTDI USB Serial Device converter detected
[ 12.799833] usb 1-4: Detected FT4232H
[ 12.799847] usb 1-4: Number of endpoints 2
[ 12.799857] usb 1-4: Endpoint 1 MaxPacketSize 512
[ 12.799864] usb 1-4: Endpoint 2 MaxPacketSize 512
[ 12.799872] usb 1-4: Setting MaxPacketSize 512
[ 12.808284] usb 1-4: FTDI USB Serial Device converter now attached to ttyUSB2
[ 12.831059] ftdi_sio 1-4:1.3: FTDI USB Serial Device converter detected
[ 12.831502] usb 1-4: Detected FT4232H
[ 12.831513] usb 1-4: Number of endpoints 2
[ 12.831522] usb 1-4: Endpoint 1 MaxPacketSize 512
[ 12.831530] usb 1-4: Endpoint 2 MaxPacketSize 512
[ 12.831537] usb 1-4: Setting MaxPacketSize 512
[ 12.837281] usb 1-4: FTDI USB Serial Device converter now attached to ttyUSB3
[ 12.837394] usbcore: registered new interface driver ftdi_sio
[ 12.837405] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
[ 17.844227] usb 1-3: new high speed USB device using ehci_hcd and address 4
[ 17.977444] usb 1-3: New USB device found, idVendor=0403, idProduct=6011
[ 17.977461] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 17.977472] usb 1-3: Product: Quad RS232-HS
[ 17.977480] usb 1-3: Manufacturer: FTDI
[ 17.980081] usb 1-3: configuration #1 chosen from 1 choice
[ 17.981518] ftdi_sio 1-3:1.0: FTDI USB Serial Device converter detected
[ 17.981759] usb 1-3: Detected FT4232H
[ 17.981767] usb 1-3: Number of endpoints 2
[ 17.981775] usb 1-3: Endpoint 1 MaxPacketSize 512
[ 17.981783] usb 1-3: Endpoint 2 MaxPacketSize 512
[ 17.981791] usb 1-3: Setting MaxPacketSize 512
[ 17.984480] usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB4
[ 17.985194] ftdi_sio 1-3:1.1: FTDI USB Serial Device converter detected
[ 17.985386] usb 1-3: Detected FT4232H
[ 17.985396] usb 1-3: Number of endpoints 2
[ 17.985404] usb 1-3: Endpoint 1 MaxPacketSize 512
[ 17.985411] usb 1-3: Endpoint 2 MaxPacketSize 512
[ 17.985418] usb 1-3: Setting MaxPacketSize 512
[ 17.988802] usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB5
[ 17.989414] ftdi_sio 1-3:1.2: FTDI USB Serial Device converter detected
[ 17.989602] usb 1-3: Detected FT4232H
[ 17.989612] usb 1-3: Number of endpoints 2
[ 17.989620] usb 1-3: Endpoint 1 MaxPacketSize 512
[ 17.989627] usb 1-3: Endpoint 2 MaxPacketSize 512
[ 17.989634] usb 1-3: Setting MaxPacketSize 512
[ 17.990083] usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB6
[ 17.990887] ftdi_sio 1-3:1.3: FTDI USB Serial Device converter detected
[ 17.991075] usb 1-3: Detected FT4232H
[ 17.991084] usb 1-3: Number of endpoints 2
[ 17.991092] usb 1-3: Endpoint 1 MaxPacketSize 512
[ 17.991100] usb 1-3: Endpoint 2 MaxPacketSize 512
[ 17.991107] usb 1-3: Setting MaxPacketSize 512
[ 17.992386] usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB7
Also müssten die Einträge in 91-usb.rules dann so aussehen:
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ID=="1-4:1.0", ATTRS{bInterfaceNumber}=="00", SYMLINK+="quad-1-1"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ID=="1-4:1.1", ATTRS{bInterfaceNumber}=="01", SYMLINK+="quad-1-2"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ID=="1-4:1.2", ATTRS{bInterfaceNumber}=="02", SYMLINK+="quad-1-3"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ID=="1-4:1.3", ATTRS{bInterfaceNumber}=="03", SYMLINK+="quad-1-4"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ID=="1-3:1.0", ATTRS{bInterfaceNumber}=="00", SYMLINK+="quad-2-1"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ID=="1-3:1.1", ATTRS{bInterfaceNumber}=="01", SYMLINK+="quad-2-2"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ID=="1-3:1.2", ATTRS{bInterfaceNumber}=="02", SYMLINK+="quad-2-3"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ID=="1-3:1.3", ATTRS{bInterfaceNumber}=="03", SYMLINK+="quad-2-4"