Vorher war die SKY Karte auf ttyUSB0 und HD+ auf ttyUSB1 aber nach Reboot ist es plötzlich genau andersherum
Es gibt 2 Möglichkeiten dieses Problem zu beheben
1. Möglichkeit
Zum auslesen/einlesen der Karte(n) OScam in Verbindung mit dem oscam.server Protokoll smartreader verwenden und das wiederum ermöglicht die eindeutige iSerial des Readers als device anzugeben
( auslesen der iSerial über den Befehl: lsusb -v | grep iSerial )
Code: Alles auswählen
protocol = smartreader
device = Serial:Reader 123
2. Möglichkeit
udev installieren und anhand der iSerial des Readers einen extra Devicenamen anlegen lassen...
Also zunächst die iSerial herrausfinden über den Befehl: lsusb -v | grep iSerial
Das sollte dann ungefähr so aussehen:
Code: Alles auswählen
root@test ~ > lsusb -v | grep iSerial
iSerial 1 0000:00:10.2
iSerial 1 0000:00:10.1
iSerial 3 Reader 123
iSerial 1 0000:00:10.0
iSerial 3 A12345
root@test ~ >
A12345 ist ein Easymouse2
...generel kann man sich merken das da wo eine 3 steht, steckt meistens ein SmartReader dahinter... oder aber über den Befehl lsusb sollten die Reader als ID folgendes haben: 0403:6001
Bei Smargo's kommt es vor das noch eine alte Firmware verwendet wird - eine iSerial wird aber erst mit der Firmware 1.4 (1.04) unterstützt!
Ggf. ist auch FW 1.4 drauf aber trotzdem keine iSerial gesetzt; für den Fall kann man über den IPC Befehl smargo eine iSerial schreiben und zwar mithilfe des Parameters: -n
Also: smargo /dev/ttyUSB0 -n 123
Dann udev installieren:
apt-get install udev
Nun muss man sich entweder ein neues udev rules File anlegen oder ein bereits vorhandenes bearbeiten...
Die udev rule Files liegen in: /etc/udev/rules.d/
Ich hab bei mir dafür ein neues File angelegt: nano /etc/udev/rules.d/91-usb.rules
Dort trägt man nun folgendes ein
Reader 123 ist in diesem Fall die iSerial des jeweiligen Readers, der dann einen neuen Symlink in /dev/ kriegen soll mit dem Namen: KDcardSUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="Reader 123", SYMLINK+="KDcard"
Wenn ihr mehrere Reader habt tragt ihr dadrunter einfach eine weitere Zeile ein sodass die Datei dann ungefähr so aussieht:
Code: Alles auswählen
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="Reader 123", SYMLINK+="KDcard"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{serial}=="A12345", SYMLINK+="SKYcard"
/etc/init.d/udev restart
Wenn alles funktioniert hat müsste es den jeweils gewählten SYMLINK in /dev/ geben also:
ls -la /dev/*card
Code: Alles auswählen
lrwxrwxrwx 1 root root 7 11. Jan 13:48 /dev/KDcard -> ttyUSB0
lrwxrwxrwx 1 root root 7 11. Jan 13:48 /dev/SKYcard -> ttyUSB1
====================================================================================================
...es existiert auch ein inoffizieles Script für udev von mir allerdings gibt es damit glaub ich noch ein paar Probleme; bisher keine Lust gehabt daran weiter zu basteln: i os _udev.sh
====================================================================================================
Argolis Triple
Der Argolis Triple hat leider nur eine iSerial und vergibt für jeden Reader eine eindeutige InterfaceNumber - Diese InterfaceNumber's sind überall identisch: 0 bis 2 (bzw 00 bis 02) nur die iSerial unterscheidet sich natürlich
Also müsste die udev rule etwas anders aussehen damit wir jedem Reader einzeln ein /dev/ port zuweisen können..
Über den Befehl lsusb -v kriegen wir ua. folgende ausgabe und suchen nach iProduct und/oder iSerial
Code: Alles auswählen
Bus 001 Device 002: 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 5.00
iManufacturer 1 Argolis
iProduct 2 Triple Reader+
iSerial 3 00000044
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 19968
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 150mA
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 Triple Reader+
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x4000 1x 0 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 0x4000 1x 0 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 Triple Reader+
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x4000 1x 0 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 0x4000 1x 0 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 Triple Reader+
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x4000 1x 0 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 0x4000 1x 0 bytes
bInterval 0
Device Status: 0x4c00
(Bus Powered)
Code: Alles auswählen
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{interface}=="Triple Reader+", ATTRS{bInterfaceNumber}=="00", SYMLINK+="triple1"
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{interface}=="Triple Reader+", ATTRS{bInterfaceNumber}=="01", SYMLINK+="triple2"
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{interface}=="Triple Reader+", ATTRS{bInterfaceNumber}=="02", SYMLINK+="triple3"
Code: Alles auswählen
SUBSYSTEMS=="usb" ENV{ID_IFACE}="$attr{bInterfaceNumber}"
KERNEL=="ttyUSB*", ATTRS{serial}=="00000044" SYMLINK+="triplereader$env{ID_IFACE}"
Code: Alles auswählen
/dev/triplereader00
/dev/triplereader01
/dev/triplereader02
Oder wenn man mehrere Triple Anschliesen möchte kann man die beiden auch über die iSerial unterscheiden:
Code: Alles auswählen
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{serial}=="00000044", ATTRS{bInterfaceNumber}=="00", SYMLINK+="triple1-1"
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{serial}=="00000044", ATTRS{bInterfaceNumber}=="01", SYMLINK+="triple1-2"
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{serial}=="00000044", ATTRS{bInterfaceNumber}=="02", SYMLINK+="triple1-3"
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{serial}=="00000055", ATTRS{bInterfaceNumber}=="00", SYMLINK+="triple2-1"
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{serial}=="00000055", ATTRS{bInterfaceNumber}=="01", SYMLINK+="triple2-2"
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{serial}=="00000055", ATTRS{bInterfaceNumber}=="02", SYMLINK+="triple2-3"
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:
Code: Alles auswählen
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 <span style="color:#006400">Quad RS232-HS</span>
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 <span style="color:#006400">Quad RS232-HS</span>
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 <span style="color:#006400">Quad RS232-HS</span>
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)
Code: Alles auswählen
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"
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:
Code: Alles auswählen
[ 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
Code: Alles auswählen
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"