Рассматривается ОС Debian. В качестве драйверов берется достаточно популярный пакет от компании Etersoft. Взять скомпилированный пакет для своего дистрибутива можно на FTP сервере компании: ftp.etersoft.ru/pub/Etersoft/HASP/stable. После установки пакета появляется служба haspd, которая и управляет работой ключа.
Настройка и проверка
Какой-то дополнительной настройки все это не требует. Ключ начинает работать практически из коробки. Проверяем. Для проверки работоспособности в комплекте имеется программа haspdemo. При успешной идентификации ключа и начала работы, программа выведет что-то подобное в консоль:
1 2 |
This is a simple demo program for the HASP4 key Copyright © Aladdin Knowledge Systems Ltd. |
Главное поле: LOCALHASP_ISHASP : Result: 1. Сообщающее, что все впорядке. Далее написано и про то, какой ключ вставлен.
Однако если есть какая-то проблема, то сообщение выводится покороче:
1 2 3 4 |
This is a simple demo program for the HASP4 key Copyright © Aladdin Knowledge Systems Ltd. LOCALHASP_ISHASP: Failed: status = -100 |
При том по сути все равно что происходит с ключом, он может быть не вставлен, служба может быть не запущена или еще что-то. Я пока видел только два значения LOCALHASP_ISHASP. Это либо : Result: 1, либо : Failed: status = -100. И последнее всегда соответствовало неработоспособности, а первое всегда означало, что все ОК.
Отваливаются ключи Есть такая, достаточно распространенная проблема. Ключи отваливаются. При том никакой особенной связи замечено не было. Это происходит на разные контроллерах, даже на разных хостовых системах. При запросе haspdemo, появляется строка LOCALHASP_ISHASP : Failed: status = -100. Хотя ключ вставлен и обнаруживается. dmseg показывает не до конца понятные строки: usb 2-2.1: usbfs: USBDEVFS_CONTROL failed cmd aksusbd rqt 192 rq 139 len 8 ret -110 Решается проблема также тривиально, как и выглядит — рестартом сервиса. скрипт, который запускает haspdemo и пытается понять, нормальный ли статус возвращается или нет:
1 2 |
<span style="font-size: 8pt;">[ "`haspdemo | sed -n 's/^LOCALHASP_ISHASP.* \(\-\?[0-9]*\)$/\1/p'`" == "-100" ] && service haspd restart </span> |
Далее этот скрипт вставляется в запуск по CRON каждую минуту и все.