Проброс usb в гостевую ОС на ubuntu server KVM

Written by on . Posted in KVM, Linux

Хост машина Ubuntu 14.04.2 LTS
Гостевая машина тоже ubuntu

смотрим на гипервизоре: lsusb

root@v2:/etc/libvirt/qemu# lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 046d:c31c Logitech, Inc. Keyboard K120 for Business
Bus 003 Device 011: ID 0529:0620 Aladdin Knowledge Systems Token JC
Bus 003 Device 010: ID 0529:0620 Aladdin Knowledge Systems Token JC
Bus 003 Device 003: ID 046d:c06d Logitech, Inc. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Необходимо пробросить два ключа eTonek в разные гостевые машины. Создадим два xml фаила. В место vendor id и product id буем использовать Bus и Device

usb1.xml

<hostdev mode='subsystem' type='usb'>
  <source>
    <address bus='3' device='11'/>
  </source>
</hostdev>

для usb2.xml

<hostdev mode='subsystem' type='usb'>
  <source>
    <address bus='3' device='10'/>
  </source>
</hostdev>

Подключаем USB устройство к виртуальной машине

root@linux-kvm:/etc/libvirt/qemu# virsh attach-device virtualka-1 usb1.xml
root@linux-kvm:/etc/libvirt/qemu# virsh attach-device virtualka-2 usb2.xml

или добавить эти строчки в соответствующие виртуалки (xml) используя virsh edit

В заключение хочется добавить.
У данного способа есть пара недостатков. Во-первых, Вы привязываете виртуалку к конкретному физическому серверу, и как тогда делать живую миграции ВМ. Во-торых, количество свободных usb портов на сервере может не хватить.
Поэтому самым правильным вариантом для проброса USB устройств это использовать USB/IP. Данный пакет позволяет передавать устройства usb через локальную сеть. Посмотреть можно в статье «Устанавливаем USB/IP»

Leave a comment