Երբեմն ցանկանում եք աշխատել USB-ի միջոցով միացված սարքի հետ՝ առանց այն պահելու ձեր նոութբուքի կողքին գտնվող սեղանին: Իմ սարքը չինական փորագրիչ է՝ 500 մՎտ լազերային հզորությամբ, որը բավականին տհաճ է սերտ շփման ժամանակ։ Աչքերին անմիջական վտանգից բացի, լազերային շահագործման ընթացքում արտանետվում են թունավոր այրման արտադրանք, ուստի սարքը պետք է տեղակայվի լավ օդափոխվող տարածքում և գերադասելի է մեկուսացված լինի մարդկանցից: Ինչպե՞ս կարող եք կառավարել նման սարքը: Ես պատահաբար գտա այս հարցի պատասխանը OpenWRT պահեստը զննարկելիս՝ հին D-Link DIR-320 A2 երթուղիչի համար արժանի կիրառություն գտնելու հույսով: Միանալու համար ես որոշեցի օգտագործել Habré-ում ավելի վաղ նկարագրվածը: USB-ի միջոցով IP թունել, այնուամենայնիվ, այն տեղադրելու բոլոր հրահանգները կորցրել են իրենց արդիականությունը, ուստի ես գրում եմ իմ սեփականը:
OpenWRT-ն օպերացիոն համակարգ է, որը ներածման կարիք չունի, ուստի ես չեմ նկարագրի դրա տեղադրումը: Իմ երթուղիչի համար ես վերցրեցի OpenWrt 19.07.3-ի վերջին կայուն թողարկումը և որպես հաճախորդ միացրի այն հիմնական Wi-Fi մուտքի կետին՝ ընտրելով ռեժիմը: LAN, որպեսզի չտանջեն firewall-ը։
Սերվերի մաս
Մենք գործում ենք ըստ
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. Հիշիր.
Հիմա եկեք սկսենք deemon-ը.
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-ում գտնվող թեմային, որն առաջարկում է Dropbox-ից ներբեռնել 2014 թվականին կարկատված դրայվերը։ Երբ մենք փորձում ենք այն գործարկել 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 հաճախորդի ընթացիկ զարգացմանը
Այսպիսով, նախ խնդրում են տեղադրել վկայականը, այն էլ՝ երկու անգամ։ Լավ, եկեք այն դնենք Trusted Root Certification Authority-ում և Trusted Publishers-ում:
Հաջորդը, դուք պետք է օպերացիոն համակարգը դնեք փորձարկման ռեժիմի: Դա արվում է թիմի կողմից
bcdedit.exe /set TESTSIGNING ON
Առաջին անգամ չստացվեց, ճանապարհ ընկա անվտանգ բեռնախցիկ. Այն անջատելու համար դուք պետք է վերագործարկեք UEFI-ն և կարգավորեք անվտանգ բեռնումը անջատելու համար: Նոթբուքերի որոշ մոդելներ կարող են պահանջել վերահսկիչի գաղտնաբառ սահմանել:
Դրանից հետո բեռնեք Windows-ը և կատարեք bcdedit.exe /set TESTSIGNING ON
Վիդան ասում է, որ ամեն ինչ կարգին է: Մենք նորից վերաբեռնում ենք, և ներքևի աջ անկյունում տեսնում ենք Test Mode, version և OS build number բառերը:
Ինչի՞ համար են այս բոլոր մանիպուլյացիաները։ Չստորագրված դրայվեր տեղադրելու համար 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-ի միջոցով միացնելը լուծեց խնդիրը:
Ներքևի գիծ. փորագրիչը աղմուկ է բարձրացնում և ծխում խոհանոցում՝ բաց պատուհանով և դուռը փակ, ես դիտում եմ այրման ընթացքը մեկ այլ սենյակից իմ սեփական ծրագրաշարի միջոցով, որը բռնում չի զգում:
Օգտագործված աղբյուրներ.
Source: www.habr.com