Инсталляция USBIP в Xenserver 6.0
Я не стал компилировать модули и саму программу , т.к. моё ядро совпадает с ядром указанным в статье (кто хочет/ядро не совпадает компилирует по инструкции русской/eng ). Необходимо закачать на dom0 два файла, я для этого воспользовался winscp. Далее заходим на консоль dom0:cd / tar -xvzf usbip_kmods-2.6.32.12-0.7.1.xs6_.0.0.531.170662xen-bpo.2.6.32.57-vanilla.tgz tar -xvzf usbip_userspace-xs6.tgz depmod -aАвтор нас предупреждает, что для для другого ядра необходимо компилировать такие модули самостоятельно. Теперь нам необходимо найти KEY_ID USB ключа
bind_driver --listВ данной статье указывается, что нужно прописать /etc/rc.local прописать автоматический поиск и загрузку модулей и поиск устройства с KEY_ID и расшаривание его. Мне больше понравилась вот такая конструкция:
#!/bin/sh export PATH="/bin:/usr/bin:/sbin:/usr/sbin" KEY_ID=0529:0001 for str in `bind_driver --list` ; do if (echo $str | grep $KEY_ID >> /dev/null); then bind_driver --usbip $busid fi busid=$str done usbipd -DИ добавим в автозапуск его и загрузку модулей:
echo 'modprobe usbip_common_mod' >> /etc/rc.local echo 'modprobe usbip' >> /etc/rc.local echo '/sbin/xen_usb_in' >> /etc/rc.local chmod +x /sbin/xen_usb_inСамое интересное, автор забыл упомянуть о том, что в XenServer есть iptables, по умолчанию он блокирует все кроме своих портов. Ай-я-яй... это означает USB/IP по ip то и не будет доступен из-вне. Исправляем это досадное недоразумение (Citrix категорически не рекомендует этого делать, вы делаете это на свой страх и риск) и открываем нужный нам порт 3240
vi /etc/sysconfig/iptablesя надеюсь уж vi вы знаете :) добавляем строку
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 3240 -j ACCEPTи перегружаем сервис iptables
service iptables restartВот теперь таки да :)
Устанавливаем в Windows VM
Скачиваем windows драйвера с сайта разработчиков http://sourceforge.net/projects/usbip/files/usbip_windows/. По словам автора "похоже что необходимо использовать одну и туже версию драйверов", т.е. качаем версию V1. После установки драйверов на Windows VM (в скачанном архиве есть текст как это делается) можно проверить и подключить доступные устройства на dom0usbip.exe -l 192.168.0.1список доступных устройств и их номера
usbip.exe -a 192.168.0.1 5-1подключение устройства с номером 5-1 Вместо 192.168.0.1 должен быть ваш ip dom0, а вместо 5-1 номер вашего usb устройства. Вот так можно оборвать подключение
usbip.exe -d 1т.е. отключить устройство раз Если нужно запускать USBIP при загрузке, лучше установить как сервис. Используйте INSTSRV.EXE и SRVANY.EXE из Windows Resource Kit:
INSTSRV.EXE USBIP C:\WINDOWS\SYSTEM32\SRVANY.EXEВ в ветке реестра HKLM\System\CurrentControlSet\Services\USBIP\ создадим subkey "Parameters" со значением
Application=c:\somewhere\usbip.exe AppParamaters=-a 192.168.0.1 5-1
Tuning Windows host
как было сказано у автора usbip.exe блокирует процедуру выключения ОС. Поэтому необходимо создать скрипт disconnect_hardlock.bat и выполнять его при выключении компьютера (с помощью gpedit.msc) вот он:@echo off c: cd \install\usbip REM disconnect all devices .\usbip.exe -d 0 .\usbip.exe -d 1 .\usbip.exe -d 2 .\usbip.exe -d 3Как-то так.
Файлы:
usbip_kmods-2.6.32.12-0.7.1.xs6_.0.0.531.170662xen-bpo.2.6.32.57-vanilla.tgz
usbip_userspace-xs6.tgz