Page 1 of 13 12311 ... LastLast
Results 1 to 15 of 185

Thread: Проброс USB через TCP/IP (USB/IP) - подключение принтера (МФУ)

  1. #1

    Exclamation Проброс USB через TCP/IP (USB/IP) - подключение принтера (МФУ)

    Коллеги, начиная с сегодняшней ревизии r2486 прошивка rtn поддерживает работу USB/IP, что позволяет, к примеру, печатать на принтерах, у которых нет в природе портированных на Linux драйверов.

    В сегодняшней стадии проект USB/IP имеет ряд ограничений на работу с некоторыми составными USB-устройствами. Протестированы ряд USB-устройств. Успешно:
    • USB-HDD. Скорость чтения и записи составила ~5,5МБ/с при загрузке CPU ~60%,
    • Принтер Canon с драйверами CARPS,
    • Bluetooth dongle D-Link DBT-122,
    • Мышка.

    Не завелись:

    Для того, чтобы использовать USB/IP необходимо настроить серверную часть на роутере и клиентскую на том ПК, где интересна работа подключенного к роутеру USB-устройства.

    1. Настройка серверной части.
    Серверная часть состоит из двух модулей ядра и userspace демона.
    1.1. Модули ядра USB/IP находятся в архиве модулей прошивки modules-1.9.2.7-rtn-rХХХХ.tgz.
    Раньше было необходимо их извлечь на роутер и подгрузить:
    Code:
    $ cd /opt
    $ wget ftp://core.dumped.ru/rt-n/2486/modules-1.9.2.7-rtn-r2486.tar.gz
    $ tar -xzvf ./modules-1.9.2.7-rtn-r2486.tar.gz
    $ modprobe usbip
    Сейчас в самой прошивке есть все необходимые модули, то есть если у вас не подключена флешка,
    метод подойдет, даже на только что прошитом устройстве, вот как можно подгрузить модули:
    Code:
    insmod /lib/modules/2.6.22.19/usbip-core.ko
    insmod /lib/modules/2.6.22.19/usbip-host.ko 
    usbip bind -b 2-1
    usbipd -D
    1.2. Userspace демон собран в виде пакета.
    Можно подключить соответствующий репозиторий и больше не заботиться о его ручном обновлении.
    Для этого необходимо добавить следующие строчки в файл /opt/etc/ipkg.conf:
    Code:
    src/gz wl500g-d http://wl500g.googlecode.com/svn/ipkg/optware-d
    src/gz wl500g-optware http://wl500g.googlecode.com/svn/ipkg/optware
    и выполнить установку демона:
    Code:
    $ ipkg install usbip
    Запуск серверной части:
    Code:
    $ usbipd -D
    Далее необходимо посмотреть список подключенных устройств. В целях предосторожности рекомендую
    нужное устройство пока не подключать, а посмотреть перечень устройств, которые можно экспортировать:
    Code:
    $ usbip_bind_driver --list
    List USB devices
     - busid 1-1 (04fc:0c25)
             1-1:1.0 -> usb-storage
    Единственное устройство 1-1 - это жёсткий диск роутера. Теперь подключаем нужное USB-устройство:
    Code:
    $ usbip_bind_driver --list
    List USB devices
     - busid 2-2 (2001:f111)
             2-2:1.0 -> none
             2-2:1.1 -> none
             2-2:1.2 -> none
    
     - busid 1-1 (04fc:0c25)
             1-1:1.0 -> usb-storage
    Видно, что теперь подключено устройство 2-2. Теперь необходимо сделать это устройство доступным на клиенте:
    Code:
    $ usbip_bind_driver --usbip 2-2
    2. Настройка клиента.
    Клиент для Linux есть в пакетах большинства популярных дистрибутивов.
    Клиента для Windows можно взять здесь. Далее на примере Windows.
    2.1. Устанавливаем необходимый драйвер-перечислитель из файла USBIPEnum.inf. При успешной установке в диспетчере устройств должно появиться устройство "Virtual USB Bus Enumerator" в разделе "Системные устройства".
    2.2. Работаем с userspace-частью. Любой запуск usbip.exe необходимо выполнять от имени пользователя с правами локального администратора.
    Смотрим какие устройства экспортированы сервером:
    Code:
    C:\usbip>usbip.exe -l 192.168.0.1
    usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 192.168.0.1 port 3240
    
    usbip dbg: usbip_network.c: 249 (tcp_connect ) connected to 192.168.0.1:3240
    - RTRouter
    usbip dbg:       usbip.c: 423 (query_exported_devices) exportable 1 devices
         2-2: unknown vendor : unknown product (2001:f111)
            : /sys/devices/pci0000:00/0000:00:04.0/usb2/2-2
            : unknown class / unknown subclass / unknown protocol (e0/01/01)
            :  0 - unknown class / unknown subclass / unknown protocol (e0/01/01)
            :  1 - unknown class / unknown subclass / unknown protocol (e0/01/01)
            :  2 - unknown class / unknown subclass / unknown protocol (ff/ff/ff)
    Видим ранее экспортированное устройство 2-2. Теперь подключаем его:
    Code:
    C:\usbip>usbip.exe -a 192.168.0.1 2-2
    usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 192.168.0.1 port 3240
    
    usbip dbg: usbip_network.c: 249 (tcp_connect ) connected to 192.168.0.1:3240
    usbip dbg:       usbip.c: 147 (query_interface0) exportable 1 devices
    usbip dbg:       usbip.c: 164 (query_interface0)      2-2: unknown vendor : unknown product (2001:f111)
    usbip dbg:       usbip.c: 165 (query_interface0)         : /sys/devices/pci0000:00/0000:00:04.0/usb2/2-2
    usbip dbg:       usbip.c: 166 (query_interface0)         : unknown class / unknown subclass / unknown protocol (e0/01/01)
    usbip dbg:       usbip.c: 186 (query_interface0)         :  0 - unknown class /unknown subclass / unknown protocol (e0/01/01)
    usbip dbg:       usbip.c: 186 (query_interface0)         :  1 - unknown class /unknown subclass / unknown protocol (e0/01/01)
    usbip dbg:       usbip.c: 186 (query_interface0)         :  2 - unknown class /unknown subclass / unknown protocol (ff/ff/ff)
    usbip dbg:       usbip.c: 189 (query_interface0)
    usbip dbg: usbip_network.c: 229 (tcp_connect ) trying 192.168.0.1 port 3240
    
    usbip dbg: usbip_network.c: 249 (tcp_connect ) connected to 192.168.0.1:3240
    call from attch here
    
    return from attch here
    
    devfd:0022FF0C
    
    new usb device attached to usbvbus port 1
    После чего должен появиться диалог установки драйвера устройства, подключенного к роутеру. Устройство будет видно в диспетчере оборудования, будто оно подключено не к роутеру, а к windows-ПК. Запущенный процесс usbip.exe является маршрутизатором. Он необходим на всём протяжении использования USB-устройства. Не закрывайте окошко с запущенным usbip.exe!

    3. Завершение работы.
    Чтобы завершить работу gracefully, необходимо перечисленные выше действия выполнить в обратном порядке.
    3.1. На стороне клиента отключаем устройство, для чего в новом окне выполняем:
    Code:
    C:\usbip>usbip.exe -d 2-2
    3.2. На стороне сервера (роутера) сначала отключаем драйвер USB/IP от USB устройства:
    Code:
    $ usbip_bind_driver --other 2-2
    ** (process:385): DEBUG: write "del 2-2" to /sys/bus/usb/drivers/usbip/match_busid
    ** Message: bind 2-2 to other drivers than usbip, complete!
    Затем останавливаем демона:
    Code:
    $ killall usbipd
    4. Примечания.
    Можно сразу подключить нужное USB-устройство и сделать один раз usbip_bind_driver --list. Я это делаю дважды для того, чтобы не "отпилить сук, на котором сидишь". Один раз я случайно экспортировал свой USB-HDD роутера, тем самым моментально подменив модуль usb-storage модулем usbip при выполнении команды usbip_bind_driver --usbip 1-1. Нетрудно догадаться, что диск тут же стал недоступен.


    Работа по допиливанию USB/IP всецело велась тов. theMIROn и lly, за что им низкий поклон.
    Last edited by Omega; 05-07-2015 at 18:48. Reason: 2 post merged

  2. #2
    Блютуф-адаптер в роутере, музыка на компе, комп по вайфай к роутеру, Блютуф-наушники на голове.
    Роутер Deluxe. Адаптер пока не купил, подскажите, реально завести систему?

    * В принципе, если плеер, дрова БТ и сам БТ на 1 машине, то могу сделать.
    А можно ли пробросить чтото типа USBoverLAN

    Вот нашел по теме.. оказывается и протокол USB\IP (USB over IP) есть уже
    http://www.usb-over-network.com/
    http://usbip.naist.jp/
    Last edited by Omega; 20-01-2011 at 08:20. Reason: 2 post merged
    Sorry for my bad English.
    Покупайте Отечественных Слонов!!!

  3. #3
    Join Date
    Mar 2005
    Location
    Russia, Sankt-Peterburg
    Posts
    177
    это для 2.6.15 ядра в роутере 2.4.20

    и сам ты в линухе как ?? есть хоть что-нибуть откомпиленное ?

  4. #4
    В линухе я ой хреново. Но интересует больше всего: есть ли похожие проекты, где есть сервер(USB-BT) под линух, а клиент под винду(VIrt USB)
    Sorry for my bad English.
    Покупайте Отечественных Слонов!!!

  5. #5

    USB-over-IP возможно?

    есть подобное устройство:
    http://www.lantronix.com/device-netw...vers/ubox.html

    возможно ли такое с помощью WL500gP или WL500w
    можно ли попросить портировать подобный модуль на эти девайсы...

    Думаю много кто скажет спасибо...

  6. #6
    Join Date
    Oct 2006
    Location
    Russia, Kursk
    Posts
    74

    Unhappy

    Quote Originally Posted by sbhidden View Post
    возможно ли такое с помощью WL500gP или WL500w
    можно ли попросить портировать подобный модуль на эти девайсы...

    Думаю много кто скажет спасибо...

    Эххх. Не "тереби душу", многие проблемы были бы сняты - типа принт-сервера на принтеры Canon LAPT.... или аудио устройств всяких....

  7. #7
    Кстати, как раз аудиоустройства с этой железкой и не работают - isochronous transfer там не поддерживается.

    Основная проблема в том, что сетевой протокол этого ubox и других подобных устройств нестандартный и недокументированный. Есть открытая разработка - http://usbip.naist.jp/ (где вроде бы сумели запустить в таком режиме даже веб-камеру), в данном случае проблем с недокументированным протоколом нет, но нет и драйверов для Windows - т.е., подключиться к USB-устройству получится только с машины с Linux.

  8. #8
    есть еще ссылки типа такого

    http://www.mysoftoday.com/usb_over_network_p21748.html

    есть:
    1. Софт от девайса...
    2.Одна из разработок в исходниках
    3.Ещё нашел такое
    4.здесь вот что-то есть...

    может оно чем-то поможет???
    сам-то линух только начинаю осваивать...

  9. #9

    Проброс USB через TCP/IP

    http://www.intellidriver.com/product...a362eacbcee804
    Может кто знает, есть ли какой то аналог такому драйверу в Linux?

  10. #10
    Аналоги есть, но на обсуждаемом в этом месте железе, полноценного "usb share" получить крайне проблематично. Кстати, хочу обратить внимание что поддержка USB 2.0 при full throttle так же проблематична.Самый простой способ если это касается ветки storage просто или через самбу расшарить подключенный девайс или через NFS. Прочие устройства требующих спец. дров - мимо кассы.

  11. #11
    Спасиб. Раз так - забью на это дело.

  12. #12
    Забивать не стоит, но оценить силы, сложноть реализации стоит.

  13. #13
    http://www.google.ru/search?hl=ru&q=usb+over+ip&lr=
    Это называлось когда-то USB/IP, USBIP, USB over Network,...
    Sorry for my bad English.
    Покупайте Отечественных Слонов!!!

  14. #14
    Quote Originally Posted by MMike View Post
    Аналоги есть
    какие? а то я как-то собирался писать (благо достаточно было к libusb какой-нибудь rpc приделать), потом потребность отпала.

  15. #15
    Посмотрите на то что производит компания Moxa...

Page 1 of 13 12311 ... LastLast

Similar Threads

  1. Подключение сканера и МФУ к роутеру Asus
    By Scasius in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 204
    Last Post: 28-07-2019, 20:41
  2. Подключение USB HDD для новичков
    By NinJah in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 262
    Last Post: 26-03-2016, 09:33
  3. Подключение USB принтера HP к WL-500gP
    By toto in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 152
    Last Post: 08-05-2012, 22:09
  4. Replies: 84
    Last Post: 26-07-2011, 17:38
  5. Подключение WL-500gP по PPTP
    By Pavel in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 221
    Last Post: 13-11-2008, 12:25

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •