Uyda IP orqali USB

Ba'zan siz USB orqali ulangan qurilma bilan noutbuk yonidagi stolda saqlamasdan ishlashni xohlaysiz. Mening qurilmam 500 mVt lazerli xitoylik o'ymakor bo'lib, yaqin aloqada bo'lganda juda yoqimsiz. Ko'zlarga to'g'ridan-to'g'ri xavf tug'dirishdan tashqari, lazer bilan ishlashda zaharli yonish mahsulotlari chiqariladi, shuning uchun qurilma yaxshi havalandırılan bir joyda joylashgan bo'lishi kerak va tercihen odamlardan ajratilgan bo'lishi kerak. Bunday qurilmani qanday boshqarish mumkin? Eski D-Link DIR-320 A2 routeridan munosib foydalanish umidida OpenWRT omborini ko'rib chiqayotib, tasodifan bu savolga javob topdim. Ulanish uchun men Habré-da ilgari tasvirlanganidan foydalanishga qaror qildim. IP tunnel orqali USB, ammo uni o'rnatish bo'yicha barcha ko'rsatmalar o'z ahamiyatini yo'qotdi, shuning uchun men o'zimni yozyapman.

OpenWRT - bu tanishishga muhtoj bo'lmagan operatsion tizim, shuning uchun men uning o'rnatilishini tasvirlamayman. Routerim uchun OpenWrt 19.07.3 ning so'nggi barqaror versiyasini oldim va rejimni tanlab, mijoz sifatida uni asosiy Wi-Fi kirish nuqtasiga uladim. LAN, xavfsizlik devorini qiynamaslik uchun.

Server qismi

ga muvofiq harakat qilamiz rasmiy ko'rsatmalar. Ssh orqali ulangandan so'ng, kerakli paketlarni o'rnating.

root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-usb-ohci usbip-server usbip-client

Keyinchalik, biz qurilmamizni routerning USB portiga ulaymiz (mening holimda, qurilmalar: USB hub, routerning fayl tizimi o'rnatilgan flesh-disk (ichki xotirada bo'sh joy yo'qligi sababli) va to'g'ridan-to'g'ri o'ymakor).

Keling, ulangan qurilmalar ro'yxatini ko'rsatishga harakat qilaylik:

root@OpenWrt:~# usbip list -l

Bo'sh.

Gugling orqali jinoyatchi topildi, u kutubxona boʻlib chiqdi libudev-fbsd.
Biz eng so'nggi ishchi versiyasini ombordan qo'l bilan chiqaramiz libudev_3.2-1 arxitekturangiz uchun OpenWRT 17.01.7 versiyasidan, mening holimda bu libudev_3.2-1_mipsel_mips32.ipk. Wget/scp dan foydalanib, uni yo'riqnoma xotirasiga yuklab oling va qayta o'rnating

root@OpenWrt:~# opkg remove --force-depends libudev-fbsd
root@OpenWrt:~# opkg install libudev_3.2-1_mipsel_mips32.ipk

Biz tekshiramiz:

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 hubga ulangan xitoylik erkak bsuid oldi 1-1.4. Eslab qoling.

Endi demonni boshlaylik:

root@OpenWrt:~# usbipd -D

va xitoylarni bindim

root@OpenWrt:~# usbip bind -b 1-1.4
usbip: info: bind device on busid 1-1.4: complete

Keling, hamma narsa ishlayotganini tekshiramiz:

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

Qurilmani avtomatik ravishda bog'lash uchun tahrir qilaylik /etc/rc.localoldin qo'shish orqali chiqish 0 Quyidagilar:

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

Mijoz tomoni

Keling, openwrt.org saytidagi yuqoridagi ko'rsatmalar yordamida qurilmani Windows 10 ga ulashga harakat qilaylik. Men darhol aytaman: g'oya muvaffaqiyatsizlikka mahkum. Birinchidan, faqat Windows 7 x64 hisoblanadi. Ikkinchidan, Dropbox-dan 2014-yilda yamalgan drayverni yuklab olishni taklif qiluvchi sourceforge.net saytidagi mavzuga havola berilgan. Uni Windows 10 ostida ishga tushirishga va qurilmamizga ulanishga harakat qilsak, biz quyidagi xatoni olamiz:

c:Utilsusbip>usbip -a 192.168.31.203 1-1.4
usbip for windows ($Id$)

*** ERROR: cannot find device

Buning sababi, mijoz 3.14 versiyasidan eski yadro uchun qurilgan server bilan ishlamaydi.
OpenWRT 19.07.3 uchun usbip server 4.14.180 yadrosida qurilgan.

Qidiruvni davom ettirar ekanman, men Windows mijozining hozirgi rivojlanishiga duch keldim Github. OK, Windows 10 x64-ni qo'llab-quvvatlash ko'rsatilgan, ammo mijoz faqat sinov mijozidir, shuning uchun bir qator cheklovlar mavjud.

Shunday qilib, avval ular sertifikatni o'rnatishni so'rashadi va ikki marta. OK, keling, uni Ishonchli ildiz sertifikatlashtirish organiga va ishonchli nashriyotchilarga joylashtiramiz.

Keyinchalik, operatsion tizimni sinov rejimiga o'tkazishingiz kerak. Bu jamoa tomonidan amalga oshiriladi

bcdedit.exe /set TESTSIGNING ON

Birinchi marta muvaffaqiyatga erisha olmadim, yo'limga to'sqinlik qildim xavfsiz yuklash. Uni o'chirish uchun siz UEFI-ni qayta ishga tushirishingiz va xavfsiz yuklashni o'chirib qo'yishingiz kerak. Ba'zi noutbuk modellari nazoratchi parolini o'rnatishni talab qilishi mumkin.

Shundan so'ng, Windows-ni yuklang va bajaring bcdedit.exe / TESTSIGNING ON ni o'rnating
Vinda hammasi joyida, deydi. Biz yana qayta ishga tushiramiz va pastki o'ng burchakda Test rejimi, versiya va OS qurilish raqami so'zlarini ko'ramiz.

Bu manipulyatsiyalarning barchasi nima uchun? Imzosiz drayverni o'rnatish uchun USB/IP VHCI. Buning uchun usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat fayllarini yuklab olish va administrator huquqlari bilan ishlash tavsiya etiladi.

usbip.exe install

yoki ikkinchi usul, Legacy Hardware-ni qo'lda o'rnatish. Men ikkinchi variantni tanladim, imzosiz drayverni o'rnatish haqida ogohlantirish oldim va u bilan rozi bo'ldim.

Keyinchalik, buyruqni ishga tushirish orqali masofaviy USB qurilmasiga ulanish imkoniyati mavjudligini tekshiramiz:

usbip.exe list -r <ip вашего роутера>

Biz qurilmalar ro'yxatini olamiz:

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)

xato uchun usbip: xato: usb identifikatori ma'lumotlar bazasini ochib bo'lmadi Biz e'tibor bermaymiz, bu ishga ta'sir qilmaydi.

Endi biz qurilmani bog'laymiz:

c:Utilsusbip>usbip.exe attach -r 192.168.31.203 -b 1-1.4

Hammasi shu, Windows yangi qurilmani aniqladi, endi siz u bilan jismonan noutbukga ulangandek ishlashingiz mumkin.

Men xitoylik o‘ymakor bilan biroz qiynalishimga to‘g‘ri keldi, chunki uning CH341SER drayverini o‘yuvchi bilan birga kelgan o‘rnatuvchi (ha, Arduino o‘yuvchi) orqali o‘rnatmoqchi bo‘lganimda USB/IP VHCI Windows-ni BSOD-ga tushirib yubordi. Biroq, CH341SER drayverini o'rnatish uchun qurilmani usbip.exe orqali ulash muammoni hal qildi.

Xulosa: o'ymakor shovqin qiladi va oshxonada deraza ochiq va eshik yopiq holda chekadi, men o'zimning dasturiy ta'minotim orqali boshqa xonadan yonish jarayonini kuzataman, bu tutqichni sezmaydi.

Ishlatilgan manbalar:

https://openwrt.org/docs/guide-user/services/usb.iptunnel
https://github.com/cezanne/usbip-win

Manba: www.habr.com

a Izoh qo'shish