LINUX.ORG.RU
ФорумAdmin

KVM, USB и перезагрузка

 , ,


0

1

День добрый. Подскажите пожалуйста кто-нибудь сталкивался и как решал такую проблему. Есть Ubuntu 16.04 на ней в KVM крутиться Windows в него проброшены два аладиновских ключа. Так как ID у них одинаковой пришлось пробрасывать их указывая Bus и Device. Все хорошо, все работает, но после перезагрузки у USB устройств меняется Bus и Device и гость не стартует автоматом приходиться править руками. Что можно придумать?

#lsusb
Bus 001 Device 009: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 008: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle



Последнее исправление: ch9mera (всего исправлений: 2)
Ответ на: комментарий от Yustas
   <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0529'/>
        <product id='0x0001'/>
        <address bus='2' device='13'/>
      </source>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0529'/>
        <product id='0x0001'/>
        <address bus='1' device='8'/>
      </source>
    </hostdev>
ch9mera
() автор топика
Ответ на: комментарий от ch9mera

Мне почему-то захотелось сделать кривой велосипед.
Настроение такое, знаете ли.

cat vm_config_beg.xml > vm.xml

for A in "`lsusb | grep Aladdin`"; do
    echo "    <hostdev mode='subsystem' type='usb' managed='yes'>" >> vm.xml
    echo "        <source>" >> vm.xml
    echo "$A" | awk -F":" '{ print $1 }' | awk '{ print "<address bus=\47" $2 "\47 device=\47" $4 "\47" }' >> vm.xml
    echo "        </source>" >> vm.xml
    echo "    </hostdev>" >> vm.xml
done

cat vm_config_end.xml >> vm.xml

virsh define vm.xml
virsh start vm.xml

Yustas ★★★★
()

Запили правила udev для ключей.

anonymous
()

Я, в свое время, запилил несколько скриптов на питоне для этих целей. Виртуалок у меня было много больше. Нужно было, чтобы каждый usb ключик маппился к своей виртуалке. Парсил выхлоп udev, на предмет наличия token в параметрах usb. Генерил xml для каждого токена. В отдельном файле хранилась инфа к какой виртуалке какой токен должен быть подключен. Т.к. токены можно было отличить друг от друга только по номеру Device, каждой виртуалке был назначен id. В rc.local скрипт, который запускал виртуалки по порядку id и маппил к ним токены по порядку Device. Как-то так.

afanasiy ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.