Архив рубрики: Программирование под Linux

Операции с ACS-ключами для ридера бесконтактных карт RD-03AB

ACS-ключ (ключ доступа) представляет собой запись длиной 8 байт, идентифицирующую UID карты. Запись состоит из байта длины UID и 7ми байт UID. Возможны следующие длины UID: 4 байта, 7 байт и, теоретически, 10 байт (предусмотрено стандартом, но в реальных картах такой UID не встречается). Если длина UID недостаточна для заполнения записи ACS-ключа (4 байта), запись дополняется нулями. Если длина UID превышает длину ACS-ключа (10 байт), последние байты UID отбрасываются. ACS-ключ, у которого все байты равны 0xFF, считается пустым (нет записи о ключе, ключ удалён).

rd03ab_acsk

Читать далее Операции с ACS-ключами для ридера бесконтактных карт RD-03AB

Ридер бесконтактных карт RD-03AB и libusb-1.0

Опыт использования ридеров RD-03AB в embedded системах (например, OpenWrt) показал, что погоня создателей системы за обновлениями ядра до добра не доводит: видимо, при каждом новом обновлении ядра приходится клепать такое адское количество патчей, чтобы система показывала признаки жизни, что руки до драйверов у людей просто не доходят. Именно по этой причине драйвер hidraw в последних OpenWrt работает через пень-колоду, если вообще соизволит запуститься, хотя с работой ридеров под linux на PC никаких проблем нет 🙂

В связи с этим положением дел, для ридеров RD-03AB появилась новая ветка API V1.5, работающая с USB через функции библиотеки libusb-1.0. Теперь для работы с ридером доступны 3 версии API: для Windows через функции HID-устройств, для linux через системный драйвер hidraw и новая ветка для linux через функции библиотеки libusb-1.0. Функции libusb устойчиво работают на embedded системах даже тогда, когда hidraw полностью неработоспособен.

Читать далее Ридер бесконтактных карт RD-03AB и libusb-1.0

Ридер бесконтактных карт RD-03AB и Linux

Ридер RD-03AB под Linux работает ещё лучше, чем под Windows 🙂 Разумеется, речь идёт про скорость обмена через USB HID интерфейс: в лине нет ограничения трафика USB HID устройств, по крайней мере такого ограничения нет в Ubuntu-клонах и OpenWrt. При работе через tty-устройства, ридер под Linux и Windows ведёт себя одинаково.

Linux обслуживает ридер RD-03AB как hidraw - устройство

Linux создал устройство hidraw4 для ридера RD-03AB

Скачать исходники софта можно здесь. Ридер не требует дополнительной установки каких-либо драйверов: система подхватывает его как hidraw-устройство. Однако, если ридер инсталлирован в многопользовательскую систему, система даст доступ к нему только root-у. Если нет желания запускать весь софт ридера через sudo, то следует добавить правило создания драйвера, в котором указывается разрешение использовать устройство всем пользователям: для этого следует скопировать из каталога INSTALL файл 90-ccr_rd0xab.rules в каталог /etc/udev/rules.d ,  перезапустить udev с помощью /etc/init.d/udev restart и переподключить ридер (если он уже был подключен).
В системе OpenWrt перед сборкой проекта следует проверить установки buildroot (команда make menuconfig, далее Kernel modules > USB Support > kmod-usb-hid).

Читать далее Ридер бесконтактных карт RD-03AB и Linux

Построение сетевого окружения «чужих» сетей

Одна из интересных проблем, которые возникают при построении как домашних, так и корпоративных сетей разбитых на подсети — это построение сетевого окружения. В корпоративных сетях сделать сетевое окружение проще благодаря тому, что все подсети сходятся на одном сервере-рутере, который и выдаёт сетевое окружение.

Всё намного сложнее в домашних сетях: здесь многое определяется застройкой и часто нет возможности разродится звездообразной конфигурацией. Вот и ходят пользователи к друг другу через всякие сканы, NetView-веры — а что делать. Также часто невозможно всё сделать правильно из-за разнородности материального положения сетей: одна сеть разжилась сервером с DHCP, WINS, обозревателем на самбе, а в другой сети живут вообще без серверов, или, например, нет человека, хоть немного разбирающегося в сетевой «механике»: помогать такой сети никто не собирается — чай не райсобес, но соединиться «по-правильному» хотелось бы. Что делать?

Читать далее Построение сетевого окружения «чужих» сетей