USB melalui IP di rumah

Terkadang Anda ingin bekerja dengan perangkat yang terhubung melalui USB tanpa menyimpannya di meja di samping laptop Anda. Perangkat saya adalah pengukir Cina dengan laser 500 mW, yang cukup tidak menyenangkan jika bersentuhan dekat. Selain bahaya langsung terhadap mata, produk pembakaran beracun juga dilepaskan selama pengoperasian laser, sehingga perangkat harus ditempatkan di area yang berventilasi baik, dan sebaiknya terisolasi dari manusia. Bagaimana cara mengontrol perangkat seperti itu? Saya tidak sengaja menemukan jawaban atas pertanyaan ini saat menelusuri repositori OpenWRT dengan harapan menemukan penggunaan yang layak untuk router D-Link DIR-320 A2 yang lama. Untuk terhubung, saya memutuskan untuk menggunakan yang dijelaskan di HabrΓ© sebelumnya. USB melalui terowongan IP, namun, semua petunjuk untuk menginstalnya telah kehilangan relevansinya, jadi saya menulisnya sendiri.

OpenWRT adalah sistem operasi yang tidak perlu diperkenalkan lagi, jadi saya tidak akan menjelaskan instalasinya. Untuk router saya, saya mengambil rilis stabil terbaru OpenWrt 19.07.3, dan menghubungkannya ke titik akses Wi-Fi utama sebagai klien, memilih mode lan, agar tidak menyiksa firewall.

bagian pelayan

Kami bertindak sesuai dengan instruksi resmi. Setelah terhubung melalui ssh, instal paket yang diperlukan.

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

Selanjutnya, kami menghubungkan perangkat kami ke port USB router (dalam kasus saya, perangkat: hub USB, flash drive tempat sistem file router dipasang (karena kurangnya ruang pada penyimpanan internal), dan, secara langsung, pengukir).

Mari kita coba menampilkan daftar perangkat yang terhubung:

root@OpenWrt:~# usbip list -l

Kosong.

Dengan googling pelakunya ditemukan, ternyata itu adalah perpustakaan libudev-fbsd.
Kami mengeluarkan versi terbaru yang berfungsi dari repositori dengan tangan libudev_3.2-1 dari rilis OpenWRT 17.01.7 untuk arsitektur Anda, dalam kasus saya adalah libudev_3.2-1_mipsel_mips32.ipk. Menggunakan wget/scp, unduh ke memori router dan instal ulang

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

Kami memeriksa:

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)

Seorang pria Tiongkok yang terhubung ke hub USB menerima bsuid 1-1.4. Ingat.

Sekarang mari kita mulai daemonnya:

root@OpenWrt:~# usbipd -D

dan mengikat orang Cina

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

Mari kita periksa apakah semuanya berfungsi:

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

Untuk lebih mengikat perangkat secara otomatis, mari kita edit /etc/rc.localdengan menambahkan sebelumnya keluar 0 berikut ini:

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

Sisi klien

Mari kita coba menghubungkan perangkat ke Windows 10 menggunakan petunjuk di atas dari openwrt.org. Saya akan segera mengatakan: idenya pasti akan gagal. Pertama, hanya Windows 7 x64 yang dipertimbangkan. Kedua, tautan diberikan ke thread di sourceforge.net, yang menyarankan pengunduhan driver yang dipatch pada tahun 2014 dari Dropbox. Saat kami mencoba menjalankannya di Windows 10 dan menyambung ke perangkat kami, kami mendapatkan kesalahan berikut:

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

*** ERROR: cannot find device

Hal ini disebabkan oleh fakta bahwa klien tidak bekerja dengan server yang dibangun untuk kernel yang lebih lama dari versi 3.14.
Server usbip untuk OpenWRT 19.07.3 dibangun di atas kernel 4.14.180.

Melanjutkan pencarian saya, saya menemukan perkembangan klien Windows saat ini github. Oke, dukungan untuk Windows 10 x64 telah disebutkan, tetapi klien tersebut hanya klien uji, jadi ada sejumlah batasan.

Jadi, pertama mereka meminta untuk memasang sertifikat, dan dua kali. Ok mari kita taruh di Otoritas Sertifikasi Root Tepercaya dan Penerbit Tepercaya.

Selanjutnya, Anda perlu memasukkan sistem operasi ke mode uji. Ini dilakukan oleh sebuah tim

bcdedit.exe /set TESTSIGNING ON

Saya tidak berhasil pertama kali, saya menghalangi mengamankan booting. Untuk menonaktifkannya, Anda perlu melakukan boot ulang ke UEFI dan mengatur boot aman untuk menonaktifkan. Beberapa model laptop mungkin memerlukan pengaturan kata sandi supervisor.

Setelah itu, boot ke Windows dan lakukan bcdedit.exe /set TESTSIGNING AKTIF
Vinda mengatakan semuanya baik-baik saja. Kami reboot lagi, dan kami melihat di sudut kanan bawah tulisan Test Mode, version dan OS build number.

Untuk apa semua manipulasi ini? Untuk menginstal driver yang tidak ditandatangani USB/IP VHCI. Disarankan untuk melakukan ini dengan mengunduh file usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, dan dijalankan dengan hak administrator

usbip.exe install

atau cara kedua, menginstal Legacy Hardware secara manual. Saya memilih opsi kedua, menerima peringatan tentang menginstal driver yang tidak ditandatangani dan menyetujuinya.

Selanjutnya, kami memeriksa apakah kami memiliki kemampuan untuk terhubung ke perangkat USB jarak jauh dengan menjalankan perintah:

usbip.exe list -r <ip вашСго Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°>

kami mendapatkan daftar perangkat:

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)

untuk sebuah kesalahan usbip: error: gagal membuka database id usb Kami tidak memperhatikan, itu tidak mempengaruhi pekerjaan.

Sekarang kami mengikat perangkat:

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

Itu saja, Windows telah mendeteksi perangkat baru, sekarang Anda dapat menggunakannya seolah-olah perangkat tersebut terhubung secara fisik ke laptop.

Saya harus sedikit menderita dengan pengukir Cina, karena ketika saya mencoba menginstal driver CH341SER melalui penginstal yang disertakan dengan pengukir (ya, pengukir Arduino), USB/IP VHCI menjatuhkan Windows ke BSOD. Namun menginstal driver CH341SER untuk menghubungkan perangkat melalui usbip.exe memecahkan masalah.

Intinya: pengukir mengeluarkan suara dan asap di dapur dengan jendela terbuka dan pintu tertutup, saya melihat proses pembakaran dari ruangan lain melalui perangkat lunak saya sendiri, yang tidak merasakan adanya tangkapan.

Sumber yang digunakan:

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

Sumber: www.habr.com

Tambah komentar