Понекогаш сакате да работите со уред поврзан преку USB без да го држите на масата до вашиот лаптоп. Мојот уред е кинески гравер со ласер од 500 mW, што е прилично непријатно кога е во близок контакт. Покрај непосредната опасност за очите, за време на ласерската работа се ослободуваат и токсични производи за согорување, така што уредот треба да се наоѓа на добро проветрено место и по можност изолиран од луѓе. Како можете да контролирате таков уред? Случајно го најдов одговорот на ова прашање додека го прелистував складиштето OpenWRT со надеж дека ќе најдам достојна употреба за стариот D-Link DIR-320 A2 рутер. За да се поврзам, решив да го користам претходно опишаниот на Хабре. USB преку IP тунел, сепак, сите упатства за негово инсталирање ја изгубија својата важност, па затоа пишувам мое.
OpenWRT е оперативен систем на кој не му треба вовед, па затоа нема да ја опишам неговата инсталација. За мојот рутер, го зедов најновото стабилно издание на OpenWrt 19.07.3 и го поврзав со главната пристапна точка за Wi-Fi како клиент, избирајќи го режимот LAN, за да не се измачува заштитниот ѕид.
Серверски дел
Ние постапуваме според
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
Значи, прво бараат да се инсталира сертификатот, и тоа двапати. Добро, ајде да го ставиме во органот за сертификација на доверливи корени и доверливите издавачи.
Следно, треба да го ставите оперативниот систем во режим на тестирање. Ова го прави тим
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 го реши проблемот.
Крајна линија: граверот прави врева и пуши во кујната со отворен прозорец и затворена врата, јас го гледам процесот на горење од друга просторија преку мојот сопствен софтвер, кој не чувствува улов.
Користени извори:
Извор: www.habr.com