1. Установка и компиляция
Устанавливаем необходимые пакеты
aptitude install build-essential fakeroot dpkg-dev debhelper autoconf automake libtool libglib2.0-dev libsysfs-dev module-assistant
Скачиваем и компилируем USBIP
mkdir usbip cd usbip wget ftp://ftp.de.debian.org/debian/pool/main/u/usbip/usbip_0.1.7-3.dsc wget ftp://ftp.de.debian.org/debian/pool/main/u/usbip/usbip_0.1.7.orig.tar.gz wget ftp://ftp.de.debian.org/debian/pool/main/u/usbip/usbip_0.1.7-3.diff.gz dpkg-source -x usbip_0.1.7-3.dsc cd usbip-0.1.7 dpkg-buildpackage -rfakeroot -b
Поднимаемся в папку выше и устанавливаем пакет
cd .. dpkg -i libusbip-dev_0.1.7-3_amd64.deb dpkg -i libusbip0_0.1.7-3_amd64.deb dpkg -i usbip-source_0.1.7-3_all.deb dpkg -i usbip_0.1.7-3_amd64.deb
2. Запуск и настройка сервера
Загружаем необходимые модули
modprobe usbip modprobe usbip_common_mod lsmod | grep usbip
Запускаем демон
usbipd -D
Далее подключаем USB устройство к компьютеру.
Внимание! Необходимо сначала запустить демон, а лишь затем подключать устройства, иначе могут возникнуть ошибки на клиенте при подключении.
Для просмотра подключенных USB устройств выполняем команду
lsusb
получаем список подключенных USB устройств с их идентификаторами вида:
Bus XXX Device YYY: ID VendorID:DeviceID <название устройства>
что-то вроде:
Bus 002 Device 004: ID 0529:0001 Aladdin Knowledge Systems HASP v0.06 Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Запоминаем сочетание VendorID:DeviceID
· Выполняем команду:
sudo usbip_bind_driver –list
USBIP проверяет список подключенного оборудования и выводит его с указанием их bus-ID вида:
- busid 2-1 (0529:0001) 2-1:1.0 -> none - busid 2-2 (0e0f:0002) 2-2:1.0 -> hub ……..
В данном случае bus-ID, указывающий на нужное нам USB устройство: “2-1″.
Теперь подключаем устройство к серверу. Набираем:
sudo usbip_bind_driver –usbip 2-1
получаем:
** (process:1483): DEBUG: 2-1:1.0 -> none ** (process:1483): DEBUG: write “add 2-1″ to /sys/bus/usb/drivers/usbip/match_busid ** Message: bind 2-1 to usbip, complete!
Устройство подключено к USBIP, доступ с локальной машины-сервера к нему теряется.
Также можно посмотреть, какие устройства подключены к USBIP в данный момент. Для этого набираем:
sudo usbip_bind_driver –list
Получаем:
- busid 2-1 (0529:0001) 2-1:1.0 – > usbip - busid 2-2 (0e0f:0002) 2-2:1.0 -> hub …….
Устройство с bus-ID 2-1 подключено к USBIP. Система может передавать данные об этом USB устройстве с вашей системы удаленным клиентам.
Настройка сервера закончена. В случае необходимости можно добавлять и убирать
экспортируемые устройства.
3. Настройка клиента
Скачиваем дистрибутив. http://usbip.sourceforge.net/
Устанавливаем USB/IPEnumenator. Он устанавливается как произвольное системное устройство с драйверами на диске:
Для Windows XP:
- Распаковываем файлы в локальную папку.
- В Панели Управления жмем «Установка Оборудования», в открывшемся Окне Приветствия Мастера жмем «Далее».
- Выбрать «Да, устройство уже подсоединено» -> «Далее».
- Выбрать «Добавление нового устройства»-> «Далее».
- Выбрать «Установка оборудования, выбранного из списка вручную» -> «Далее».
- Выбрать «Системное устройство» -> «Далее».
- Выбрать «Установить с диска», -> «Просмотр», выбрать папку с разархивированным драйвером -> «ОК».
- Выбрать ‘USB/IP Enumerator’, -> «Далее».
- «Мастер готов к установке нового оборудования» -> Выбрать «Далее» -> Готово».
Для Window 7 (и 2008r2):
- Для разрешения установки неподписанных драйверов: запускаем cmd от
- администратора и выполняем «bcdedit /settestsigningon».
- Распаковываем файлы в локальную папку..
- Открываем «Диспетчер Устройств».
- Правой кнопкой на «имя компьютера» -.«Установить старое устройство» (или выбрать в меню «Действие»).
- В открывшемся Окне Приветствия Мастера жмем «Далее».
- Выбрать «Установка оборудования, выбранного из списка вручную» -> «Далее».
- Выбрать «Системное устройство» -> «Далее».
- Выбрать «Установить с диска», -> «Просмотр», выбрать папку с разархивированным драйвером -> «ОК».
- Выбрать ‘USB/IP Enumerator’, -> «Далее».
- «Мастер готов к установке нового оборудования» -> Выбрать «Далее» -> «Готово».
Все указанные действия также описаны в идущем с пакетом USBIP файле «usage» на английском языке.
Подключаем USB устройства, обозначенные как экспортируемые на нужном нам сервере.
Запускаем cmd.
Смотрим, какие устройства готовы к подключению:
path-to-usbip:> usbip.exe -l <server-ip>
(server-ip – IP адрес сервера USB устройств из пункта 2)
Пример:
C:\usbip>usbip -l 192.168.1.13 usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 192.168.1.13 port 3240 usbip dbg: usbip_network.c: 249 (tcp_connect ) connected to 192.168.1.13:3240 - 192.168.1.13 usbip dbg: usbip.c: 423 (query_exported_devices) exportable 2 devices 2-1: unknown vendor : unknown product (0529:0001) : /sys/devices/pci0000:00/0000:00:11.0/0000:02:02.0/usb2/2-1 : unknown class / unknown subclass / unknown protocol (ff/00/00) : 0 – unknown class / unknown subclass / unknown protocol (ff/00/00) ……….
В результате видим, что на сервере 192.168.1.13 готово к подключению устройство с bus-ID 2-1 – то, которые мы настроили в пункте 2. Устройств может быть и больше.
Далее – подключаем нужное устройство:
path-to-usbip:> usbip.exe -a <server-ip> USB-ID
USB-ID в нашем случае 2-1.
Получаем многабукв (листинг параметров) и в завершение:
new usb device attached to usbvbus port 2
USB устройство должно появиться в системе клиента. Окно терминала желательно не закрывать.
4. Ссылки