Néha az embernek kedve támad USB-vel csatlakozó eszközzel dolgozni anélkül, hogy az az asztalon lenne a laptop mellett. Az én eszközöm egy 500 mW-os lézer gravírozó, ami elég zavaró közeli érintkezés esetén. A közvetlen szemveszély mellett a lézer használata közben mérgező égéstermékek szabadulnak fel, így az eszköznek jól szellőző helyiségben, lehetőleg az emberektől elszigetelten kell lennie. De hogyan irányítsuk ezt az eszközt? A kérdésre a választ véletlenül találtam meg, miközben az OpenWRT tárolót nézegettem, remélve, hogy méltó felhasználást találok egy régi D-Link DIR-320 A2 routerhez. A csatlakozást a Habr-on korábban leírt módszert választottam. USB over IP alagút, azonban az összes telepítési útmutató elavult, ezért írom meg a sajátomat.
Az OpenWRT egy olyan operációs rendszer, amely nem szorul bemutatásra, ezért a telepítését nem részletezem. Az én routeremhez az OpenWrt legutolsó stabil kiadását, a 19.07.3-at választottam, és Wi-Fi-n csatlakoztattam a fő hozzáférési ponthoz kliensként, a lanmódot választva, hogy ne terheljem a tűzfalat.
Szerver oldali rész
A következőképpen járunk el A ssh-n keresztüli csatlakozás után telepítjük a szükséges csomagokat.
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-usb-ohci usbip-server usbip-clientEzután csatlakoztassuk a router USB-portjához az eszközünket (az én esetemben az eszközök: USB hub, egy flash meghajtó, amelyre a router fájlrendszere van csatolva (a belső tároló helyhiánya miatt), és magának a gravírozónak a csatlakoztatása).
Próbáljuk meg megjeleníteni a csatlakoztatott eszközök listáját:
root@OpenWrt:~# usbip list -lÜres.
Google segítségével megtaláltam a bűnöst, a libudev-fbsd.
könyvtár volt. Kézzel kiszedtük a tárolóból az utolsó működő verziót libudev_3.2-1
-t az OpenWRT 17.01.7-as kiadásából a saját architektúrám szerint, az én esetemben ez a libudev_3.2-1_mipsel_mips32.ipk. A wget/sftp segítségével feltöltjük a router memóriájába és újratelepítjük.
Ellenőrizzük:
root@OpenWrt:~# opkg remove --force-depends libudev-fbsd
root@OpenWrt:~# opkg install libudev_3.2-1_mipsel_mips32.ipkroot@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) 1-1.4A kínai eszköz, amelyet az USB hubhoz csatlakoztattunk, megkapta a bsuid-ot.
Megjegyeztük.
Most elindítjuk a démon:root@OpenWrt:~# usbipd -D
és rögzítjük a kínait: root@OpenWrt:~# usbip bind -b 1-1.4
usbip: info: bind device on busid 1-1.4: completeEllenőrizzük, hogy minden működik:
root@OpenWrt:/home# netstat -alpt
Aktív internetkapcsolatok (szerverek és létrejött kapcsolatok)
Proto Recv-Q Send-Q Helyi cím Külső cím Állapot PID/Program név
tcp 0 0 0.0.0.0:3240 0.0.0.0:* LISTEN 1884/usbipdAhhoz, hogy a készüléket automatikusan bindezve lehessen használni, módosítjuk /etc/rc.local, hozzáadva előtte exit 0 a következőket:
usbipd -D &
sleep 1
usbip bind -b 1-1.4Kliensoldal
Próbáljuk meg csatlakoztatni az eszközt Windows 10-hez a fent említett openwrt.org útmutató segítségével. Azonnal elmondom: az ötlet kudarcra van ítélve. Először is, csak a Windows 7 x64-t tárgyalja. Másodszor, egy linket ad a sourceforge.net fórumára, ahol egy 2014-ben módosított illesztőprogramot javasolnak letölteni a Dropboxról. Amikor megpróbáljuk elindítani Windows 10 alatt, és csatlakozni a készülékünkhöz, hibát kapunk:
c:Utilsusbip>usbip -a 192.168.31.203 1-1.4
usbip Windows számára ($Id$)
*** HIBA: nem található az eszköz Ez azzal magyarázható, hogy a kliens nem működik a 3.14 verzió fölötti kernellel készült szerverekkel.
Az usbip szerver OpenWRT 19.07.3 alatt a 4.14.180 kernelen lett összeállítva.
A keresést folytatva egy aktuális Windows kliens fejlesztésére bukkantam . Rendben, a Windows 10 x64 támogatása be van jelentve, de a kliens kizárólag tesztelés céljából készült, ezért számos korlátozás található benne.
Először is, kérik a tanúsítvány telepítését, kétszer is. Rendben, elhelyezzük a Trusted Root Certification Authority és a Trusted Publishers alá.
Ezután a működési rendszert tesztmódba kell átváltani. Ezt a parancs végrehajtásával tehetjük meg:
bcdedit.exe /set TESTSIGNING ONElsőre nem sikerült, megakadályozta a secure boot.A kikapcsolásához újra kell indítani az UEFI-t, és a secure boot-ot — le kell tiltani. Néhány laptopmodell esetében előfordulhat, hogy felügyelői jelszó megadása szükséges.
Ezután indítsuk el a Windows-t, és végezzük el bcdedit.exe /set TESTSIGNING ON
A Windows azt mondja, hogy minden rendben van. Ismét újraindítunk, és a jobb alsó sarokban a Test Mode, az OS verziója és build száma látható.
Mire is jók ezek a manőverek? Egy alá nem írt illesztőprogram telepítésére USB/IP VHCI. Ezt megtehetjük, ha letöltjük a usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat fájlokat, és rendszergazdai jogokkal futtatva
usbip.exe installvagy a második módszert, a Legacy Hardware manuális telepítését választva. Én a második lehetőséget választottam, figyelmeztetést kaptam az alá nem írt illesztőprogram telepítésekor, és egyetértettem vele.
Ezután ellenőrizzük, hogy van-e lehetőségünk csatlakozni a távoli USB-eszközhöz, végrehajtva a parancsot:
usbip.exe list -rmegkapjuk az eszközök listáját:
c:Utilsusbip>usbip.exe list -r 192.168.31.203
usbip: hiba: nem sikerült megnyitni az usb azonosító adatbázist
Exportálható USB eszközök
======================
- 192.168.31.203
1-1.4: ismeretlen gyártó : ismeretlen termék (1a86:7523)
: /sys/devices/ssb0:1/ehci-platform.0/usb1/1-1/1-1.4
: ismeretlen osztály / ismeretlen alsó osztály / ismeretlen protokoll (ff/00/00)a hibára usbip: hiba: nem sikerült megnyitni az usb azonosító adatbázist nem törődünk vele, nem befolyásolja a működést.
Most hozzárendeljük az eszközt:
c:Utilsusbip>usbip.exe attach -r 192.168.31.203 -b 1-1.4Kész, a Windows felfedezte az új eszközt, most már úgy dolgozhatunk vele, mintha fizikailag csatlakoztatva lenne a laptophoz.
A kínai gravírozóval kicsit bajban voltam, mivel a CH341SER illesztőprogram telepítésekor a gravírozóhoz mellékelt telepítőn (igen, a gravírozó Arduino-alapú) a USB/IP VHCI kék képernyőt okozott a Windows-ban. Azonban a CH341SER illesztőprogram telepítése tól az usbip.exe-n keresztüli eszközcsatlakozás megoldotta a problémát.
Összegzés: a gravírozó zajong és füstöl a konyhában nyitott ablakkal és zárt ajtóval, én a másik szobából figyelem a lézergravírozást a gyári szoftveren keresztül, ami nem gyanakszik.
Felhasznált források:
Forrás: habr.com
