USBIP бесплатная программа проброса USB через IP //

На этом форуме есть ветка в которой обсуждается подключение к THINSTATION платной утилиты для проброса USB через сеть USB-REDIRECT.
Проект этот действительно хорош за одним исключением он платный.
Поэтому попробовал собрать для Thinstation пакет на основе Open Source проекта USBIP http://usbip.sourceforge.net
Пакет на основе USBIP-0.1.7 можно взять по ссылке http://files.mail.ru/NGRD4Z Клиент для WINDOWS можно взять на сайте проекта.
для подключения пакета к Thinstation достаточно добавить в PKG_PACKAGES="usbip"
USBIP_ENABLED=on
так как пакет мне понадобился для подключения USB принтеров CANON LBP 1120 и 810 то при загрузке USBIP пакет отключает модулю USBLP чтобы он не мешал работе USBIP. Отключение этого модуля прописанов скрипте запуска модуля который находится в /etc/init.d/usbip


Спасибо, будем

Спасибо, будем посмотреть.

--

Nikolai V. Ivanyushin <nvi at itadvisor.ru>
IT Advisor Ltd.
http://www.itadvisor.ru
+7 910 743-28-38

В ходе

В ходе тестирования пакета выявился глюк.
при подключении одного USB устройства (в моем случае принтера)
подключение и отключение устройства происходит корректно и без проблем. Но если подключить еще одно устройство на соседний USB порт подключение происходит но при попытке отключить устройство подключенное первым вываливается дамп драйвера USBIP и система перестает откликаться на подключения USB устройств. Приходится перезагружать Thinstation. До причин такого поведения пока докопаться не удалось.

тут похожий

тут похожий проект http://www.libusb.org/

посмотрел

посмотрел страничку http://www.libusb.org/.  Насколько я  понял это проект разработки свободной библиотеки используемой для доступа к USB устройствам. Но доступа к локальным USB устройствам. Причем проект представляет собой именно библиотеку которую можно использовать в своих приложениях. Использовать ее в уже готовых приложениях не получится.

USBIP - супер. В

USBIP - супер. В отличие от USB Redirector нормально мапятся из Thinstation usb-флешки. В USB Redirector после запуска usbsrvd  шара \\tsclient\usb умирала.

Незнаю как сделать чтобы USB-порт автомапислся - тоесть после включения\выключения  клиента перезапускался на сервере терминалов USBIP

У себя на windows

У себя на windows машине для автомонтирования сделал на коленке AUTOIT скрипт который в цикле гоняет команду монтирования порта с THINSTATION если устройство подключено команда его подключит и остановит скрипт  как только устройство убирается команда монтирования завершает работу и скрипт опять ее гоняет в бесконечном цикле.

Реализовано конечно топорно но работает вполне приемлемо.

 

Скрипт и его текст можно взять по ссылке http://files.mail.ru/NGRD4Z

исполняемый файлик ложится в каталог с usbip.exe

Запускается так

USBIP_START.exe "192.168.222.222 1-1" 

или 

USBIP_START.exe "192.168.222.222 1-1" 1

В первом случае запустится програмка с иконкой в трее во второй без иконки

первым параметром идет строка подключения из команды USBIP.EXE -a

Внимательно

Внимательно посмотрел на свой LBP-810 и решился повторить...не заработало, возникли вопросы

1. в каком месте лучше ставить строчку  USBIP_ENABLED=on , может кто скинет кусок с этой строчкой?

2. Под виндой появилось в системных устройствах появился Virtual USB Bus Enumerator. Должно ли появиться что то еще?

3. При команде USBIP.exe -a 192.168.2.30 1

говори что 192.168.2.30:3240 no distination to connect to

это означает в сумме проблему на бездисковой станции или проблема под виндами? 

1) строчку

1) строчку USBIP_ENABLED=on насколько я понял по своему опыту можно ставить где угодно. У себя в конфиге правда ставлю в любом месте после строчки определения подгружаемых пакетов вот так:

PKG_PACKAGES="ser2net usbip"

USBIP_ENABLED=on

 

 

2) Вроде бы нет больше ничего не появляется. 

Просмотреть есть ли на Thinstation устройства пригодные для коннекта можно

на Windows машине командой

 

USBIP -l  ip_thinstation

 

или на самой Thinstation перейдя в консоль

 

/usr/local/bin/bind_driver --list

 

именно вывод этой команды и подставляется в команду USBIP.exe -a

например при подключении принтера командой просмотра у меня выводится следующая информация

 

usbip dbg:       usbip.c: 423 (query_exported_devices) exportable 1 devices
1-1: unknown vendor : unknown product (04a9:262b)
: /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-1
: (Defined at Interface level) (00/00/00)
:  0 - unknown class / unknown subclass / unknown protocol (07/01/02)

 

соответственно для подключения этого оборудования на windows нужно написать

 

USBIP.exe -a 192.168.2.30 1-1

 

т.е подключить устройство 1-1 с IP 192.168.2.30

 

кстати у меня в пакете в UDEV прописано автоподключения устройств с ID 1-1, 1-2, 2-1, .... 4-2

если устройство по команде   /usr/local/bin/bind_driver --list будет выдавать другой ID то автоподключение не сработает

 

я с такими случаями не сталкивался но если это произойдет то для таких устройств надо будет дописывать првило в файл /etc/udev/rules.d/12-usbip.rules чтобы usbip на thinstation автоматически расшаривал их по сети.

Угу..похоже USBIP

Угу..похоже USBIP не подгрузился на самой станции..

А какая у вас версия самого thinstation?

Etherboot?

Надо ли  откючить в конфигурации самого thinstation  строчку USB_ENABLED=On ? нет ли там конфликта?

и как в виндах будет виден (если удастся включить ) проброшенный USB порт ?

 не напомните имя пользователя и паролль для консоли? ( настраивал 2 года назад - забыыыл)

Спасибо!!!  

Да я работаю с

Да я работаю с Etherboot

Пробовал в конфигурации включать и отключать строчку  USB_ENABLED=On

и вроде как получается что никакого эффекта эта строчка на работу USBIP не оказывает

проброшенный USB порт в виндах я не вижу никак если честно.

Как только я подключаю порт командой USBIP -a винда обнаруживает мой принтер и подключает его.  Более внимательно не смотрел может еще что то появляется.

имя пользователя и пароль

rooot

lplp123

Зашел в

Зашел в консоль и в папке /usr обнаружил только lib и X11R86 и отсутсвие папки local

может надо еще какие то pkg загружать?

да нет просто

да нет

просто не загрузился пакет 

надо смотреть причину

т.е последовательно:

1) есть ли в файле thinstation.conf.network секции

PKG_PACKAGES="ser2net usbip"

PKG_PREFIX=pkg

USBIP_ENABLED=on

 

2) удостоверится что этот конфиг файл подхватывается во время загрузки по сети

3) если в сети нет TFTP сервера с которого должны загружатся пакеты надо на наситель с которого производится загрузка внести соответствующие изменения в файл thinstation.conf.user и создать на носителе каталоги PKG и MODULES откуда и будут загружатся пакеты. Но этот момент хорошо описан в сопроводительном файлике к THINSTATION.

4) последний совет читайте документацию по Thinstation я не напишу все так подробно как написано там

Спасибо! Раздо

Спасибо!

Раздобрался - была небольшая неточность.подключается толкьо если PKG_PACKAGES="ser2net usbip" а без ser2net - не подключается

 Зашел в консоль, увидел дивайсы..

Но по сети USBIP не видит терминала...

E:\distr\uspip\usbip-win>usbip.exe -a 192.168.2.33 1-1
usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 192.168.2.33 port 3240

usbip dbg: usbip_network.c: 255 (tcp_connect ) 192.168.2.33:3240, no destination
 to connect to
usbip err:       usbip.c: 294 (attach_device) tcp connect

при том что консоль видит 1-1 дивайс.

Вчера как раз

Вчера как раз встретился с глюком :(

 

Вобчем до этого все тесты проводил на достаточно старом железе на P3 или P4 c матерью не выше 845 чипсета.

 

Вчера так получилось что в качестве клиента пришлось использовать мать на 865 чипсете от Gygabyte GA-8I865GME-775.  И столкнулся с проблемой, на клиенте USBIP вроде бы устройство видит, расшаривает, с винды устройство видится. НО! При попытке подключится выводит много буковок и не хрена не подключает. Плюс при этом на стороне клиента драйвер USBIP тоже выводит много буковок и благополучно умирает. 

Причем пробовал подключать девайс к разным USB портам на клиенте. На некоторых портах удавалось подключить девайс. Но при первой же попытке или при второй а иногда и при третьей опять происходит сбой на клиенте. При этом клиент вешается намертво, даже пинговатся перестает. 

 

Итог : Этому пакету не все матери одинаково полезны.

 

Подозрения:

вобщето для этого пакета драйвер USBIP пришлось компилить под ядро на котором работает сборка ITADVISOR. В  USBIP присутствуют исходники драйвера под более свежее ядро возможно если пересобрать драйвер под это ядро работать будет  стабильнее.

Но такой пакет не пойдет под стандартными сборками от ITADVISOR так как не совпадут версии ядер. 

 

 

P.S - Вобчето наличие  в строчке PKG_PACKAGES="ser2net usbip"  пакета ser2net не является обязательным. Просто выложил тут строчку из своего конфига. У меня работает и так  PKG_PACKAGES="usbip"

Судя по сообщениям которые вы выложили с винды клиент просто не видит сервера по данному IP адресу. Адрес правильный? А команда usbip -l 192.168.2.33 на виндовс машине что нить выдает? Ежели нет а клиентская машина пингуется по этому адресу то что то не в порядке на клиенте.

 

Вот еще

Вот еще подумалось

Не надо ли поколдовать с переменной

-------------------------- 

SER2NET_TCPPORT=2001
tcp порт, в который будет перенаправляться физический последовательный порт
--------------------------

и поменять ее значение на тот самый пресловутый 3240порт? 

ser2net и usbip это

ser2net и usbip это разные пакеты и друг на друга они никак не влияют

реально

если настроите такой порт то один из двух пакетов просто перестанет работать

хмм... тогда

хмм... тогда совсем странно и непонятно.

А какая именно у вас версия сборки работает?

 Может дело  именно в конкретной сборке? Помню когда то было что на какой то версии что то не работало одно, а в предыдущей и следующей -работало. 

Адреса-правильные, клиент-пингуется, т.е. просто на 3240 порту ничего не видит  

Собственно в том и проблема - консоль видит USB, винда пингует нужный IP, а USBIP -l  как и все другие команды не видят на клиенте интерфейс.. 

Клиент - старенький Piii +256RAM, если не подводит память - 815 + видяха TNT  

пробовал на

пробовал на июльской и на мартовской сборке

в консоле по команде PS

процесс

/usr/local/bin/usbipd -D 

виден?

потому как отсутствием запущеного демона на клиенте ничем другим объяснить не могу

да, у меня более

да, у меня более старые сборки...заментно более старые- прошлогодние...дождусь понедельника - посмотрю!

Попробовал

Попробовал новую сборку! получилось, демон завелся!!! спасибо! Дело было в свежести сборки!

но поскольку пробовал на BXе древнем он как то странно нумерует устойства 1-2.1 и пришлось их раздавать руками командой bind_driver --usbip 1-2.1 и после этого винда что то увидела даже, но не смогла подключиться со словами "no free port" ...но думаю это уже тонкая комбинация глюков BX и XP, на работе там будет и нормальный сервер и машинки правильно нумеруют USB дивайсы

чтобы

чтобы подключались такие девайсы автоматом распакуйте в каком нить линухе пкет usbip.pkg

(это простой tar.gz архив)

и в файле  /etc/udev/rules.d/12-usbip.rules  допишите строчки которые будут подключать ваше устройство с ID 1-2.1

Как дописать будет понятно как только посмотрите на этот файл.

Потом запакуйте распакованые папки опять в tar.gz и поменяйте расширение файла на .pkg

Пробовал распаковывать и править это все на Windows но пакет после этого перестает работать. Так что все эти операции проделываю в Linux. Пользуюсь для этого coLinux. В нём же и пакет собирал.

Спасибо еще

Спасибо еще раз!

На обычном компе в качестве терминала + обычный 2003 сервер +новая сборка всё З А Р А Б О Т А Л О!!!  Canon LBP-810 заработал под терминалкооой!!!

Помогите

Помогите пожалуйста подключить сканер в следующей конфигурации сборка thinstation-2.2-20090810.zip

набор пакетов thinstation-2.2-packages-20090810.zip 

файл  скачал http://files.mail.ru/I5TW1I после чего переименовал .tar.gz в .pkg и положил его в pacage

В .network и .mac...файлы внес изменения  

PKG_PACKAGES="usbip"

PKG_PREFIX=pkg

USBIP_ENABLED=on

 

после чего при загрузке в консоли от root

PS  

/usr/local/bin/usbipd -D 

виден процесс 

но при  /usr/local/bin/bind_driver --list выдает 0 доступных для подключения устройств. 

естественно в виндовс не определяется ничего...  

Клиент Атом интегрированный в микро-АТХ

устройство - HP scanjet 3800 сканер

 

При подключении принтера HP1018 не входит на сервер терминалов вываливается графическая оболочка 

Что можно сделать и где проверять ? 

Заранее спасибо  

 

У меня одного

У меня одного при

PKG_PACKAGES="usbip"

USBIP_ENABLED=on

Не работате USB мышка или это так и задумано?

ИСПРАВЛЕНИЕ

ИСПРАВЛЕНИЕ ОШИБОК !!!!

Предыдущая сборка пакета была произведена с ошибками !!!!.

При сборке по ошибке использовал устаревшую среду сборки от Thinstation. В результате получил нестабильно работающий пакет (удивительно что он вообще заработал!!!)

 

Вобчем пересобрал пакет заново. Тех глюков по которым отписывался выше сам уже не наблюдаю (что не означает что не появится других). Но по крайней мере пакет уже не делает попыток перестать работать при каждом удобном случае, а работает стабильно.

Новый пакет можно забрать по этой ссылке.  http://files.mail.ru/NGRD4Z

В архив также вложил вспомогательные скрипты.

 

P.S про мышку ничего сказать не смогу не тестировал, не пробовал, под рукой мыши нет. Если разберетесь в причине отпишитесь самому интересно почему это происходит.

 

  Спасибо:

 

Спасибо:  roman_malyuti,  Важную работу делаете, дальнейших успехов! 

ИМХО: Мышь тут момент второстепенный(решаеться подбором 'железа', и т. п. ), главное 
чтобы выполнялась основная задача (проброс USB через IP для сканеров и winпринтеров ИМХО)! 

 

Спасибо, все

Спасибо, все работет. Пробовал:усб-мышь,флешка,hp1120mfp (печать и сканнер),незаработала вебкамера. Надеюсь теперь отпадут танцы с SANE и бубнами

  С новой

 

С новой версией мышка не отваливается, но и устройства не пристегиваются. 

На терминале

~# /usr/local/bin/bind_driver --list
List USB devices
 - busid 4-1 (0421:003b)
         4-1:1.0 -> usbip

 - busid 5-2 (046d:c00e)
         5-2:1.0 -> usbhid

#

На сервере 

C:\>usbip -l 172.16.10.22
usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 172.16.10.22 port 3240

usbip dbg: usbip_network.c: 249 (tcp_connect ) connected to 172.16.10.22:3240
- 172.16.10.22
usbip dbg:       usbip.c: 423 (query_exported_devices) exportable 1 devices
     4-1: unknown vendor : unknown product (0421:003b)
        : /sys/devices/pci0000:00/0000:00:1d.2/usb4/4-1
        : (Defined at Interface level) (00/00/00)
        :  0 - unknown class / unknown subclass / unknown protocol (08/06/50)

C:\>usbip -x 172.16.10.22
C:\>usbip -p
usbip err: usbip_vbus_ui.c:  49 (usbip_vbus_dev_node_name) usbvbus interface is
not registered

usbip err:       usbip.c: 374 (show_port_status) open vbus driver

C:\>

 

А драйвер

А драйвер ставили? , у меня с параметром -х не работает, только так usbip -а 172.16.10.22 4-1

А есть решения

А есть решения проблеммы "если неожиданно пропадаетс связь с машиной 'ip-thinstation' то на Windows устройство отображаетс как подключенное и зависает в таком состоянии."?

Отключать все порты не вариант.  для отключения нужного  порта надо как то передать номер порта в stdout, но не выходит, так как программа не закончила работу. Пробовал через нетстат определять номер процесса и убивать его, но он неубиваем.