2025年7月17日木曜日

USB エクステンダー

 



FlexiHubを使ったRaspberry PiからのUSB共有

適切なUSB-Ethernetエクステンダーソフトウェアツールを使用すると、Raspberry PiからUSBをIP経由で共有するのは非常に簡単で、USB延長ケーブル、余分なガジェットを購入したり、CAT5eやCAT6 LANワイヤーを敷設したり、USBをRS32アダプターに使用したりする必要はありません。

Raspberry PiからUSBをIP経由で共有する方法
1
ここでFlexiHubアカウントを登録し、無料のデモ期間を開始します。
 FlexiHub アカウントを登録する
2
サーバーコンピューターにアプリをダウンロードしてインストールします。
 アプリをダウンロードしてインストールする
3
Raspberryのターミナルで次のコマンドを実行します: yum install [package];
4
アプリを起動し、「Share」をクリックしてUSBデバイスを共有します。

それだけです!

その時点から、共有されたUSBデバイスは、FlexiHubがインストールされておりインターネット接続があるすべてのコンピュータからリモートでアクセス可能になります。オペレーティングシステムや物理的な距離に関係なく。

主な特徴:

ユニバーサルソリューション:

USBリダイレクションサーバー: FlexiHubのユニークなUSBリダイレクションサーバーは、公開IPアドレスを必要とせずにすべてのファイアウォールを通過してアプリを動作させます。

周辺機器の共有: USBハブを共有することで、そのUSBポートに接続された周辺機器が追加の設定なしにリモート接続で即座に利用可能になります。

パフォーマンスの向上:

トラフィック圧縮: FlexiHubはオプションでトラフィック圧縮機能を提供しており、USBプリンタやウェブカメラなどの帯域幅に敏感なUSBデバイスに特に有用です。これにより、高速な1Gbpsインターネット接続がなくても効率的に動作させることができます。

セキュリティ:

SSL暗号化: FlexiHubは、2048ビットの強力なSSL暗号化を提供し、セキュリティカメラ、USBドングル、またはFlexiHubを通じて送信されるデータへの不正アクセスを完全に防止します。

USB over Network Raspberry Pi共有 - ビデオチュートリアル

Raspberry PiをUSB-over-IPサーバーとして設定する無料の方法

原則として、この方法は先ほど説明したものと似ていますが、異なるUSBからEthernetへの拡張アプリを介して行われます。そして、今回はまだ開発中のオープンソースソリューションを使用するため、セットアッププロセスにはある程度の技術的な能力が必要です。もしあなたがそれを持っていないなら、最初の試みでうまくいかないことに驚かないでください。

USB-over-IPサーバー

この方法を選択する前に考慮する必要があるいくつかの重要な点:

  • LAN内のUSBデバイスのみを共有できます。
  • 非LinuxマシンからUSBデバイスを共有することはできません。
  • この共有方法はUSBハブで機能しません。
  • 少なくとも100 Mbpsの接続をお勧めします。
  • 共有デバイスまでの距離が長いほど、接続が悪くなります。
  • 不正アクセスからの保護がありません。
  • トラフィック圧縮がないため、リモートカメラの画像が大幅に遅延する可能性があります。

Raspberry Piをサーバーとして設定することから始めましょう:

1
このコマンドを使用してアプリをインストールします: sudo apt install usbip
2
インストールが完了したら、必要なカーネルモジュールを追加します:
sudo modprobe usbip_host
echo 'usbip_host' >> /etc/modules
3
lsusbコマンドを使用して、Raspberry Piに物理的に接続されているすべてのUSBデバイスのリストを表示し、共有するデバイスの8桁のUSB ID番号を覚えておくか、メモしておきます。
4
usbip list -p -lコマンドを使用して、デバイスのバスIDを見つけます(前のステップでのUSB ID番号を使用してリスト上の正しいデバイスを特定します)。その番号をメモします。
5
コマンドを実行します:
sudo usbip bind --busid=N
(Nは前のステップからのバスID番号です)
6
デーモンを実行して、デバイスをUSB/IPにアタッチします: usbipd

または、systemdサービスを作成することもできます:

vi /lib/systemd/system/usbipd.service

以下の定義を持つ(デバイスの実際のUSB ID番号をNに変更してください):


[Unit]
Description=usbip host daemon
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/usbipd -D
ExecStartPost=/bin/sh -c "/usr/sbin/usbip bind --$(/usr/sbin/usbip list -p -l | grep '#usbid=N#' | cut '-d#' -f1)"
ExecStop=/bin/sh -c "/usr/sbin/usbip unbind --$(/usr/sbin/usbip list -p -l | grep '#usbid=N#' | cut '-d#' -f1); killall usbipd"
[Install]
WantedBy=multi-user.target



そして、そのサービスを開始するためにこれらのコマンドを実行します:

sudo systemctl --system daemon-reload
sudo systemctl enable usbipd.service
sudo systemctl start usbipd.service

クライアントのセットアップに移りましょう:

注意: Windows用のクライアントアプリがありますが、署名されていないドライバーやWindows 10のサポートがない不安定なベータ版であるため、本当に言及する価値はありません。

1. Ubuntuで同じアプリを使ってUSB over IPを共有するには、これらのコマンドを実行します:
sudo -s
apt-get install linux-tools-generic -y

2. 必要なモジュールを有効にします:
modprobe vhci-hcd
echo 'vhci-hcd' >> /etc/modules

共有デバイスをこのマシンに接続するには、コマンドを実行します: sudo usbip attach -r 0.0.0.0
(0.0.0.0の代わりにRaspberry Piの実際のIPアドレスを入力します)

または、systemdサービスを作成できます:
vi /lib/systemd/system/usbip.service

定義を保存し、その後、サービスを開始するためにこれらのコマンドを実行します:

[Unit]
Description=usbip client
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip attach -r 0.0.0.0 -b $(/usr/lib/linux-tools/$(uname -r)/usbip list -r 0.0.0.0 | grep 'N' | cut -d: -f1)"
ExecStop=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip detach --port=$(/usr/lib/linux-tools/$(uname -r)/usbip port | grep '<Port in Use>' | sed -E 's/^Port ([0-9][0-9]).*/\1/')"

[Install]
WantedBy=multi-user.target

保存してから、次のコマンドを実行してサービスを開始します。

sudo systemctl --system daemon-reload
sudo systemctl enable usbip.service
sudo systemctl start usbip.service

その後、共有デバイスにリモートでアクセスできるはずです。うまくいかない場合は、最初からすべてのステップを再試してください。

重要! この方法で共有されている間にUSBデバイスをRaspberry Piから抜くと、永久的なデータ損失が発生する可能性があります。最初にRaspberryをオフにし(オフにした後、余分な予防措置としてACアダプターも切断できます)。

FlexiHubを使ったUSB共有
30日間のデモ期間

Raspberry Pi と VirtualHere を備えた USB over IP ハブ

Raspberry PiとVirtualHereを使用してワイヤレスUSB over IPハブを構築するのは、以下の2つのコンポーネントがあれば比較的簡単な作業です。

  1. VirtualHere USBサーバー

  2. 動作するRaspberry Piモジュール。モジュールはPi 3以上で、Raspberry Pi OSを実行し、USBポートとWiFi機能を備えている必要があります。

VirtualHereは、ネットワーク接続されたUSBデバイスの共有を可能にします。これは、スキャナー、プリンター、ウェブカメラなどのリモートUSBデバイスを接続して、ローカルマシンに直接接続されているかのように使用できるソリューションです。VirtualHereサーバーを使用すると、ネットワーク上の任意の場所からUSBデバイスにリモートアクセスできます。

Raspberry PiのUSB over IP機能を使用してワイヤレスUSBハブを構築する方法


以下のステップでRaspberry Piを使用してUSB over IPをサポートするハブを作成できます。

  1. XRDP、SSH、またはその他の手法を使用してRaspberry Piにログインします。

  2. 次のコマンドを使用してRaspberry Pi用のVirtualHere USBサーバープラグインをダウンロードします:

    $ wget https://www.virtualhere.com/sites/default/files/usbserver/vhusbdarm

  3. chmodコマンドを使用してダウンロードしたファイルに実行許可を設定します:

    $ chmod +x vhusbdarm

  4. このコマンドを使用してVirtualHere USBサーバーをバックグラウンドで実行します:

    $ sudo ./vhusbdarm -b
    使用可能なオプションを確認するには、このコマンドを実行します:
    $ ./vhusbdarm -h

  5. ネットワークに接続されたUSBデバイスに接続するクライアントコンピューターにVirtualHereクライアントアプリケーションをダウンロードしてインストールします。

  6. これで、USBデバイスをUSBが無効化された仮想マシンに接続すると、Raspberry Piハブに表示されます。この方法では、任意のタイプのUSBデバイスをネットワーク経由で接続できます。接続できるデバイスの数にはオープンポートの数のみが制限となります。物理的なUSBハブを追加して、より多くのUSBポートを提供し、追加のデバイスを接続することもできます。

0 件のコメント:

コメントを投稿