Bug 513

Summary: Не загружается драйвер HASP USB - aksusbd из-за отключения CONFIG_USB_DEVICEFS
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: ОбщееAssignee: Vitaly Lipatov <lav>
Status: CLOSED FIXED QA Contact: Danil Michailov <danil>
Severity: critical    
Priority: P2 CC: aurimas, egor.y.egorov, night
Version: 1.0.10   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 468, 5032    
Deadline: 2010-04-10   

Description Vitaly Lipatov 2007-03-20 13:13:10 MSK
Не загружается драйвер HASP USB - aksusbd на openSUSE 10.2

Это связано с тем, что они отключили CONFIG_USB_DEVICEFS в ядре и usbfs смонтировать в /proc/bus/usb/ стало невозможно.

Решение: установить новое(другое) ядро, в котором включена поддержка /proc/bus/usb.

Бага в Novell:
https://bugzilla.novell.com/show_bug.cgi?id=210899
Comment 1 Vitaly Lipatov 2007-03-20 13:18:46 MSK
В новой сборке haspd (eter4) добавлены комментарии, чтобы проблему было проще диагностировать.
Comment 2 Vitaly Lipatov 2007-10-09 21:11:00 MSD
Проблема не актуальна.
Comment 3 Vitaly Lipatov 2009-07-13 20:27:25 MSD
Нужно решить эту задачу в контексте работы через /dev/bus/usb вместо /proc/bus/usb.
Первые шаги: я заменял в коде /proc/bus/usb на /dev//bus/usb
и копировал файл devices. Толку не было.

/proc устаревает, а иногда его вообще нет.

Альтернативой является использование виндовс-менеджера лицензий через wine.
Возможно это более правильный путь?
Comment 4 Vitaly Lipatov 2009-07-26 18:20:18 MSD
Проблемы следующие:
a) aksusbd существует только в виде бинарной сборки под 32-битную платформу
б) aksusbd использует /proc/bus/usb/devices
в) aksusbd нужен для hasplm
http://lists.altlinux.org/pipermail/sysadmins/2007-December/012917.html

Возможно нам придётся менеджер лицензий запускать через wine? Запаковать в обвязку и запускать? И это будет проще, чем разбираться с вечно устаревающими линуксовыми драйверами.
Comment 5 Александр Морозов 2009-07-27 10:58:39 MSD
Неизвестно, можно ли работать с LPT HASP без haspd. Сейчас с такими ключами работают через haspd.
Comment 6 Vitaly Lipatov 2009-11-21 20:41:25 MSK
Актуальности переделывать самим aksusbd под новые условия нет.
Если что и делать, так это обращаться в Aladdin.
Comment 7 Aurimas 2010-03-05 19:57:01 MSK
Hasp USB ключа тоже не работает в Ubuntu 9.10 и 10.04 Ubuntu. (https://bugs.edge.launchpad.net/ubuntu/+source/linux/+bug/488274)
Comment 8 Vitaly Lipatov 2010-03-15 12:02:52 MSK
Проблема поднимается и с Ubuntu:
https://bugs.edge.launchpad.net/ubuntu/+source/linux/+bug/488274
Comment 9 Vitaly Lipatov 2010-03-15 19:04:24 MSK
(In reply to comment #7)
> Hasp USB ключа тоже не работает в Ubuntu 9.10 и 10.04
> Ubuntu. (https://bugs.edge.launchpad.net/ubuntu/+source/linux/+bug/488274)
Будем решать. 

Comment 10 Vitaly Lipatov 2010-03-17 19:54:22 MSK
Ждём нового пакета драйверов.
Comment 11 Vitaly Lipatov 2010-03-18 21:14:41 MSK
Надо тестировать на присланной 18.03.2010 бете
Comment 12 Vitaly Lipatov 2010-03-18 21:35:28 MSK
Новый пакет aksusbd 1.15
Я увидел в aksusbd прежний текст:
/proc/bus/usb/de
vices_please-use
-sysfs-instead
Кроме даты компиляции (внутри), файл ничем не отличается.
Comment 13 Vitaly Lipatov 2010-04-06 14:56:37 MSD
На
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/488274
приведён работающий рецепт:

mount --bind /dev/bus /proc/bus
ln -s /sys/kernel/debug/usb/devices /proc/bus/usb/devices

Сейчас попробую реализовать в более универсальном виде.
Comment 14 Vitaly Lipatov 2010-04-06 19:17:34 MSD
Опубликована сборка haspd-3.2, где проблема обойдена.
Comment 15 Andrey Vusik 2010-04-06 20:15:21 MSD
Принято
Comment 16 Егоров Егор 2012-07-12 08:57:53 MSK
В linux-3.5_rc6 отсутствует CONFIG_USB_DEVICEFS, помеченный в 3.4 как DEPRECATED.
Вот что написано в справке по этому пункту в 3.4:

Modern Linux systems do not use this.
Usbfs entries are files and not character devices; usbfs can't
handle Access Control Lists (ACL) which are the default way to
grant access to USB devices for untrusted users of a desktop
system.

The usbfs functionality is replaced by real device-nodes managed by                    
udev.  These nodes lived in /dev/bus/usb and are used by libusb.

В связи с этим aksusbd снова не может определить подключенные usb-ключи.
Проверял на git-версии.
Comment 17 Vitaly Lipatov 2012-08-12 22:53:19 MSK
Пришлите, пожалуйста, вывод
# sh -x /etc/init.d/haspd start
Comment 18 Егоров Егор 2012-08-13 06:11:34 MSK
Я разобрался. Удалось на Gentoo наладить работу на ядре 3.5. Пришлось подправить правило для udev:


# Aladdin HASP udev rules
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0529", ATTRS{idProduct}=="0001", MODE="664", ENV{HASP}="1", SYMLINK+="aks/hasp/%n", RUN+="/usr/sbin/aksusbd -c $root/aks/hasp/$number"
ACTION=="remove", ENV{HASP}=="1", RUN+="/usr/sbin/aksusbd -r $root/aks/hasp/$number"

Подробнее тут:
http://code.google.com/p/rion-overlay/source/browse/#hg%2Fsys-apps%2Fhasp
Comment 19 Vitaly Lipatov 2012-09-17 18:06:45 MSK
Выяснилось, что workaround для /proc/bus/usb (не уверен, что он нужен при правильно правиле для udev - но нет информации о параметрах -r и -c для aksusbd) может не хватать смонтированности debugfs (в /sys/kernel/debug).

Обе проблемы исправлены в 3.3-alt4:
* Mon Sep 17 2012 Vitaly Lipatov <lav@altlinux.ru> 3.3-alt4
- add mount debugfs to /sys/kernel/debug if needed (eterbug #513)
- update rules to new udev (SYSFS->ATTRS) (see eterbug #513)