Үйде IP арқылы USB

Кейде сіз USB арқылы қосылған құрылғымен ноутбуктің жанындағы үстелде ұстамай жұмыс істегіңіз келеді. Менің құрылғым - 500 мВт лазері бар қытайлық гравера, бұл жақын байланыста болған кезде өте жағымсыз. Көзге тікелей қауіптен басқа, лазермен жұмыс істегенде улы жану өнімдері шығарылады, сондықтан құрылғы жақсы желдетілетін жерде және жақсырақ адамдардан оқшауланған болуы керек. Мұндай құрылғыны қалай басқаруға болады? Мен ескі D-Link DIR-320 A2 маршрутизаторына лайықты пайдалануды табамын деген үмітпен OpenWRT репозиторийін шолу кезінде бұл сұрақтың жауабын кездейсоқ таптым. Қосылу үшін мен бұрын Хабреде сипатталғанды ​​пайдалануды шештім. 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-fbsd.
Біз репозиторийден соңғы жұмыс нұсқасын қолмен шығарамыз 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 хабына қосылған қытайлық азамат бсуид алды 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

Құрылғыны одан әрі автоматты түрде байланыстыру үшін өңдейік /etc/rc.localалдында қосу арқылы 0 шығу Мынадай:

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

Клиент бөлігі

Openwrt.org сайтындағы жоғарыдағы нұсқауларды пайдаланып құрылғыны Windows 10 жүйесіне қосуға тырысайық. Мен бірден айтамын: идея сәтсіздікке ұшырайды. Біріншіден, тек 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 нұсқасынан ескі ядроға арналған сервермен жұмыс істемейтініне байланысты.
OpenWRT 19.07.3 үшін usbip сервері 4.14.180 ядросында құрылған.

Іздеуді жалғастыра отырып, мен Windows клиентінің қазіргі дамуын кездестірдім GitHub. Жарайды, Windows 10 x64 жүйесіне қолдау көрсетіледі, бірақ клиент тек сынақ клиенті болып табылады, сондықтан бірқатар шектеулер бар.

Сонымен, олар алдымен сертификатты орнатуды сұрайды және екі рет. Жарайды, оны сенімді түбірлік сертификаттау орталығына және сенімді баспагерлерге орналастырайық.

Содан кейін операциялық жүйені сынақ режиміне қою керек. Мұны команда жасайды

bcdedit.exe /set TESTSIGNING ON

Мен бірінші рет үлгермедім, мен жолға түстім қауіпсіз жүктеу. Оны өшіру үшін UEFI жүйесінде қайта жүктеп, қауіпсіз жүктеуді өшіру үшін орнату керек. Кейбір ноутбук үлгілері супервайзер құпия сөзін орнатуды қажет етуі мүмкін.

Осыдан кейін Windows жүйесін жүктеп, орындаңыз bcdedit.exe /ТЕКСЕРУ ҚОСУ
Винда бәрі жақсы дейді. Біз қайта жүктейміз және төменгі оң жақ бұрышта Test Mode, нұсқасы және ОЖ құрастыру нөмірі сөздерін көреміз.

Бұл манипуляциялардың барлығы не үшін? Қол қойылмаған драйверді орнату үшін 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 идентификаторы дерекқорын ашу мүмкін болмады Біз назар аудармаймыз, бұл жұмысқа әсер етпейді.

Енді біз құрылғыны байланыстырамыз:

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

пікір қалдыру