Kvm с usb портами windows

Содержание
  1. Kvm с usb портами windows
  2. Проброс USB устройства внутрь гостевой OS, используя KVM
  3. Находим, на какой шине находится устройство USB:
  4. Создаем конфиг для устройства, следующего плана (с учетом данных, полученных ранее):
  5. Подключаем к VPS:
  6. Проброс USB в виртуалку по сети средствами UsbRedir и QEMU
  7. Для начала несколько слов о вышеперчисленных решениях
  8. Настройка виртуальной машины
  9. Запуск сервера
  10. Подключение устройства к виртуальной машине
  11. Через опции при запуске ВМ
  12. Или через qemu-monitor
  13. Если устройств много и все они одинаковые
  14. И так приступим
  15. unixforum.org
  16. USB в виртуальной машине KVM
  17. USB в виртуальной машине KVM
  18. Re: USB в виртуальной машине KVM
  19. Re: USB в виртуальной машине KVM
  20. Re: USB в виртуальной машине KVM
  21. Re: USB в виртуальной машине KVM
  22. Re: USB в виртуальной машине KVM
  23. Re: USB в виртуальной машине KVM
  24. Re: USB в виртуальной машине KVM
  25. Re: USB в виртуальной машине KVM
  26. Re: USB в виртуальной машине KVM
  27. Re: USB в виртуальной машине KVM
  28. Re: USB в виртуальной машине KVM
  29. Re: USB в виртуальной машине KVM
  30. Re: USB в виртуальной машине KVM
  31. Re: USB в виртуальной машине KVM
  32. Re: USB в виртуальной машине KVM
  33. Re: USB в виртуальной машине KVM

Kvm с usb портами windows

DirectAdminэто удобная панель управления хостингом. Легкость в настройке, легкость в использовании!
ДиректАдминсамая быстрая и нересурсоемкая панель из всех существующих коммерческих панелей управления для хостинга. Бесплатные и регулярные обновления версии панели DirectAdmin на протяжении всего времени ее использования заметно выделяют ее среди других.

Проброс USB устройства внутрь гостевой OS, используя KVM

Появилась задача пробросить USB флешку в гостевую FreeBSD. На сервере используется виртуализация KVM.

После поисков и чтения устаревших постов на форумах, решение таки было найдено в официальной документации по libvirt. Отсюда вывод, начинать надо именно с нее.

USB and PCI devices attached to the host can be passed through to the guest using the hostdev element. since after 0.4.4 for USB and 0.6.0 for PCI (KVM only)

Находим, на какой шине находится устройство USB:

# lsusb
Bus 007 Device 002: ID 058f:6387 Alcor Micro Corp. Transcend JetFlash Flash Drive
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Создаем конфиг для устройства, следующего плана (с учетом данных, полученных ранее):

Подключаем к VPS:

В нашем случае примерно так:

# virsh attach-device vm300 usb.device.xml

Где vm300 — это имя VM (VPS) или домен, как принято называть. А usb.device.xml — это конфиг в формате XML с данными USB устройства.

Читайте также:  Asus windows системный блок

Таким образом устройство сразу же должно стать доступным внутри гостевой OS. Чтобы закрепить данные, т.е. обновить XML конфиг самой виртуальной машины, делаем:

# virsh dumpxml > /full/path/to/ .xml
# virsh define

Что для нашего пример выглядит так:

# virsh dumpxml vm300 > vm300.xml
# virsh define vm300.xml

Проброс USB в виртуалку по сети средствами UsbRedir и QEMU

На сегодняшний день существет довольно много способов пробросить USB-устройство на другой компьютер или виртуалку по сети.
Из наиболее популярных — железячные такие как AnywhereUSB и чисто програмные продукты, из тех что я попробовал сам: USB Redirector и USB/IP.
Я бы хотел рассказать вам еще об одном интересном способе, который работает непосредственно с эмулятором QEMU.
Он так же является частью проекта spice, официально поддерживаемым RedHat.

UsbRedir, это открытый протокол для проброса usb-устройств по tcp на удаленный виртуальный сервер, разработанный при поддержке RedHat в рамках проекта spice. Но как оказалось им можно вполне успешно пользоваться и без spice. В роли сервера выступает usbredirserver, который шарит usb-устройство на определенный порт, а в качестве клиента сам QEMU, который эмулирует подключение экспортированного usb-устройства в определенный usb-контроллер вашей виртуальной машины. Благодаря такому подходу в качестве гостевой системы может использоваться абсолютно любая ОС, так как она даже не знает, что устройство является проброшенным удаленно, а вся логика ложится на QEMU.

Для начала несколько слов о вышеперчисленных решениях

  • AnywhereUSB — довольно неплохое решение, но дорогое, и имеет неприятние глюки, например бывает если расшаренная флешка отваливается, то переподключить ее обратно можно только физически вынув и вставив ее.
  • USB/IP — OpenSource проект. Вроде как был заброшен. По факту глючит довольно сильно. При разрыве соединения, машина частенько уходит в полнейший freezee, а windows показывает BSOD
  • USB Redirector — Замечательная софтина. Для расшаривания устройств с linux на linux бесплатна, во всех остальных случаях уже стоит денег, не так много как AnywhereUSB, но и не бесплатно как хотелось бы 🙂

Как видно есть из чего выбрать, но давайте же наконец попробуем еще один способ — UsbRedir?

Настройка виртуальной машины

Для того что бы было куда подключать экспортированные устройства, на виртуальной машине нужно создать необходимые usb-контроллеры:

  • uhci — для USB1.0
  • ehci — для USB2.0
  • xhci — для USB3.0

Для qemu (без libvirt)

Добавьте опции в команду запуска виртуальной машины:

Для libvirt

В исходном файле конфигурации виртуальной машины в узле &ltdevices&gt удаляем все USB контроллеры и добавляем следущий блок:

Кстати, если вы используете spice, то добавив к контроллерам еще 3 специальных девайса, станет возможен проброс usb-устройств с клиента spice на сервер.

Читайте также:  Как включить проверку диска при загрузке windows
Для qemu

Добавляем следующие опции в команду запуска виртуальной машины, помимо контроллеров определеных нами раньше:

Для libvirt

В исходном файле конфигурации виртуальной машины в узле &ltdevices&gt добавляем следующие опции, помимо контроллеров определеных нами раньше:

Теперь все готово для осуществления проброса.

Запуск сервера

Пакет usbredirserver можно найти в стандартных репозиториях практически во всех популярных дистрибутивах linux.

Вставляем флешку в компьютер, смотрим вывод usb-устройств:

Видим что пара vendorid:prodid равна 125f:c82a, а ядро определило флешке 003-001 usbbus-usbaddr соотвественно.

Теперь давайте расшарим ее на 4000 порт:

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

Через опции при запуске ВМ

Устройство которое нужно подключить к ВМ можно указать при запуске, добавив следующие опции в команду запуска

Для qemu
Для libvirt

Этот блок рамещается перед тегом &lt/devices&gt, рядом с контроллерами определенными нами раньше:
Его так же можно исполнить командой virsh attach-device

Или через qemu-monitor

Заходим на гипервизор и в qemu-monitor нашей машины выполняем следующие команды:

Что бы отключить флешку достаточно такой команды:

На этом все, после данных шагов ваша ВМ увидит вашу флешку и сможет с ней нативно работать.

Если устройств много и все они одинаковые

Вот тут появилась интересная задачка, как пробросить несколько одинаковых девайсов на разные ВМ?
При этом, стоит отметить, все устройства имеют одинаковую пару vendorid:prodid, а пара usbbus-usbaddr совсем не постоянна, стоит только вынуть и вставить устройство, так оно сразу поменяет свой usbaddr.

Я решил ее при помощи udev.
Кстати если вы не совсем понимаете как работает udev, на Debian Wiki есть классная статья о udev

И так приступим

Для начала нам надо узнать серийник нашего устройства, по которому и будем идентифицировать его в udev:

И вставим наше устройство, после этого мы сразу увидим список переменных этого устройства которые udev любезно инициализировал для нас:

Информацию о серийнике и других аттрибутах можно получить и другим способом, но стоит учитывать что для написания правил мы будем использовать именно переменные из команды выше, а не аттрибуты из команды ниже. В противном случае не будет отрабатывать триггер remove при отключении устройства.

Теперь создадаим файл /etc/udev/rules.d/99-usb-serial.rules и запишем в него следующие правила:

Готово, теперь при подключении нашего устройства, оно будет автоматически шарится на нужный нам порт, а при отключении usbredirserver будет прекращать свою работу.
По аналогии добавляем и остальные устройства.

На этом все. Спасибо за проявленный интерес 🙂

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

USB в виртуальной машине KVM

Модератор: Bizdelnick

USB в виртуальной машине KVM

Сообщение azsx » 04.10.2012 14:00

Re: USB в виртуальной машине KVM

Сообщение Bizdelnick » 04.10.2012 15:55

Читайте также:  Mach3 windows 10 x64
в консол и
вку́пе (с чем-либо)
в общем
в ообще
в течени е (часа)
нович ок
нюанс
п о умолчанию
приемл емо
пробле ма
проб овать
тра фик

Re: USB в виртуальной машине KVM

Сообщение azsx » 05.10.2012 05:26

Re: USB в виртуальной машине KVM

Сообщение Kido » 07.10.2012 20:24

Re: USB в виртуальной машине KVM

Сообщение Bizdelnick » 07.10.2012 20:28

в консол и
вку́пе (с чем-либо)
в общем
в ообще
в течени е (часа)
нович ок
нюанс
п о умолчанию
приемл емо
пробле ма
проб овать
тра фик

Re: USB в виртуальной машине KVM

Сообщение azsx » 09.10.2012 05:23

Re: USB в виртуальной машине KVM

Сообщение Bizdelnick » 09.10.2012 13:16

в консол и
вку́пе (с чем-либо)
в общем
в ообще
в течени е (часа)
нович ок
нюанс
п о умолчанию
приемл емо
пробле ма
проб овать
тра фик

Re: USB в виртуальной машине KVM

Сообщение azsx » 15.10.2012 09:14

Re: USB в виртуальной машине KVM

Сообщение Bizdelnick » 15.10.2012 16:43

Для начала проверьте, какой из файлов у Вас присутствует — /etc/qemu-server/106.conf или etc/pve/qemu-server/106.conf.

в консол и
вку́пе (с чем-либо)
в общем
в ообще
в течени е (часа)
нович ок
нюанс
п о умолчанию
приемл емо
пробле ма
проб овать
тра фик

Re: USB в виртуальной машине KVM

Сообщение azsx » 16.10.2012 08:09

qemu-server/106.conf
где имено менять? Имеет значение куда имено поставить настройку?

Re: USB в виртуальной машине KVM

Сообщение Bizdelnick » 16.10.2012 12:09

в консол и
вку́пе (с чем-либо)
в общем
в ообще
в течени е (часа)
нович ок
нюанс
п о умолчанию
приемл емо
пробле ма
проб овать
тра фик

Re: USB в виртуальной машине KVM

Сообщение azsx » 24.10.2012 09:09

Re: USB в виртуальной машине KVM

Сообщение daedalus » 24.10.2012 09:29

Re: USB в виртуальной машине KVM

Сообщение azsx » 24.10.2012 09:45

Re: USB в виртуальной машине KVM

Сообщение Bizdelnick » 24.10.2012 20:10

в консол и
вку́пе (с чем-либо)
в общем
в ообще
в течени е (часа)
нович ок
нюанс
п о умолчанию
приемл емо
пробле ма
проб овать
тра фик

Re: USB в виртуальной машине KVM

Сообщение bars » 09.11.2012 17:10

Re: USB в виртуальной машине KVM

Сообщение and_luk » 10.07.2015 23:36

Всем привет!
Не мог победить несколько дней, но все как всегда закончилось хэпиендом.
И так начнем.
Допустим нам надо завести сервер 1С на kvm.

Имеется два хаспа и их надо зацепить, иначе 1С работать не будет.

Вводим в консоли

Видим, что хаспы висят на Bus 07 Port 2 и Bus 06 Port 2

Далее идем в директорию с конфигами kvm

Оцените статью