Доброго времени суток!Есть локальная сеть, к ней подключены компьютеры бухгалтеров, которые сидят в сетевой версии 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
# dmesg | grep parport
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
parport0: irq 7 detected
2) Скрипт запуска:
#!/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
# ls -l /dev/Hardlock
crw-rw-rw- 1 root root 42, 0 Mar 22 08:29 /dev/Hardlock
# lsmod
Module Size Used by Tainted: P
aksparlnx 32904 2
parport_pc 12816 1
parport 19496 1 [aksparlnx parport_pc]
# 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
# 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
# getports
Aladdin driver accesses the following 1 ports:
0378 (0001) - parport port
# lxdrvver
Aladdin driver version is: 1.05
Driver's API version is: 3.81
# 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:
# 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 -- все ок. :(
# 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
# 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