обновлено 16.05.13
Немного теории о usb:
“Физическое соединение устройств осуществляется по топологии многоярусной звезды. Центром каждой звезды является хаб, каждый кабельный сегмент соединяет две точки - хаб с другим хабом или с функцией. В системе имеется один (и только один) хост-контроллер, расположенный в вершине пирамиды устройств и хабов. Хост-контроллер интегрируется с корневым хабом (Root Hub), обеспечивающим одну или несколько точек подключения - портов.”
Наша задача выяснить, на какой шине (bus) и к какому порту (port) подключены наши usb-устройства. В качестве примера приведён проброс двух ключей HASP 1С Предприятия 8 (серверный и клиентский)
-
Вставляем usb-устройства;
-
Далее есть два способа выяснения связки шина-порт:
а) В консоли proxmox сервера выполняем “lsusb”. В результате выясним имя устройств и найдём среди них свои:
... Bus 006 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP v0.06 Bus 006 Device 002: ID 0529:0001 Aladdin Knowledge Systems HASP v0.06 Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 002: ID 0557:2221 ATEN International Co., Ltd Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub ...
Искомое: 2 ключа Aladdin Knowledge Systems HASP v0.06 на шине 6
Теперь выясняем, на каких портах “висят” ключи. Выполняем “lsusb -t”, которая нам выдаст древовидную структуру:
... /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M |__ Port 1: Dev 2, If 0, Class=vend., Driver=usbfs, 1.5M |__ Port 2: Dev 3, If 0, Class=vend., Driver=usbfs, 1.5M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M |__ Port 2: Dev 2, If 0, Class=HID, Driver=usbhid, 12M |__ Port 2: Dev 2, If 1, Class=HID, Driver=usbhid, 12M ...
Как видим, устройства (Device) 2 и 3 на шине 6 находятся на портах 1 и 2. Соответственно, пробрасывать будем 6-1 и 6-2.
б) Короткий способ.
Выполняем “qm monitor НОМЕР_ВИРТУАЛЬНОЙ_МАШИНЫ”,
qm>
Теперь выполняем команду “info usbhost”
... Bus 5, Addr 2, Port 2, Speed 12 Mb/s Class 00: USB device 0557:2221, Hermon USB hidmouse Device Bus 6, Addr 2, Port 1, Speed 1.5 Mb/s Vendor Specific: USB device 0529:0001, HASP 2.17 Bus 6, Addr 3, Port 2, Speed 1.5 Mb/s Vendor Specific: USB device 0529:0001, HASP HL 3.25 ...
Вот они наши HASP-ключи, опять же на шине 6 и портах 1 и 2.
Выходим командной quit либо сочетанием Ctrl+C
-
Редактируем на сервере файл /etc(/pve)/qemu-server/NNN.conf (где NNN-номер виртуальной машины) и добавляем следующие строки:
Для версии proxmox < 2.0
args: -device usb-host,hostbus=6,hostport=1 args: -device usb-host,hostbus=6,hostport=2
Для версии proxmox **> 2.0 **
usb0: 6-1 usb1: 6-2
-
Перезагружаем виртуальную машину.
-
Проверить, подцепились ли устройства, можно снова зайдя в qm monitor (как в п. 2б) и выполнив команду “info usb”
... Device 0.1, Port 6, Speed 12 Mb/s, Product QEMU USB Tablet Device 0.1, Port 1, Speed 1.5 Mb/s, Product HASP 2.17 Device 0.2, Port 2, Speed 1.5 Mb/s, Product HASP HL 3.25 ...
P.S. Также usb-устройство можно подключить, добавив в конец NNN.conf такое:
usb0: host=0529:0001
где 0529:0001 - это device ID, взятый из п. 2а
Плюсы: при перемещении usb-устройства в другой порт не надо ничего перенастраивать;
Минусы: этот способ не годится, если у вас несколько устройств с одинаковыми device ID, как в указанном выше примере