Үйдө IP аркылуу USB

Кээде USB аркылуу туташкан аппаратты ноутбуктун жанындагы столдун үстүнө койбостон иштегиңиз келет. Менин аппаратым 500 мВт лазери бар кытай оюучусу, бул тыгыз байланышта болгондо абдан жагымсыз. Көзгө түздөн-түз коркунуч туудургандан тышкары, лазердик операция учурунда күйүүчү уулуу продуктулар бөлүнүп чыгат, ошондуктан аппарат жакшы желдетилген жерде, ал эми адамдардан обочолонгон болушу керек. Мындай аппаратты кантип башкара аласыз? Мен эски D-Link DIR-320 A2 роутери үчүн татыктуу колдонууну табуу үмүтү менен OpenWRT репозиторийлерин карап жатып, кокусунан бул суроого жооп таптым. Туташуу үчүн, мен мурда Хабреде сүрөттөлгөндү колдонууну чечтим. USB аркылуу IP туннели, бирок, аны орнотуу боюнча бардык көрсөтмөлөр актуалдуулугун жоготкон, ошондуктан мен өзүмдү жазып жатам.

OpenWRT - бул киргизүүнү талап кылбаган операциялык система, андыктан анын орнотулушун сүрөттөп бербейм. Менин роутерим үчүн мен OpenWrt 19.07.3 акыркы туруктуу версиясын алып, режимди тандап, кардар катары аны негизги Wi-Fi кирүү чекитине туташтырдым. Лан, брандмауэрди кыйнабаш үчүн.

Сервер бөлүгү

ылайык иш кылабыз расмий көрсөтмөлөр. 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 сайтындагы жипке шилтеме берилген, ал 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 кардарынын учурдагы өнүгүшүнө туш болдум Github. Макул, Windows 10 x64 үчүн колдоо көрсөтүлгөн, бирок кардар бир гана сыноо кардары, ошондуктан бир катар чектөөлөр бар.

Ошентип, алгач алар сертификатты орнотуп берүүнү суранышат жана эки жолу. Макул, келгиле, аны Ишенимдүү Root Certification Authority жана Ишенимдүү Жарыялоочуларга коелу.

Андан кийин, сиз операциялык системаны сыноо режимине коюшуңуз керек. Бул команда тарабынан ишке ашырылат

bcdedit.exe /set TESTSIGNING ON

Биринчи жолу ийгиликке жеткен жокмун, жолго чыктым коопсуз жүктөө. Аны өчүрүү үчүн UEFIге кайра жүктөө жана коопсуз жүктөөнү өчүрүү үчүн орнотуу керек. Кээ бир ноутбук моделдери супервайзердин сырсөзүн орнотууну талап кылышы мүмкүн.

Андан кийин, Windows'ту жүктөө жана аткарыңыз bcdedit.exe / TESTSIGNING ON
Винда баары жакшы дейт. Кайрадан өчүрүп күйгүзөбүз жана ылдыйкы оң бурчта Сыноо режими, версия жана ОС куруу номери деген сөздөрдү көрөбүз.

Бул манипуляциялардын баары эмне үчүн? Кол коюлбаган драйверди орнотуу үчүн 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

Source: www.habr.com

Комментарий кошуу