Проброс USB-порта на соседний компьютер

Здравствуйте, уважаемые пользователи операционной системы Linux!
Настало время рассказать об очень интересной, а главное — полезной программе. Представьте себе ситуацию, когда вы не смогли установить драйвер принтера, и только потому, что принтеров этих выпущено всего две с половиной штуки, и драйвер есть только под Windows. Или есть у вас сканер, на который нужно сканировать из терминального сеанса. Да просто «поделиться» каким-либо USB-устройством, не ломая голову о наличии драйверов. В этой страшной или не очень ситуации нам и поможет программа usbip, которая «транслирует» ваше устройство в локальную сеть. Так давайте же её установим! Напомню,  что на сером фоне будут команды, набираемые в терминале,  которые можно просто скопировать из окна браузера и вставить в окно терминала.
Если у вас Linux Ubuntu, устанавливаем программу так:
 sudo apt-get update 
система запросит пароль
 [sudo] password for testuser: 
набираем его (напомню, наш пароль из примера установки — 123456). Затем набираем команду:
 sudo apt-get install usbip 
после установки программы добавляем модули ядра в автозапуск:
 sudo nano /etc/modules 
и в открывшийся файл добавляем строки:
usbip
usbip_common_mod

Далее добавим демона (для тех, кто ещё не слышал этот термин: в Windows — службы, в Linux — демоны) в автозапуск:
 sudo nano /etc/init.d/usbipd 
и вставим в пустой файл строки:
#!/bin/sh
### BEGIN INIT INFO
# Provides: usbipd
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 5
# Description:
### END INIT INFO
case "$1" in
'start')
usbipd -D
;;
'stop')
pkill usbip
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac
exit 0

делаем наш скрипт исполняемым:
 sudo chmod 755 /etc/init.d/usbipd 
и обновляем… скажем так, список запускаемых программ:
 sudo update-rc.d usbipd defaults 
В этом месте для чистоты эксперимента можно перезагрузиться и посмотреть, работает ли демон, а можно просто запустить его руками. Теперь подключаем USB-устройство к компьютеру и смотрим, какой у него ID:
 lsusb 
затем командой
 sudo usbip_bind_driver --list 
смотрим, какой код соответствует нужному нам ID устройства (будет в виде 3-2, 1-1, 4-2 и так далее) и по по этому коду подсоединяем устройство к программе:
 sudo usbip_bind_driver --usbip [USB-код] 
где [USB-код]- это код вашего USB-устройства.
С этого момента ваше устройство «транслируется» по локальной сети и к нему можно подключится с любого компьютера.
Мы в качестве примера подключимся с компьютера под управлением операционной системы Windows XP. Для этого качаем клиента по ссылке с официального сайта либо версия 1.0.0 с нашего сайта. Скачанный файл распаковываем в любую удобную папку, я, для примера, распакую в C:\usbip, и устанавливаем драйвер устройства. Для этого открываем панель управления, переходим в «Установка оборудования», нажимаем кнопку «Далее», выбираем пункт «Да, устройство уже подсоединено» и снова «Далее». В самом низу открывшегося окошка выбираем «Добавление нового устройства» и нажимаем «Далее». Выбираем пункт «Установка оборудования, выбранного из списка вручную» и снова «Далее». «Показать все устройства» — «Далее». Нажимаем кнопку «Установить с диска», нажимаем кнопку «Обзор» и показываем путь, куда вы распаковали файл с клиентом, выбираем файл USBIPEnum.inf, нажимаем кнопку «ОК», затем «Далее» и снова «Далее». В случае предупреждения об отсутствии у драйвера цифровой подписи соглашаемся на продолжение установки. По окончании установки нажимаем кнопку «Готово». Драйвер мы установили, осталось совсем немного — подключиться к удалённому USB-устройству. Открываем командную строку… Меню «Пуск» — «Выполнить» — набираем cmd. Да, в Windows тоже используем консоль. И вот в эту консоль набираем команду
 C:\usbip\usbip.exe -l [server_ip] 
где server_ip — компьютер с USB-устройством, чтобы посмотреть список устройств на удалённом компьютере, транслируемых в сеть. Командой
 C:\usbip\usbip.exe -a [server_ip] [USB-код] 
где server_ip — компьютер с USB-устройством , USB-код — код USB-устройства на Linux-компьютере, мы нужное нам устройство подключим. После того, как вы нажмёте клавишу «Enter», компьютер скажет, что найдено новое локальное USB-устройство и можно устанавливать его драйверы (или они установятся автоматически).
Из операционной системы Linux подключаемся к удалённому USB-устройству так:
 usbip -a [server_ip] [USB-код] 
И последнее. Если USB-устройство подключено постоянно, можно настроить автоматическое подключение, в противном случае включать «трансляцию» устройства на Linux (sudo usbip_bind_driver —usbip [USB-код]) и подключаться к нему из Windows (C:\usbip\usbip.exe -a [server_ip] [USB-код]) придётся каждый раз при загрузке системы. Настроим автоматическое подключение. Для этого в скрипт запуска демона после строки
usbipd -D
добавим строку
usbip_bind_driver --usbip [USB-код]
С Windows будет несколько сложнее. Нам нужно запускать программу usbip как службу. Для этого качаем утилиту либо с официального сайта, либо с нашего сервера. Сохраняем её в папку с программой usbip (не обязательно, но проще с путями). Затем в чёрном окне командной строки набираем
 C:\usbip\runasservice.exe install "USBIP" "C:\usbip\usbip.exe" "-a [server_ip] [USB-код]" 
Теперь нужное нам устройство будет подключаться автоматически при загрузке операционной системы.
Надеюсь, эта статья поможет вам.

Источник http://sargatka.ru/?page_id=995

Запись опубликована в рубрике *Unix,*Linux. Добавьте в закладки постоянную ссылку.

Один комментарий на «Проброс USB-порта на соседний компьютер»

  1. RAIDIX говорит:

    Спасибо за статью, отличный способ, он мне очень пригодился.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91