HASP

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

Доброго времени суток! Есть локальная сеть, к ней подключены компьютеры бухгалтеров, которые сидят в сетевой версии 1С 7.7 и подключаются к серверу Windows 2000, где лежат базы, а также подцеплен LPT ключ HASP и запущен NHSRVW32.EXE. Но проблема в том, что скоро вместо W2K там будет стоять FreeBSD. Все нормально, кроме одного: нет драйвера hasp под эту операционную систему. Поэтому было принято решение поставить рядом с сервером бездисковую древнюю машину, где будет запускаться какой-нибудь Live CD с Linux и работать hasplm. Вот что получилось:

Настраиваю floppyfw-2.99.4, добавляю пакет со всем, что связано с hasp. И результат:

1) # uname -a Linux hasplinux 2.4.30-floppyfw-2.99.4 #1 Sat Apr 16 02:01:53 MDT 2005 i686 unknown

  1. dmesg | grep parport

parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE] parport0: irq 7 detected 2) Скрипт запуска:

  1. !/bin/sh

mknod /dev/Hardlock c 42 0 chmod 666 /dev/Hardlock insmod aksparlnx aksusbd hasplm 3) Запускаю, получаю в логах: aksparlnx: EYE/HASP driver v1.05/API v3.81/major 42 loaded (ppi) hasplinux daemon.info aksusbd[370]: loaded, daemon version: 1.5, key API (parallel) version: 3.81(USB access not available) hasplinux daemon.info hasplm[374]: HASP LM v8.08 loaded

  1. ls -l /dev/Hardlock

crw-rw-rw- 1 root root 42, 0 Mar 22 08:29 /dev/Hardlock

  1. lsmod

Module Size Used by Tainted: P aksparlnx 32904 2 parport_pc 12816 1 parport 19496 1 [aksparlnx parport_pc]

  1. ps ax
 PID  Uid     VmSize Stat Command
 370 root        576 S   aksusbd
 371 root        576 S   aksusbd
 372 root        576 S   aksusbd
 374 root        484 S   hasplm
  1. netstat -al

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:475 *:* Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 2078 /tmp/.aksusb

  1. getports

Aladdin driver accesses the following 1 ports:

       0378 (0001) -  parport port
  1. lxdrvver

Aladdin driver version is: 1.05 Driver's API version is: 3.81

  1. ls -l /tmp/.aksusb

srw-rw-rw- 1 root root 0 Mar 22 09:13 /tmp/.aksusb 4) Отключаю сервер W2K от сети и подключаю машину с этим Linux (ip 10.164.28.5), чтобы проверить работу. Запускаю 1С на клиентской машине (ip 10.164.28.66). Вот что видит tcpdump:

  1. tcpdump -vv

tcpdump: listening on eth0 08:46:57.250949 10.164.28.66.2393 > 255.255.255.255.475: udp 165 (ttl 128, id 15047, len 193) 08:46:57.271519 10.164.28.5.475 > 10.164.28.66.2393: udp 62 (DF) (ttl 64, id 0, len 90) 08:46:58.267608 10.164.28.66.2393 > 255.255.255.255.475: udp 165 (ttl 128, id 15049, len 193) 08:46:58.287210 10.164.28.5.475 > 10.164.28.66.2393: udp 62 (DF) (ttl 64, id 0, len 90) 08:46:59.285473 10.164.28.66.2394 > 255.255.255.255.475: udp 165 (ttl 128, id 15051, len 193) 08:46:59.305145 10.164.28.5.475 > 10.164.28.66.2394: udp 62 (DF) (ttl 64, id 0, len 90) 08:47:01.298941 10.164.28.66.2394 > 255.255.255.255.475: udp 165 (ttl 128, id 15054, len 193) 08:47:01.318475 10.164.28.5.475 > 10.164.28.66.2394: udp 62 (DF) (ttl 64, id 0, len 90) 08:47:03.316699 10.164.28.66.2395 > 255.255.255.255.475: udp 165 (ttl 128, id 15056, len 193) 08:47:03.338334 10.164.28.5.475 > 10.164.28.66.2395: udp 62 (DF) (ttl 64, id 0, len 90) 08:47:07.330395 10.164.28.66.2395 > 255.255.255.255.475: udp 165 (ttl 128, id 15058, len 193)

Все, 1С сообщает об отсутствии ключа. Убираю машину с Linux из сети, подключаю Windows 2000 Server -- все ок. :(
  1. haspdemo

HASP API demonstration program implemented for C Copyright (c) 2001, Aladdin Knowledge Systems Ltd. Select which services you want to perform: 1 - HASP4 Std. HASP4 M1 and HASP4 M4 services 2 - HASP4 Time services 3 - HASP4 Net services -> 1 Enter the first HASP password (0 for DEMOMA) : 0 Check for any HASP key : HASP key found. Encoded data is : .Ё6;hъ[T%ґ.­.ЗЎІCmм_№щ«2шбйI..»`q...Ь. Decoded data is : Failed. Error number: -3. Encoded again : Failed. Error number: -3. Get HASP status : Memory size: 0, HASP type: 0, Actual LptNum: 0

 Запустил я aksusbd с -l 3 и увидел в /var/log/messages вот что:

Mar 22 08:59:27 hasplinux daemon.info aksusbd[294]: loaded, daemon version: 1.5, key API (parallel) version: 3.81 (USB access not available) Mar 22 08:59:43 hasplinux daemon.info aksusbd[294]: bad read on local socket Mar 22 08:59:44 hasplinux daemon.info aksusbd[294]: bad read on local socket Mar 22 08:59:45 hasplinux daemon.info aksusbd[294]: bad read on local socket

Это появляется при поиске 1С ключа, а также при запуске haspdemo.
Обновился до aksusbd version 1.8.1 и HASP LM v8.30 -- не помогло. Все та же ошибка "bad read on local socket". Думаю вдруг проблема в floppyfw, поставил специально еще на одну машину Red Hat Linux 9.0, ядро 2.4.20-8. 

Ставлю: aksusbd-redhat-1.5-1.i386.rpm aksparlnx-redhat-1.6-1.i386.rpm hasplm-redhat-8.30-1.i386.rpm Запускаю: parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE] parport0: irq 7 detected aksparlnx: EYE/HASP driver v1.06/API v3.86/major 60 loaded (ppi) aksusbd[4184]: loaded, daemon version: 1.5, key API (USB) version: 3.81, key API (parallel) version: 3.86 hasplm[2465]: HASP LM v8.30 loaded

  1. netstat -npl

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:475 0.0.0.0:* 2132/hasplm Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 2337 2094/aksusbd /tmp/.aksusb

Запускаю 1С -- bad read on local socket. Ни у кого такого не было? А может быть у кого есть рабочая система с ключом? Я бы выслал iso файл с floppyfw, чтобы, если не трудно, загрузиться и проверить.

WBR

http://www.opennet.ru/openforum/vsluhforumID1/65040.html


Для 1С и Компас

В файле NETHASP.INI прописать.

[NH_COMMON]
NH_TCPIP = Enabled ; Используем только IP-протокол

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.10.102 ; IP-адрес (или имя) машины с менеджером лицензий
NH_TCPIP_METHOD = UDP ; UDP для Linux-сервера и TCP для Windows-сервера
NH_USE_BROADCAST = Disabled ; Отключить поиск ключа по всей сети