- Kvm с usb портами windows
- Проброс USB устройства внутрь гостевой OS, используя KVM
- Находим, на какой шине находится устройство USB:
- Создаем конфиг для устройства, следующего плана (с учетом данных, полученных ранее):
- Подключаем к VPS:
- Проброс USB в виртуалку по сети средствами UsbRedir и QEMU
- Для начала несколько слов о вышеперчисленных решениях
- Настройка виртуальной машины
- Запуск сервера
- Подключение устройства к виртуальной машине
- Через опции при запуске ВМ
- Или через qemu-monitor
- Если устройств много и все они одинаковые
- И так приступим
- unixforum.org
- USB в виртуальной машине KVM
- USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- Re: USB в виртуальной машине KVM
- 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 устройства.
Таким образом устройство сразу же должно стать доступным внутри гостевой 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
В исходном файле конфигурации виртуальной машины в узле <devices> удаляем все USB контроллеры и добавляем следущий блок:
Кстати, если вы используете spice, то добавив к контроллерам еще 3 специальных девайса, станет возможен проброс usb-устройств с клиента spice на сервер.
Для qemu
Добавляем следующие опции в команду запуска виртуальной машины, помимо контроллеров определеных нами раньше:
Для libvirt
В исходном файле конфигурации виртуальной машины в узле <devices> добавляем следующие опции, помимо контроллеров определеных нами раньше:
Теперь все готово для осуществления проброса.
Запуск сервера
Пакет usbredirserver можно найти в стандартных репозиториях практически во всех популярных дистрибутивах linux.
Вставляем флешку в компьютер, смотрим вывод usb-устройств:
Видим что пара vendorid:prodid равна 125f:c82a, а ядро определило флешке 003-001 usbbus-usbaddr соотвественно.
Теперь давайте расшарим ее на 4000 порт:
Подключение устройства к виртуальной машине
Через опции при запуске ВМ
Устройство которое нужно подключить к ВМ можно указать при запуске, добавив следующие опции в команду запуска
Для qemu
Для libvirt
Этот блок рамещается перед тегом </devices>, рядом с контроллерами определенными нами раньше:
Его так же можно исполнить командой 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
в консол и вку́пе (с чем-либо) в общем в ообще | в течени е (часа) нович ок нюанс п о умолчанию | приемл емо пробле ма проб овать тра фик |
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