Wer mehr als ein Smargo oder FTDI Reader am Debian System betreibt, kennt wahrscheinlich das Problem, dass nach einem Reboot die Anordnung bzw. die eingetragene Zuweisung einzelner Reader nicht mehr übereinstimmt. Mit udev kann man die Reader (Smargos ab Software Version 1.5) anhand der Seriennumer zu einem festen Pfad verlinken.
Zunächst muss die Seriennummer des Smargos festgestellt werden.
Dazu jeweils ein Smargo einstecken und smargolist eingeben.
Die Ausgabe sieht dann etwa so aus:
Looking for smartreader with an out endpoint = 0x82 :
bus 002, device 008 : 0403:6001 Smartreader (Device=002:008 EndPoint=0x82 insert in oscam.server 'Device = Serial:Reader 7F049A6')
In diesem Fall hat der Smargo die Seriennummer: Reader 7F049A6
Als nächstes legen wir nun die udev-Regel fest: nano /etc/udev/rules.d/52-smargo-reader.rules
ATTRS serial anpassen!
SYMLINK, in diesem Beispiel "Reader1", kann beliebiger Name sein.
Schliessen und speichern. [Strg]+[x], dann [y] und [ENTER]
Nach einem Reboot kann dieser Smargo nun mit /dev/Reader1 statt /dev/ttyUSB* angesprochen werden.
Beispiel CCcam:
SERIAL READER : /dev/Reader1
Beispiel OScam:
device = /dev/Reader1
WICHTIG: Nach jedem Software-Update des Smargos ändert sich die Seriennummer!
Mann muss dazu sagen, das die Onlinehilfe hier im Board nicht überall auf dem aktuellen IPC Stand ist.
Für Easymouses/Apollo gibt's mittlerweile nen eigenen Teil:
Wer mehr als ein Reader am Debian System betreibt, kennt wahrscheinlich das Problem,
dass nach einem Reboot die Anordnung bzw. die eingetragene Zuweisung einzelner Reader nicht mehr übereinstimmt.
Mit udev kann man die Reader anhand der Seriennumer zu einem festen Pfad verlinken.
Zunächst muss die Seriennummer des Readers festgestellt werden.
Dazu den Reader einstecken und udevadm info -n /dev/ttyUSB0 -a eingeben.
Die Ausgabe sieht dann etwa so aus:
Code:
root@IGEL / > udevadm info -n /dev/ttyUSB0 -a
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
'looking at device '/devices/pci0000:00/0000:00:10.2/usb4/4-1/4-1:1.0/ttyUSB0/tty/ttyUSB0':"'
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:10.2/usb4/4-1/4-1:1.0/ttyUSB0':
KERNELS=="ttyUSB0"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ftdi_sio"
ATTRS{latency_timer}=="1"
ATTRS{port_number}=="0"
looking at parent device '/devices/pci0000:00/0000:00:10.2/usb4/4-1/4-1:1.0':
KERNELS=="4-1:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="ftdi_sio"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bNumEndpoints}=="02"
ATTRS{bInterfaceClass}=="ff"
ATTRS{bInterfaceSubClass}=="ff"
ATTRS{bInterfaceProtocol}=="ff"
ATTRS{modalias}=="usb:v0403p6001d0600dc00dsc00dp00icFFiscFFipFF"
ATTRS{supports_autosuspend}=="0"
ATTRS{interface}=="Reader1"
looking at parent device '/devices/pci0000:00/0000:00:10.2/usb4/4-1':
KERNELS=="4-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="a0"
ATTRS{bMaxPower}==" 90mA"
ATTRS{urbnum}=="20445085"
ATTRS{idVendor}=="0403"
ATTRS{idProduct}=="6001"
ATTRS{bcdDevice}=="0600"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{speed}=="12"
ATTRS{busnum}=="4"
ATTRS{devnum}=="5"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="0"
ATTRS{quirks}=="0x0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="FTDI"
ATTRS{product}=="Reader1"
ATTRS{serial}=="CRVNRBVI"
looking at parent device '/devices/pci0000:00/0000:00:10.2/usb4':
KERNELS=="usb4"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPower}==" 0mA"
ATTRS{urbnum}=="165"
ATTRS{idVendor}=="1d6b"
ATTRS{idProduct}=="0001"
ATTRS{bcdDevice}=="0206"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{speed}=="12"
ATTRS{busnum}=="4"
ATTRS{devnum}=="1"
ATTRS{version}==" 1.10"
ATTRS{maxchild}=="2"
ATTRS{quirks}=="0x0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Linux 2.6.32-5-686 uhci_hcd"
ATTRS{product}=="UHCI Host Controller"
ATTRS{serial}=="0000:00:10.2"
ATTRS{authorized_default}=="1"
looking at parent device '/devices/pci0000:00/0000:00:10.2':
KERNELS=="0000:00:10.2"
SUBSYSTEMS=="pci"
DRIVERS=="uhci_hcd"
ATTRS{vendor}=="0x1106"
ATTRS{device}=="0x3038"
ATTRS{subsystem_vendor}=="0x1106"
ATTRS{subsystem_device}=="0x3038"
ATTRS{class}=="0x0c0300"
ATTRS{irq}=="11"
ATTRS{local_cpus}=="ffffffff"
ATTRS{local_cpulist}=="0-31"
ATTRS{modalias}=="pci:v00001106d00003038sv00001106sd00003038bc0Csc03i00"
ATTRS{enable}=="1"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}==""
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
Hier sucht bitte die Zeile ATTRS{serial}
In diesem Fall hat der Reader die Seriennummer: CRVNRBVI
Als nächstes legen wir nun die udev-Regel fest: nano /etc/udev/rules.d/40-usbadapter.rules
mit folgendem Inhalt: SUBSYSTEMS=="usb", KERNEL=="ttyUSB?", ATTRS{serial}=="CRVNRBVI", SYMLINK+="Apollo" •KERNEL=="ttyUSB?" ist für 1-10 Reader, •KERNEL=="ttyUSB?*" braucht man nur bei mehr als 10 Readern
ATTRS{serial} anpassen!
SYMLINK, in diesem Beispiel "Apollo", kann beliebiger Name sein.
Schliessen und speichern. [Strg]+[x], dann [j] und [ENTER]
Nach Abziehen des Readers und erneutem Anstecken, kann dieser Reader nun mit /dev/Apollo statt /dev/ttyUSB* angesprochen werden.
Beispiel CCcam:
SERIAL READER : /dev/Apollo
Beispiel OScam:
device = /dev/Apollo
Noch eines zum Schluss: Warum gerade 40-usbadapter.rules?
Weil die Rules mit einer niedrigeren Nummer nicht von allen Distributionen (z.B. Ubuntu 12.04) korrekt umgesetzt werden.
Zudem kann man die UDEV-Rules mittlerweile auch über das WebIf von IPC anlegen lassen.
muss mal den Uralt Threat wieder ausgraben.
Richte mir grad den PI 3 als Server ein,bis dato lief ein Igel Thin.
Kann ich den Inhalt von rules.de des Igel einfach in den gleichen Ordner des PI 3 kopieren oder muss ich es da neu anlegen??