среда, 6 ноября 2019 г.

Три шага проброса hasp в привелигерованный контейнер lxc ubuntu 16.04

Замечание от 17.02.2022 г. !
Пробрасывается точно, первый раз пробрасывал на lxc, далее много много раз на lxd
(там несколько отличается), к lxc больше не возвращался, не проверял, не было нужды.
Иногда ко мне обращались люди с вопросами про пробросу lxc (proxmox) посмотрел статью свежим взглядом сейчас ниже ничего не менял, возможно нужно указывать
так рекомендует другие:
https://angald.ru/proxmox-probros-usb-v-konejner-lxc/

lxc.cgroup.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/bus/usb/001/004 dev/bus/usb/001/004 none bind,optional,create=file 
lxc.mount.entry: /dev/bus/usb/001/005 dev/bus/usb/001/005 none bind,optional,create=file

Ниже есть ссылка на


---------------------------------------------------------------------------------
 
Три шага проброса hasp в привелигерованный контейнер lxc
Спасибо Сергею Голод !!!

1. На хосте созаем файл (берем с машины где стоят драйвера)
$ /etc/udev/rules.d/80-hasp.rules
# HASP rules
ACTION=="add|change|bind", SUBSYSTEM=="usb", ATTRS{idVendor}=="0529", ATTRS{idProduct}=="0001", MODE="664", ENV{HASP}="1", SYMLINK+="aks/hasp/%k", RUN+="/usr/sbin/aksusbd_x86_64 -c $root/aks/hasp/$kernel"
ACTION=="remove", ENV{HASP}=="1", RUN+="/usr/sbin/aksusbd_x86_64 -r $root/aks/hasp/$kernel"

# SENTINEL rules
ACTION=="add|change|bind", SUBSYSTEM=="usb", ATTRS{idVendor}=="0529", ATTRS{idProduct}=="0003", KERNEL!="hiddev*", MODE="666", GROUP="plugdev", ENV{SENTINELHID}="1", SYMLINK+="aks/sentinelhid/%k"
 

Сохранить.

2. $ sudo reboot
После перезагрузки
появится /dev/aks/

Смотрим:
$ ls -alFhR /dev/aks/


3. Для контейнера hasp

На хосте видим ключи Bus 001
$ lsusb
Bus 001 Device 004: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
 


Для Bus 001 /dev/bus/usb/001

$ sudo nano /var/lib/lxc/hasp/config

Добавить:

lxc.cgroup.devices.allow = c 189:* rwm
lxc.mount.entry = /dev/bus/usb/001 dev/bus/usb/001 none bind,optional,create=dir
lxc.mount.entry = /dev/aks/ dev/aks/ none bind,optional,create=dir



Сохранить.


4. Запускаем контейнер и наслаждаемся работой.
$ sudo lxc-start -n hasp


Палю тему. Секретную! Все работает, но пробрасывать надо не usb. Hasp штука не простая, там требуются правила udev, в контейнере не реально это сделать.
Надо дрова hasp запустить на host машине и пробросить только сокет. В контейнере дрова не ставить, только менеджер лицензий.
И добавить такую строку в конфигурацию контейнера:
lxc.mount.entry: /tmp/.aksusb tmp/.aksusb none bind,optional,create=file
есть косяк, после перезапуска сервиса aksusbd на хосте - надо рестартовать контенер.
есть путь как обойти, это передать всю папку темп от хоста в контейнер, не секюрно но работает.

Комментариев нет:

Отправить комментарий