USB преку IP дома

Понекогаш сакате да работите со уред поврзан преку USB без да го држите на масата до вашиот лаптоп. Мојот уред е кинески гравер со ласер од 500 mW, што е прилично непријатно кога е во близок контакт. Покрај непосредната опасност за очите, за време на ласерската работа се ослободуваат и токсични производи за согорување, така што уредот треба да се наоѓа на добро проветрено место и по можност изолиран од луѓе. Како можете да контролирате таков уред? Случајно го најдов одговорот на ова прашање додека го прелистував складиштето OpenWRT со надеж дека ќе најдам достојна употреба за стариот D-Link DIR-320 A2 рутер. За да се поврзам, решив да го користам претходно опишаниот на Хабре. USB преку IP тунел, сепак, сите упатства за негово инсталирање ја изгубија својата важност, па затоа пишувам мое.

OpenWRT е оперативен систем на кој не му треба вовед, па затоа нема да ја опишам неговата инсталација. За мојот рутер, го зедов најновото стабилно издание на OpenWrt 19.07.3 и го поврзав со главната пристапна точка за Wi-Fi како клиент, избирајќи го режимот LAN, за да не се измачува заштитниот ѕид.

Серверски дел

Ние постапуваме според официјални упатства. Откако ќе се поврзете преку ssh, инсталирајте ги потребните пакети.

root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-usb-ohci usbip-server usbip-client

Следно, го поврзуваме нашиот уред со USB-портата на рутерот (во мојот случај, уреди: USB-хаб, флеш-уред на кој е монтиран датотечен систем на рутерот (поради недостаток на простор на внатрешната меморија) и, директно, гравер).

Ајде да се обидеме да прикажеме список на поврзани уреди:

root@OpenWrt:~# usbip list -l

Празен.

Со гуглање е пронајден виновникот, се испоставило дека е библиотека либудев-фбсд.
Рачно ја извлекуваме најновата работна верзија од складиштето libudev_3.2-1 од изданието OpenWRT 17.01.7 за вашата архитектура, во мојот случај тоа е libudev_3.2-1_mipsel_mips32.ipk. Користејќи wget/scp, преземете го во меморијата на рутерот и повторно инсталирајте го

root@OpenWrt:~# opkg remove --force-depends libudev-fbsd
root@OpenWrt:~# opkg install libudev_3.2-1_mipsel_mips32.ipk

Проверка:

root@OpenWrt:~# usbip list -l
 - busid 1-1.1 (090c:1000)
   Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) : Flash Drive (090c:1000)

 - busid 1-1.4 (1a86:7523)
   QinHeng Electronics : HL-340 USB-Serial adapter (1a86:7523)

Кинез приклучен на USB-хаб доби bsuid 1-1.4. Запомнете.

Сега да го започнеме демонот:

root@OpenWrt:~# usbipd -D

и ги врзува Кинезите

root@OpenWrt:~# usbip bind -b 1-1.4
usbip: info: bind device on busid 1-1.4: complete

Ајде да провериме дали сè работи:

root@OpenWrt:/home# netstat -alpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3240            0.0.0.0:*               LISTEN      1884/usbipd

За дополнително поврзување на уредот автоматски, ајде да уредиме / и друго / локалносо додавање пред излез 0 Следново:

usbipd -D &
sleep 1
usbip bind -b 1-1.4

Клиентска страна

Ајде да се обидеме да го поврземе уредот со Windows 10 користејќи ги горенаведените упатства од openwrt.org. Веднаш ќе кажам: идејата е осудена на неуспех. Прво, се разгледува само Windows 7 x64. Второ, даден е линк до темата на sourceforge.net, која сугерира преземање на драјвер закрпен во 2014 година од Dropbox. Кога се обидуваме да го извршиме под Windows 10 и да се поврземе со нашиот уред, ја добиваме следнава грешка:

c:Utilsusbip>usbip -a 192.168.31.203 1-1.4
usbip for windows ($Id$)

*** ERROR: cannot find device

Ова се должи на фактот што клиентот не работи со сервер изграден за кернел постар од верзијата 3.14.
Серверот usbip за OpenWRT 19.07.3 е изграден на јадрото 4.14.180.

Продолжувајќи со моето пребарување, наидувам на тековниот развој на клиент за Windows github. Ок, наведена е поддршка за Windows 10 x64, но клиентот е само тест-клиент, така што има голем број ограничувања.

Значи, прво бараат да се инсталира сертификатот, и тоа двапати. Добро, ајде да го ставиме во органот за сертификација на доверливи корени и доверливите издавачи.

Следно, треба да го ставите оперативниот систем во режим на тестирање. Ова го прави тим

bcdedit.exe /set TESTSIGNING ON

Не успеав првиот пат, ми пречеше безбедно подигање. За да го оневозможите, треба да се рестартирате во UEFI и да поставите безбедно подигање да се оневозможи. Некои модели на лаптоп може да бараат поставување лозинка за надзорникот.

После тоа, подигнете се во Windows и направете bcdedit.exe /постави ВКЛУЧЕНО ТЕСТИРАЊЕ
Винда вели дека се е во ред. Повторно се рестартираме и во долниот десен агол ги гледаме зборовите Тест режим, верзија и број на градба на ОС.

За што се сите овие манипулации? За да инсталирате непотпишан драјвер USB/IP VHCI. Се предлага да го направите ова со преземање на датотеките usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat и со администраторски права

usbip.exe install

или вториот метод, рачно инсталирање на Legacy Hardware. Ја избрав втората опција, добив предупредување за инсталирање непотпишан драјвер и се согласив со тоа.

Следно, проверуваме дали имаме можност да се поврземе со оддалечен USB-уред со извршување на командата:

usbip.exe list -r <ip вашего роутера>

добиваме список на уреди:

c:Utilsusbip>usbip.exe list -r 192.168.31.203
usbip: error: failed to open usb id database
Exportable USB devices
======================
 - 192.168.31.203
      1-1.4: unknown vendor : unknown product (1a86:7523)
           : /sys/devices/ssb0:1/ehci-platform.0/usb1/1-1/1-1.4
           : unknown class / unknown subclass / unknown protocol (ff/00/00)

за грешка usbip: грешка: не успеа да ја отвори базата на податоци за USB id Не обрнуваме внимание, тоа не влијае на работата.

Сега го врзуваме уредот:

c:Utilsusbip>usbip.exe attach -r 192.168.31.203 -b 1-1.4

Тоа е тоа, Windows откри нов уред, сега можете да работите со него како да е физички поврзан со лаптопот.

Морав малку да патам со кинескиот гравер, бидејќи кога се обидов да го инсталирам неговиот двигател CH341SER преку инсталаторот што доаѓа со граверот (да, гравер на Arduino), USB/IP VHCI го испушти Windows во BSOD. Сепак, инсталирање на двигателот CH341SER да поврзувањето на уредот преку usbip.exe го реши проблемот.

Крајна линија: граверот прави врева и пуши во кујната со отворен прозорец и затворена врата, јас го гледам процесот на горење од друга просторија преку мојот сопствен софтвер, кој не чувствува улов.

Користени извори:

https://openwrt.org/docs/guide-user/services/usb.iptunnel
https://github.com/cezanne/usbip-win

Извор: www.habr.com

Додадете коментар