Здравствуйте, сегодня я хочу рассказать вам как поставить usbip на сервер с установленной ubuntu 12.04 server.
USBIP(USB over IP) служит для проброса usb устройства по сети, будь то windows или linux клиент. Серверная часть увы только под linux.
Данное решение самый лучший, бесплатный и по моему единственный продукт позволяющий пробрасывать практически любые usb устройства.
1. Установка серверной части USBIP.
Шаги установки/настройки ubuntu 12.04 server я пропущу.
1.1 Для начала требуется обновить систему.
sudo apt-get update && sudo apt-get dist-upgrade -y
1.2 Добавим репозиторий с usbip. Пакет есть и в стандартном репозитории, но там он оказался не рабочим.
sudo add-apt-repository ppa:whoopie79/ppa
1.3 Установим пакет usbip и включим нужные модули.
sudo apt-get install usbip -y
modprobe usbip-core
modprobe usbip-host
1.4 Добавим нужные модули в автозагрузку. Для этого откроем файл /etc/modules в редакторе
sudo nano /etc/modules
и в конец добавим
usbip-core
usbip-host
1.5 Создадим init.d скрипт. Для этого скопируем /etc/init.d/skeleton
cp /etc/init.d/skeleton /etc/init.d/usbip
Далее отредактируем строки в /etc/init.d/usbip
DESC="usbip"
NAME="usbipd"
DAEMON_ARGS="-D"
После этого дадим права файлу
sudo chmod 755 /etc/init.d/usbipd
1.6 Добавим init.d скрипт в автозагрузку.
sudo update-rc.d usbipd defaults
1.7 Пришло время запустить usbip на сервере, для этого запустим команду в консоли
sudo /etc/init.d/usbipd start
Если команда не выдала ошибок, то все прошло удачно и можно приступать к пробросу usb устройства.
2. Проброс usb устройства.
Для начала нужно разрешить проброс на самом сервере. Для этого выведем список всех usb устройств подключенных к серверу. Введем:
usbip list -l
Должно вывести что то похожее
root@ubuntu:~# usbip list -l
Local USB devices
=================
- busid 1-1 (80ee:0021)
1-1:1.0 -> usbhid
- busid 1-2 (8564:1000)
1-2:1.0 -> usb-storage
где 1-2 id устройства, (8564:1000) ID устройства.
Для того что бы узнать какие устройства usb у вас подключены введите команду lsusb
root@ubuntu:~# lsusb
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 003: ID 8564:1000
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Я буду пробрасывать устройство с ID 8564:1000 т.к. это моя usb флешка. Далее вводим команду:
root@ubuntu:~# usbip bind -b 1-2
bind device on busid 1-2: complete
Если вы увидели такой же ответ как и у меня значит все прошло удачно.
Теперь разрешим на файрволе подключаться к usbip демону который занял TCP порт 3240.
iptables -I INPUT -p tcp -m tcp --dport 3240 -j ACCEPT
Можно подключаться к этому устройству удаленно.
3. Подключение устройства под Windows.
3.1 Установка драйвера.
Для начала вам потребуется скачать драйвера и exe'шник по этой ссылке
Распакуйте архив в папку c:usbip для удобства. Теперь надо установить универсальный драйвер. Делается это легко(я опишу процесс только для win7 и win2k8r2):
Зайдите в Диспетчер устройств, в верхнем меню выберите Действие > Установить старое устройство
Везде жмите далее пока диспетчер не предложит Установить с диска...
Выбираем данный пункт, жмем обзор и идем в папку c:usbip, там выбираем USBIPEnum.inf.
Устанавливаем данный драйвер. Переходим к следующему пункту.
3.2 Подключаем устройство.
Любым любимым способом открываем cmd.exe
далее вводим
cd c:usbip
usbip.exe -l <IP сервера>
Должно вывести примерно такое
- 192.168.1.8
1-2: unknown vendor : unknown product (8564:1000)
: /sys/devices/pci0000:00/0000:00:06.0/usb1/1-2
: (Defined at Interface level) (00/00/00)
: 0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50)
Теперь приступим к непосредственно к самому подключению
c:usbip>usbip.exe -a <IP сервера> 1-2
Должно вывести
c:usbip>usbip.exe -a 192.168.1.8 1-2
new usb device attached to usbvbus port 1
Receive sequence: 14600
И далее должно начаться подключение нового устройства.
Вот так легко можно пробросить одно usb устройство на другое примерно за 30 минут. В следующий раз я напишу как пробросить usb устройство с linux на linux. Спасибо что прочитали мой пост. Оставляйте в комментариях свои отзывы и предложения.
Автор: d1mAs1q
в пукт 1.5 путаница с названием init.d файла сначало копирется в /etc/init.d/usbip, а потом права присваиваются /etc/init.d/usbipd