自宅のUSB over IP

USB 経由で接続されたデバイスをラップトップの隣のテーブルに置かずに操作したい場合があります。 私のデバイスは 500 mW レーザーを備えた中国製の彫刻機ですが、密着すると非常に不快です。 目に直接の危険があることに加えて、レーザーの動作中に有毒な燃焼生成物が放出されるため、デバイスは換気の良い場所に設置し、できれば人から隔離する必要があります。 このようなデバイスをどうやって制御できるのでしょうか? 古い D-Link DIR-320 A2 ルーターの有効な用途を見つけようと OpenWRT リポジトリを参照しているときに、偶然この質問に対する答えを見つけました。 接続には、以前ハブレで説明したものを使用することにしました。 USB over IP トンネルただし、インストールに関するすべての手順は関連性を失っているため、私は自分自身の手順を書きます。

OpenWRT は説明の必要がないオペレーティング システムなので、インストールについては説明しません。 私のルーターには、OpenWrt 19.07.3 の最新の安定リリースを使用し、モードを選択してクライアントとしてメイン Wi-Fi アクセス ポイントに接続しました。 LAN、ファイアウォールを苦しめないように。

サーバー部

私たちは以下に従って行動します 公式の指示。 SSH接続後、必要なパッケージをインストールします。

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

次に、デバイスをルーターの USB ポート (私の場合、デバイス: USB ハブ、ルーターのファイル システムがマウントされているフラッシュ ドライブ (内部ストレージのスペース不足のため)、および直接) に接続します。彫刻家)。

接続されているデバイスのリストを表示してみましょう。

root@OpenWrt:~# usbip list -l

空です。

ググったら犯人判明、図書館だったことが判明 libdev-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ハブに接続した中国人男性がbsuidを受信 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 のスレッドへのリンクが提供されており、2014 年にパッチが適用されたドライバーを Dropbox からダウンロードすることを推奨しています。 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 のサポートが記載されていますが、クライアントは単なるテスト クライアントであるため、多くの制限があります。

そのため、最初に証明書のインストールを要求され、さらに XNUMX 回要求されます。 わかりました。信頼できるルート証明機関と信頼できる発行元に入れてみましょう。

次に、オペレーティング システムをテスト モードにする必要があります。 これはチームによって行われます

bcdedit.exe /set TESTSIGNING ON

最初は成功しなかった、邪魔になった セキュアブート。 これを無効にするには、UEFI で再起動し、セキュア ブートを無効に設定する必要があります。 一部のラップトップ モデルでは、スーパーバイザー パスワードの設定が必要な場合があります。

その後、Windows を起動して、 bcdedit.exe /set テストサインオン
ヴィンダは、すべてが大丈夫だと言います。 再度再起動すると、右下隅にテスト モード、バージョン、OS ビルド番号という文字が表示されます。

これらの操作は何のために行われているのでしょうか? 署名のないドライバーをインストールするには USB/IP VHCI。 これを行うには、ファイル usbip.exe、usbip_vhci.sys、usbip_vhci.inf、usbip_vhci.cer、usbip_vhci.cat をダウンロードし、管理者権限で実行することをお勧めします。

usbip.exe install

または XNUMX 番目の方法、レガシー ハードウェアを手動でインストールします。 私は XNUMX 番目のオプションを選択し、署名のないドライバーのインストールに関する警告を受け取り、それに同意しました。

次に、次のコマンドを実行して、リモート 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 が新しいデバイスを検出したので、ラップトップに物理的に接続されているかのように操作できるようになりました。

中国のエングレーバーでは少し苦労しました。なぜなら、エングレーバー (はい、Arduino エングレーバー) に付属のインストーラーを介して CH341SER ドライバーをインストールしようとしたとき、USB/IP VHCI が Windows を BSOD に落としてしまったからです。 ただし、CH341SERドライバーをインストールすると、 до usbip.exe 経由でデバイスを接続すると問題が解決しました。

結論: 彫刻家は窓を開けドアを閉めたキッチンで音を立てて煙を出します。私は別の部屋から自分のソフトウェアを使って焼くプロセスを観察していますが、引っかかりは感じられません。

使用された情報源:

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

出所: habr.com

コメントを追加します