FlexiHub
ご存知かもしれませんが、Raspberry PiをUSB-over-Ethernetサーバーとして設定する方法があります。実際、ここでは1つではなく3つの方法があります:100%効率的な有料アプリを使用する簡単な方法、またはオープンソースソリューションとその複雑な設定プロセスを使った険しい道のりです。これからそれら全てを見ていきましょう。
それだけです!
その時点から、共有されたUSBデバイスは、FlexiHubがインストールされておりインターネット接続があるすべてのコンピュータからリモートでアクセス可能になります。オペレーティングシステムや物理的な距離に関係なく。
ユニバーサルソリューション:
USBリダイレクションサーバー: FlexiHubのユニークなUSBリダイレクションサーバーは、公開IPアドレスを必要とせずにすべてのファイアウォールを通過してアプリを動作させます。
周辺機器の共有: USBハブを共有することで、そのUSBポートに接続された周辺機器が追加の設定なしにリモート接続で即座に利用可能になります。
パフォーマンスの向上:
トラフィック圧縮: FlexiHubはオプションでトラフィック圧縮機能を提供しており、USBプリンタやウェブカメラなどの帯域幅に敏感なUSBデバイスに特に有用です。これにより、高速な1Gbpsインターネット接続がなくても効率的に動作させることができます。
セキュリティ:
SSL暗号化: FlexiHubは、2048ビットの強力なSSL暗号化を提供し、セキュリティカメラ、USBドングル、またはFlexiHubを通じて送信されるデータへの不正アクセスを完全に防止します。
原則として、この方法は先ほど説明したものと似ていますが、異なるUSBからEthernetへの拡張アプリを介して行われます。そして、今回はまだ開発中のオープンソースソリューションを使用するため、セットアッププロセスにはある程度の技術的な能力が必要です。もしあなたがそれを持っていないなら、最初の試みでうまくいかないことに驚かないでください。
この方法を選択する前に考慮する必要があるいくつかの重要な点:
sudo apt install usbip
sudo modprobe usbip_host
echo 'usbip_host' >> /etc/modules
lsusbコマンド
を使用して、Raspberry Piに物理的に接続されているすべてのUSBデバイスのリストを表示し、共有するデバイスの8桁のUSB ID番号を覚えておくか、メモしておきます。
usbip list -p -l
コマンドを使用して、デバイスのバスIDを見つけます(前のステップでのUSB ID番号を使用してリスト上の正しいデバイスを特定します)。その番号をメモします。
sudo usbip bind --busid=N
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アダプターも切断できます)。
Raspberry PiとVirtualHereを使用してワイヤレスUSB over IPハブを構築するのは、以下の2つのコンポーネントがあれば比較的簡単な作業です。
VirtualHereは、ネットワーク接続されたUSBデバイスの共有を可能にします。これは、スキャナー、プリンター、ウェブカメラなどのリモートUSBデバイスを接続して、ローカルマシンに直接接続されているかのように使用できるソリューションです。VirtualHereサーバーを使用すると、ネットワーク上の任意の場所からUSBデバイスにリモートアクセスできます。
以下のステップでRaspberry Piを使用してUSB over IPをサポートするハブを作成できます。
$ wget https://www.virtualhere.com/sites/default/files/usbserver/vhusbdarm
$ chmod +x vhusbdarm
$ sudo ./vhusbdarm -b
使用可能なオプションを確認するには、このコマンドを実行します:
$ ./vhusbdarm -h
|
|
| ||||||
---|---|---|---|---|---|---|---|---|
プロキシサーバー |
リダイレクションサーバー • 外部IPが不要 • 複数ネットワーク間通信 • ファイアウォールを通過 |
なし | なし | |||||
| ||||||||
マイクロコントローラー用ファームウェア | Raspberry (要請に応じて) | なし | Raspberry | |||||
セキュリティ |
安全なアカウント共有のためのログイントークン
デバイスアクセス制御のためのロック
|
なし | なし | |||||
暗号化 | 2048ビットSSL | GUIからのSSLではない | プログラム用のSSL | |||||
安定性の向上 | 接続をアクティブに保つオプション | なし | なし |
この記事で説明されている方法の中からどれを選択するかは完全にあなた次第です。しかし、潜在的なダウンタイムをリスクにして大きなストレス、時間のロス、財政的な出費につながる可能性があるよりも、実績のある効果的なユーザーフレンドリーなツールを選択する方が賢明かもしれません。あなたに最適なものを選んでください。