Чат

🕑 ↗
За да пишеш, трябва да си влязъл в профила си.

OSCAM и два рийдъра

Започната от Танннер, 01-12-2019, 22:38

« назад - напред »

0 Потребители и 1 гост преглеждат тази тема.

Танннер

Привет имам следният случай имам OSCAM Server над Raspberry PI3, той рънва чист распбиан, имам два еднакви рийдъра
TBS3102 5 Crystal Phoenix Card Reade, на тях съответно две карти.

Рийдър А с карта А1 и рийдър Б с карта Б1.

При рестарт на цялото PI3:
в оскама Рийдър А вижда entitlements на карта Б1

И се чупи.

Трябва да изключа рийдър Б и да рестартирам.
Всичко се орпавя, закачам рийдър Б и всичко бачка до първият рестарт.


Идеи?

митака31

Би трябвало да можеш да използваш udev правилата и по ATTRS{serial} да можеш да направиш SYMLINK+ /име по избор/ за всеки рийдър. Така при рестарт независимо в кое USB е включен рийдъра няма да става грешка.

Танннер

Цитат на: митака31;520792Би трябвало да можеш да използваш udev правилата и по ATTRS{serial} да можеш да направиш SYMLINK+ /име по избор/ за всеки рийдър. Така при рестарт независимо в кое USB е включен рийдъра няма да става грешка.

Благодаря ти, може ли пример?

митака31

#3
Това е за Убунту. При теб трябва да е нещо подобно.
Включваш рийдърите един по един. После изпълняваш от конзолата:
udevadm info -n /dev/ttyUSB0 -a - това показва информация за ATTRS{serial}. Тя се копира и се поставя във /etc/udev/rules.d, където се създава файл
10-usbadapter.rules, в който се поставя
SUBSYSTEMS=="usb", KERNEL=="ttyUSB?", ATTRS{serial}=="A400gqfs", SYMLINK+="име на рийдъра по избор"

Където е ttyUSB? заместваш въпроса с номера на USB-то, на което е закачен рийдъра. "A400gqfs" заместваш с твоя ATTRS{serial}, който си копирал от инфото от първата команда. В oscam.server заместваш
device = /dev/ttyUSB0 с
device = /dev/име на рийдъра по избор

После включваш и втория рийдър и добавяш аналогично втори ред в 10-usbadapter.rules за втория рийдър.

Танннер

Цитат на: митака31;520795Това е за Убунту. При теб трябва да е нещо подобно.
Включваш рийдърите един по един. После изпълняваш от конзолата:
udevadm info -n /dev/ttyUSB0 -a - това показва информация за ATTRS{serial}. Тя се копира и се поставя във /etc/udev/rules.d, където се създава файл
10-usbadapter.rules, в който се поставя
SUBSYSTEMS=="usb", KERNEL=="ttyUSB?", ATTRS{serial}=="A400gqfs", SYMLINK+="име на рийдъра по избор"

Където е ttyUSB? заместваш въпроса с номера на USB-то, на което е закачен рийдъра. "A400gqfs" заместваш с твоя ATTRS{serial}, който си копирал от инфото от първата команда. В oscam.server заместваш
device = /dev/ttyUSB0 с
device = /dev/име на рийдъра по избор

После включваш и втория рийдър и добавяш аналогично втори ред в 10-usbadapter.rules за втория рийдър.

Благодаря ти, ще пробвам.

dzumba

8 pcsc ридъра без серийни номера от един и същи модел и подреждане по портовете,без разместване при рестарт!
За феникс програматори,няма проблем,но тук -греда!Някой сблъсквал ли се е с този проблем? Потърсих готови решения,има ги,но не работят!Дават се насоки,без да са тествани,ще бъда благодарен,ако някой по на ти с линукса има виждане!

oldgraf

Не знам какъв лек си ползвал. С udevadm пробвай да намериш различните ID-та и после тях ги опиши, например ID=="1-4.2:1.0", ID=="1-4.3:1.0". 1-4 си се сменя спрямо буса при теб

dzumba

#7
Всичко е еднакво с изключение на  KERNEL=="2-2:1.0"  KERNEL=="4-1:1.0"примерно,но зададено в Udev ,не работи!
Атрибутите ги извадих с
udevadm info --attribute-walk --path=/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0

Опитвам нещо такова,примерно за два ридъра
SUBSYSTEMS=="usb", KERNEL=="2-2:1.0", SYMLINK+="alabala"
SUBSYSTEMS=="usb", KERNEL=="4-1:1.0", SYMLINK+="blabla"

oldgraf

Нямам идея защо, ако са верни данните.
Правилно ли си именувал правилото?
Пробвай с udevadm monitor докато го мушкаш, може да ти светне друга идея

imperia

нямам подобно устройство за да пробвам да ти кажа, но опитай:

udevadm info --query=all --name=/dev/<device_name>

гледаш за
E: ID_PATH=pci-0000:00:14.0-usb-0:4:1.0
ID_PATH  трябва да е различно за всяко отделно USB

после:
sudo nano /etc/udev/rules.d/99-usb-ports.rules

SUBSYSTEM=="tty", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", ENV{ID_PATH}=="pci-0000:00:14.0-usb-0:4:1.0", SYMLINK+="custom_usb"

sudo udevadm control --reload-rules
sudo udevadm trigger


с това би трябвало да можеш да виждаш какви event-ти се случват когато вкарваш различните USB устройства:

udevadm monitor --environment --udev

успех

dzumba

Благодаря,но точно тези ридъри нямат ID_PATH
UDEV  [11484.476691] add      /devices/pci0000:00/0000:00:1d.2/usb4/4-2 (usb)
ACTION=add
BUSNUM=004
DEVNAME=/dev/bus/usb/004/011
DEVNUM=011
DEVPATH=/devices/pci0000:00/0000:00:1d.2/usb4/4-2
DEVTYPE=usb_device
ID_BUS=usb
ID_MODEL=CCID_USB_Reader
ID_MODEL_ENC=CCID\x20USB\x20Reader
ID_MODEL_FROM_DATABASE=ACR38 SmartCard Reader
ID_MODEL_ID=90cc
ID_REVISION=0100
ID_SERIAL=ACS_CCID_USB_Reader
ID_USB_INTERFACES=:0b0000:
ID_VENDOR=ACS
ID_VENDOR_ENC=ACS
ID_VENDOR_FROM_DATABASE=Advanced Card Systems, Ltd
ID_VENDOR_ID=072f
MAJOR=189
MINOR=394
PRODUCT=72f/90cc/100
SEQNUM=1733
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=484469691


Мога да го нагодя с

DEVPATH=/devices/pci0000:00/0000:00:1d.2/usb4/4-2
но не знам, дали ще се получи

imperia

Опитай.

Пусни последната команда и ги сменяй по слотовете и виж дали ще седи едно и също някое от тия:
0000:00:1d.2/usb4/4-2

ПС. Тоест дали се променя и съответства на слота.

dzumba

Стои си едно и също,няма как да се промени!100 пъти минах оттам!

imperia

при мен се сменя


root@lenovo777:~# udevadm info --query=all --name=/dev/sdd | grep DEVPATH
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb4/4-1/4-1:1.0/host7/target7:0:0/7:0:0:0/block/sdd
root@lenovo777:~# udevadm info --query=all --name=/dev/sdd | grep DEVPATH
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host7/target7:0:0/7:0:0:0/block/sdd
root@lenovo777:~# udevadm info --query=all --name=/dev/sdd | grep DEVPATH
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.0/host7/target7:0:0/7:0:0:0/block/sdd
root@lenovo777:~#


при мен се сменя като го местя по USB портовете
отделно има и ID_PATH:


P: /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.0/host7/target7:0:0/7:0:0:0/block/sdd
M: sdd
J: b8:48
U: block
T: disk
D: b 8:48
N: sdd
L: 0
S: disk/by-path/pci-0000:00:14.0-usbv2-0:3:1.0-scsi-0:0:0:0
S: disk/by-path/pci-0000:00:14.0-usb-0:3:1.0-scsi-0:0:0:0
S: disk/by-diskseq/8
S: disk/by-id/usb-Kingston_DT_Elite_G2_646E6999356EE42052F4C8D9-0:0
Q: 8
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.0/host7/target7:0:0/7:0:0:0/block/sdd
E: DEVNAME=/dev/sdd
E: DEVTYPE=disk
E: DISKSEQ=8
E: MAJOR=8
E: MINOR=48
E: SUBSYSTEM=block
E: USEC_INITIALIZED=1192777383
E: ID_BUS=usb
E: ID_MODEL=DT_Elite_G2
E: ID_MODEL_ENC=DT\x20Elite\x20G2\x20\x20\x20\x20\x20
E: ID_MODEL_ID=16d5
E: ID_SERIAL=Kingston_DT_Elite_G2_646E6999356EE42052F4C8D9-0:0
E: ID_SERIAL_SHORT=646E6999356EE42052F4C8D9
E: ID_VENDOR=Kingston
E: ID_VENDOR_ENC=Kingston
E: ID_VENDOR_ID=0951
E: ID_REVISION=PMAP
E: ID_TYPE=disk
E: ID_INSTANCE=0:0
E: ID_USB_MODEL=DT_Elite_G2
E: ID_USB_MODEL_ENC=DT\x20Elite\x20G2\x20\x20\x20\x20\x20
E: ID_USB_MODEL_ID=16d5
E: ID_USB_SERIAL=Kingston_DT_Elite_G2_646E6999356EE42052F4C8D9-0:0
E: ID_USB_SERIAL_SHORT=646E6999356EE42052F4C8D9
E: ID_USB_VENDOR=Kingston
E: ID_USB_VENDOR_ENC=Kingston
E: ID_USB_VENDOR_ID=0951
E: ID_USB_REVISION=PMAP
E: ID_USB_TYPE=disk
E: ID_USB_INSTANCE=0:0
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usb-storage
E: ID_PATH_WITH_USB_REVISION=pci-0000:00:14.0-usbv2-0:3:1.0-scsi-0:0:0:0
E: ID_PATH=pci-0000:00:14.0-usb-0:3:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_3_1_0-scsi-0_0_0_0
E: ID_PART_TABLE_UUID=246b8305
E: ID_PART_TABLE_TYPE=dos
E: DEVLINKS=/dev/disk/by-path/pci-0000:00:14.0-usbv2-0:3:1.0-scsi-0:0:0:0 /dev/disk/by-path/pci-0000:00:14.0-usb-0:3:1.0-scsi-0:0:0:0 /dev/disk/by-diskseq/8 /dev/disk/by-id/usb-Kingston_DT_Elite_G2_646E6999356EE42052F4C8D9-0:0
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:


Ти на компютър ли ги закачваш тия reader-и и с кой kernel си?
Отделно предполагам си на USB hub?

dzumba

Като ги сменям по портовете,естествено се сменя номера! Но точно тези ,нямат ID_PATH,слагам феникс или смарго и веднага се появява ID_PATH!
Няма значение  кой е кернела,хъб не ползвам,само 8-те порта на PC-то.
Но има и друг проблем ,имам pcsc ридъри със серийни номера ,но и там не се получава със SYMLINK+,първо да тръгне с тях и после ще го мисля с другите,иначе със смарго и феникс правилата се спазват,явно синтаксиса за описване ще е различен!
Не ,че ми е нещо зор ,за подкарване на тази комбинация,но като се запъне,ти е тръпка,да го пребориш!Има решение,да ги подредиш по портовете и да не ги променяш,виждаш как ги е подредило PC-то, при стартиране от 0 до 7 ,слагаш им по една лепенка със съответния номер и няма грижи,докато не извадиш някой,другите се разбъркват,след неговия номер!
При тях имаме на дивайс някаква цифра, а при феникс и смарго /dev/ttyUSB?,името от симлинка включва и /dev/

SatShop.bg
Ъплоуд център DishPointer Сателитни изстрелвания