Jump to content

USB устройство по сети (USBIP)


Recommended Posts

Снова попалось на глаза приложение USBIP для использования подключенных USB устройств в локальных сетях.

http://usbip.sourceforge.net

Необходимо установленный Entware плюс например отдельная flash USB (использовать подключенное устройство на котором стоит Entware нельзя так как данное устройство которое будет использовано для USBIP будет от монтировано от системы).

1. Включить в прошивке поддержку - " Модули ядра подсистемы USB over IP "

2. Загрузить модули поддержки

/ # insmod /lib/modules/3.4.113/usbip-core.ko
/ # insmod /lib/modules/3.4.113/usbip-host.ko

3. Для работы USBIP загрузить

/ # opkg list | grep usbip
usbip - 1.1.1-10a - USB-over-IP (common)
usbip-client - 1.1.1-10a - USB-over-IP (client)
usbip-server - 1.1.1-10a - USB-over-IP (server)
/ # opkg install usbip usbip-client usbip-server

usbip - находиться "libusbip", usbip-client находиться "usbip", usbip-server - находиться демон для сервера "usbipd"

4. Запустим на роутере демон и определимся с USB устройством

/ # df
Filesystem           1K-blocks      Used Available Use% Mounted on
...
/dev/sdb1            483392508  45263768 438128740   9% /tmp/mnt/01.....60
/dev/sdb2              4679210   1640294   2789265  37% /tmp/mnt/b7be...........01
/dev/sdb2              4679210   1640294   2789265  37% /opt
/dev/sda1             59475964   2488172  56987792   4% /tmp/mnt/22.....CB
/dev/sda2               928987    376545    502881  43% /tmp/mnt/34be...........01
/ # 

Будем использовать flash подключенную к USB2 порту, к USB3 подключен винт HDD

/opt/sbin # ./usbipd -D -d &
/opt/sbin # libusbip: debug: usbip_host_driver.c:189:[refresh_exported_devices] bind usbip-host.ko to a usb device to be exportable!

26585 root      6208 S    ./usbipd -D -d

Опция -D запуск демона, -d для отладки (потом можно отключить)

/opt/sbin # ./usbip list -l
Local USB devices
=================
 - busid 1-2 (13fe:5500)
         1-2:1.0 -> usb-storage

 - busid 2-1 (1f75:0621)
         2-1:1.0 -> usb-storage
/opt/sbin # 

Список устройств в системе для использования, но мы определись что использовать устройство flash на 1-2 (13fe:5500)

/opt/sbin # usbip bind -b 1-2
bind device on busid 1-2: complete
/opt/sbin # 

Делаем привязку данного устройства и в итоге 

/opt/sbin # df
Filesystem           1K-blocks      Used Available Use% Mounted on
...
/dev/sdb1            483392508  45263768 438128740   9% /tmp/mnt/01D....60
/dev/sdb2              4679210   1640299   2789260  37% /tmp/mnt/b7be.....401
/dev/sdb2              4679210   1640299   2789260  37% /opt
/opt/sbin # 

Настройки на роутере окончены

5. Приступим к Windows для работы необходимо я использовал две версии USBIP для Windows, т.е. установить драйвер  usbipenum для нужной windows

- https://sourceforge.net/projects/usbip/

скачал "usbip_windows_v0.2.0.0_signed.zip" взял из нее драйвера (установка в диспетчере через добавление устройства с выбранной папки - usbipenum_x...sys), сам релиз usbip не подойдет так как он v2, а установленный 1.1.1-10а

- https://www.dropbox.com/s/oox021z1d7zblmu/usbip.zip

скачал usbip.zip в которой релиз usbip запускается и стыкуется с версией на роутере

usbip.exe -a 192.168.1.1 1-2

После некоторого ожидания Windows определила подключенное устройство по USB и появился диск, как при обычном подключении устройства к USB. Скорости ниже, ну flash как бы не быстрая на запись/чтения. Попробовал запись/скопировать с данного устройства на Windows - все работает. Чтение было с нее 15МБ, запись на нее 4-5МБ.

6. Так же возможен доступ из вне к данному устройству, но тут не проверял так как нет в данном месте белого IP и на роутере нужно прописать правило в настройках "Межсетевой экран" взяв за основу

iptables -I INPUT -p tcp -m tcp --dport 3240 -j ACCEPT

ну т.е. в WEB разрешить TCP входящие на порт 3240.

 

Без имени-2.jpg

  • Thanks 1
  • Upvote 2
  • Y'r wrong 1
Link to comment
Share on other sites

  • 3 weeks later...

Пробовал не так давно этот метод расшаривания, у него есть один существенный не достаток: не более одного клиента.

Edited by Kiborg_Man
Опечатка
Link to comment
Share on other sites

  • 3 weeks later...

Интересное решение. Правда вижу только одно применение - постоянно примонтированный сетевой диск на телефоне. Так сказать доступ к домашнему файлохранилищу через постоянно установленный впн. 

Сейчас для этого приходится юзать фтп через ес проводник... Но это совсем другая история.

Link to comment
Share on other sites

В 19.02.2019 в 12:08, vasek00 сказал:

ну т.е. в WEB разрешить TCP входящие на порт 3240.

Проверил на рутере, включенном "подчиненным" в домашнюю сеть, все работает. Собственно, самое интересное для меня было - работа юсб-устройств через хаб. С флешками все ок. А вот ключи пока не попробовал. Думаю, что будет работать, но проверять надо уже в рабочих условиях, что не совсем просто :)

Спасибо за пост 👍

Link to comment
Share on other sites

23 часа назад, plagioklaz сказал:

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

У меня есть такой практический интерес - Кинетик + usb-хаб + пачка флешек/ключей в этот хаб. В этом случае при переезде систем с хоста на хост - не надо идти/ехать/лететь перетыкать флешки 😉

Link to comment
Share on other sites

  • 9 months later...
  • 2 months later...
В 10.01.2020 в 21:30, Павел сказал:

Доброго времени суток.

Интересно можно ли расшарить таким образом USB устройство (сканер например)?

 

Это не совсем правильный уровень решения проблемы, лучше sane.

  • Thanks 2
Link to comment
Share on other sites

2 минуты назад, Павел сказал:

А если нет поддержки сканера в Sane.....

Значит вам не повезло с softscaner-ом...

Link to comment
Share on other sites

14 часа назад, Павел сказал:

А если нет поддержки сканера в Sane....

Попробуйте VirtualHere. У меня МФУ HP два года так работает на ура.

  • Thanks 1
Link to comment
Share on other sites

3 часа назад, Игорь Слесаренко сказал:

Попробуйте VirtualHere. У меня МФУ HP два года так работает на ура.

Вы вот это имеете в виду:

VirtualHere USB Server ?

Link to comment
Share on other sites

  • 1 month later...
  • 7 months later...
В 26.04.2020 в 18:55, Александр Сухоруков сказал:

Похоже можно, если не одновременно. Подходит. Спасибо!

 

А Вы не могли бы подробно написать процесс установки и запуска с нуля данного ПО ? Спасибо.

Link to comment
Share on other sites

11 час назад, darut сказал:

А Вы не могли бы подробно написать процесс установки и запуска с нуля данного ПО ? Спасибо.

1. Подключаем к Keenetic USB HUB, в него включаем USB Flash (HDD) и сканер (МФУ, другое нужное устройство)
2. Устанавливаем Entware
3. Копируем в папку /opt/etc/init.d файл S80vhusbd (выкладывал ранее) и выставляем ему разрешения 755 (chmod 755 S80vhusbd)
4. Скачиваем virtualhere сервер для архитектуры mipsel (https://www.virtualhere.com/sites/default/files/usbserver/vhusbdmipsel) в папку /opt/home
5. Запускаем демон /opt/etc/init.d/S80vhusbd start
6. Посмотреть статус работы можно так: /opt/etc/init.d/S80vhusbd status
7. На комп с Windows, OSX, Linux устанавливаем клиент под нужную архитектуру (https://www.virtualhere.com/usb_client_software)
8. Настраиваем на клиенте адрес сервера 192.168.1.1:7575 (IP своего Keenetic, порт 7575)
9. В окне VirtualHere Client скрываем USB устройство с Entware (Игнорировать..) для предотвращения случайного его использования (чтобы Entware не уложить)
10. В окне VirtualHere Client выбираем и использум свой сканер (МФУ, другое нужное устройство), должно все работать как при прямом подключении в usb.

Edited by Игорь Слесаренко
  • Thanks 4
  • Upvote 1
Link to comment
Share on other sites

16 минут назад, Игорь Слесаренко сказал:

1. Подключаем к Keenetic USB HUB, в него включаем USB Flash (HDD) и сканер (МФУ, другое нужное устройство)
2. Устанавливаем Entware
3. Копируем в папку /opt/etc/init.d файл S80vhusbd (выкладывал ранее) и выставляем ему разрешения 755 (chmod 755 S80vhusbd)
4. Скачиваем virtualhere сервер для архитектуры mipsel (https://www.virtualhere.com/sites/default/files/usbserver/vhusbdmipsel) в папку /opt/home
5. Запускаем демон /opt/etc/init.d/S80vhusbd start
6. Посмотреть статус работы можно так: /opt/etc/init.d/S80vhusbd status
7. На комп с Windows, OSX, Linux устанавливаем клиент под нужную архитектуру (https://www.virtualhere.com/usb_client_software)
8. Настраиваем на клиенте адрес сервера 192.168.1.1:7575 (IP своего Keenetic, порт 7575)
9. В окне VirtualHere Client скрываем USB устройство с Entware (Игнорировать..) для предотвращения случайного его использования (чтобы Entware не уложить)
10. В окне VirtualHere Client выбираем и использум свой сканер (МФУ, другое нужное устройство), должно все работать как при прямом подключении в usb.

 

Спасибо Вам большое человеческое! Сегодня-завтра буду пробовать и отпишусь.

Link to comment
Share on other sites

  • 1 month later...

Здравствуйте!
Подскажите пожалуйста, правильно ли я понимаю:

1. Чтобы работал проброс usb надо ли, чтобы флешка с Entware была постоянно подключена к роутеру? 

2. Можно подключить usb концентратор (лучше с активным питанием) и пробрасывать через него несколько устройств?

 

Link to comment
Share on other sites

1 час назад, kumena сказал:

Здравствуйте!
Подскажите пожалуйста, правильно ли я понимаю:

1. Чтобы работал проброс usb надо ли, чтобы флешка с Entware была постоянно подключена к роутеру? 

2. Можно подключить usb концентратор (лучше с активным питанием) и пробрасывать через него несколько устройств?

 

1. Пока так, в будущем обещают возможность установки во внутреннюю память (на 2.16, говорят, уже можно, правда не для всех моделей).

2. Да, так. Если устройства с низким потреблением (флешка, принтер, сканер) то и без доп питания можно.

Link to comment
Share on other sites

  • 2 weeks later...

Для устройств с прошивками 3+ (kernel linux 4.9.x) добавлены пакеты "usbip2", "usbip2-client", "usbip2-server"

~ # lsusb | rev | grep gnus | rev
Bus 001 Device 023: ID 04e8:341b Samsung Electronics Co., Ltd SCX-4200 series
~ #
~ # usbip version
usbip (usbip-utils 2.0)
~ #
~ # usbip list -l
 - busid usb1 (1d6b:0002)
   Linux Foundation : 2.0 root hub (1d6b:0002)

 - busid usb2 (1d6b:0003)
   Linux Foundation : 3.0 root hub (1d6b:0003)

 - busid 1-2 (04e8:341b)
   Samsung Electronics Co., Ltd : SCX-4200 series (04e8:341b)

 - busid 1-1 (0781:5571)
   SanDisk Corp. : Cruzer Fit (0781:5571)

~ # usbip bind -b 1-2
usbip: info: bind device on busid 1-2: complete
~ #

 

Link to comment
Share on other sites

  • 4 weeks later...

Добрый день

On 2/12/2021 at 9:27 AM, TheBB said:

Для устройств с прошивками 3+ (kernel linux 4.9.x) добавлены пакеты "usbip2", "usbip2-client", "usbip2-server"

Модули ядра для usbip загружены

root@kn-1010:/lib/modules/4.9-ndm-4$ insmod /lib/modules/4.9-ndm-4/usbip-core.ko
root@kn-1010:/lib/modules/4.9-ndm-4$ insmod /lib/modules/4.9-ndm-4/usbip-host.ko
root@kn-1010:/lib/module/4.9-ndm-4s$ insmod /lib/modules/4.9-ndm-4/vhci-hcd.ko
root@kn-1010:/lib/modules/4.9-ndm-4$ lsmod | grep usbip
usbip_host 13415 0 - Live 0x894d4000
usbip_core 5530 2 vhci_hcd,usbip_host, Live 0x8cf28000
usbcore 138181 10 vhci_hcd,usbip_host,xhci_mtk,snd_usb_audio,usbextras,snd_usbmidi_lib,usbhid,usb_storage,usblp,xhci_hcd, Live 0x8d600000

Пакеты установлены версии 2 - "usbip2", "usbip2-client", "usbip2-server"

удаленный сервер Debian 10.8 c usbipd (usbip-utils 2.0) удачно отдает листинг устройств

root@kn-1010:/opt$ usbip list -r 192.168.1.2
Exportable USB devices
======================
 - 192.168.1.2
        2-1: JMicron Technology Corp. / JMicron USA Technology Corp. : unknown product (152d:9561)
           : /sys/devices/pci0000:00/0000:00:14.0/usb2/2-1
           : (Defined at Interface level) (00/00/00)

и при попытке коннекта получаю на кинетике

root@kn-1010:/opt$ usbip --debug attach -r 192.168.1.2 -b 2-1
usbip: debug: usbip.c:141:[run_command] running command: `attach'
libusbip: debug: vhci_driver.c:242:[usbip_vhci_driver_open] available ports: 0
usbip: error: open vhci_driver
usbip: error: query

на сервере в логе usbipd

usbipd: info: connection from 192.168.1.1:51560
usbipd: info: received request: 0x8003(5)
usbipd: info: found requested device: 2-1
usbip: info: connect: 2-1
usbipd: info: request 0x8003(5): complete

Будьте добры, подскажите где я неправ и куда копать? Спасибо :)

Edited by Denys Kyselov
add debug info at attach command
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...