USB тавассути IP дар хона

Баъзан шумо мехоҳед, ки бо дастгоҳе, ки тавассути USB пайваст аст, бидуни нигоҳ доштани он дар сари миз дар паҳлӯи ноутбукатон кор кунед. Дастгоҳи ман кандакори чинӣ бо лазери 500 мВт мебошад, ки ҳангоми тамоси наздик хеле ногувор аст. Илова ба хатари фаврӣ ба чашм, ҳангоми амалиёти лазерӣ маҳсулоти сӯзишвории заҳролуд ба вуҷуд меоянд, аз ин рӯ дастгоҳ бояд дар ҷои хуб вентилятсия ва беҳтараш аз одамон ҷудо карда шавад. Чӣ тавр шумо чунин дастгоҳро идора карда метавонед? Ман тасодуфан ба ин савол ҳангоми дидани анбори OpenWRT бо умеди дарёфти истифодаи муносиб барои роутери кӯҳнаи D-Link DIR-320 A2 ҷавоб ёфтам. Барои пайваст шудан, ман қарор додам, ки он чизеро, ки дар Habré дар боло тавсиф шудааст, истифода барам. 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

холӣ.

Бо ҷустуҷӯи гугл гунаҳкор пайдо шуд, он китобхона будааст либудев-фбсд.
Мо версияи охирини кории худро аз анбор дастӣ мебарорем либудев_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

Барои ба таври худкор пайваст кардани дастгоҳ, биёед таҳрир кунем /etc/rc.localбо илова кардани пеш баромадан 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 рӯ ба рӯ мешавам Гитуб. Хуб, дастгирӣ барои Windows 10 x64 гуфта шудааст, аммо муштарӣ танҳо муштарии санҷишӣ аст, бинобар ин як қатор маҳдудиятҳо мавҷуданд.

Ҳамин тавр, аввал онҳо мепурсанд, ки сертификатро насб кунанд ва ду маротиба. Хуб, биёед онро ба Идораи сертификатсияи решавӣ ва ноширони боэътимод гузорем.

Баъдан, шумо бояд системаи амалиётиро ба ҳолати санҷиш гузоред. Инро як даста анҷом медиҳад

bcdedit.exe /set TESTSIGNING ON

Бори аввал муяссар нашуд, садди роҳ шудам пурборшаванда эмин. Барои хомӯш кардани он, шумо бояд ба UEFI аз нав бор кунед ва пурборкунии бехатарро хомӯш кунед. Баъзе моделҳои ноутбук метавонанд насб кардани пароли супервайзерро талаб кунанд.

Пас аз он, ба Windows бор кунед ва иҷро кунед bcdedit.exe / Танзими TESTSIGNING ON
Винда мегӯяд, ки ҳама чиз хуб аст. Мо дубора аз нав оғоз мекунем ва мо дар кунҷи рости поёни навиштаҷоти Реҷаи санҷиш, версия ва рақами сохтани OS-ро мебинем.

Ҳамаи ин манипуляцияҳо барои чӣ кор мекунанд? Барои насб кардани драйвери имзонашуда 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

Манбаъ: will.com

Илова Эзоҳ