USBデバイスをネットワーク経由で共有できると、日常生活の多くの場面で非常に便利です。例えば、オフィス全体で使用するソフトウェアのライセンスドングルを持っている場合、頻繁な接続と取り外しによってドングルが破損する可能性があります。新しいライセンスを全員分購入する予算がない場合、代替方法を検討する必要があります。
Raspberry Piを使用して、USBデバイスをTCP/IP経由で共有できることをご存じですか?この方法を実現するためには、特別なソフトウェアが必要です。ここでは、有料の信頼性の高いアプリと、無料ですが不安定なオープンソースソリューションを比較し、それぞれの特徴を詳しく見ていきます。
dpkg -i [パッケージ]
apt-get install -f
rpm -i [パッケージ]yum install [パッケージ]以上です!
その後は、インターネットに接続されたどのマシンからでも共有デバイスにアクセスできるようになります。リモート側のマシンのOSや物理的な距離は関係ありません(Linux、Windows、Macに対応)。さらに、LinuxマシンでUSB Network Gateを起動するためにカーネルモジュールをロードする必要もありません。加えて、このアプリはVMware、VMware ESX Server、Citrix XenServer、Microsoft Hyper-Vの仮想マシンでも使用できます。この方法は、あらゆる種類・ブランドのUSBデバイスで動作します。デバイスの共有/共有解除はすべて即座に反映され、システムの再起動は不要です。
USB Network Gateで確立されるすべての接続は、高度な2048ビットSSL暗号化により完全に安全です。さらに、追加保護のために認証パスワードを設定することもできます。そのため、データが第三者の手に渡る心配はまったくありません。
USB Network Gateを選ぶ最大の利点は、Raspberry Piを恒久的にUSB-over-IPサーバーにする必要がないことです。これは、手元にあるあらゆるマシンからUSBデバイスを共有するのに最適なマルチプラットフォームソリューションであり、共有できるデバイス数にも制限はありません。USB Network Gateは現在、個人利用(USBデバイス1台の共有)で無料となっており、Raspberry Piを使ったプロフェッショナルなUSB共有を誰でも利用できるようになっています。
この方法は基本的にUbuntuでUSBをIP経由で共有するのと同じですが、今回は別のアプリを使用します。このアプリはLinuxベースのオープンソースソフトウェアであり、まだ開発段階にあるため、設定が技術的に難しい場合があります。初めての試行で失敗しても落ち込まないように準備しておいてください。
事前に注意すべき重要なポイント:
sudo apt install usbip
sudo modprobe usbip_host
echo 'usbip_host' >> /etc/modules
lsusb
usbip list -p -l
sudo usbip bind --busid=N
usbipd vi /lib/systemd/system/usbipd.service
[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には対応していません。そのため、ここでは考慮しません。
sudo -s
apt-get install linux-tools-generic -y
modprobe vhci-hcd
echo 'vhci-hcd' >> /etc/modules
sudo usbip attach -r 0.0.0.0
または、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
重要:
Nを実際のデバイスのUSB ID番号に、0.0.0.0をRaspberry PiのIPアドレスに置き換えてください。
サービスの保存と開始:
上記の定義を保存した後、以下のコマンドを実行してサービスを開始します:
sudo systemctl --system daemon-reload
sudo systemctl enable usbip.service
sudo systemctl start usbip.service
クライアントマシンから共有デバイスにアクセスできない場合は、サーバーセットアップガイドのステップ1からやり直してください。
重要事項: 共有中はRaspberry PiからUSBデバイスを取り外さないでください。 デバイスを安全に取り外すには、最初にRaspberry Piの電源をオフにしてからデバイスを取り外してください。これにより、データ損失やデバイスの損傷を防ぐことができます。
|
距離制限
|
距離制限
|
|
|
|
対応プラットフォーム:
|
対応プラットフォーム:
|
|
|
|
サーバープラットフォーム
|
サーバープラットフォーム
|
|
|
|
クライアントプラットフォーム
|
クライアントプラットフォーム
|
|
|
|
トラフィック最適化
|
トラフィック最適化
|
|
|
|
セキュリティ
|
セキュリティ
|
|
|
|
暗号化
|
暗号化
|
|
|
|
無線接続
|
無線接続
|
|
|
|
アクティビティログ
|
アクティビティログ
|
|
|
どの方法を選ぶにしても、適切なツールを選ぶことが重要であることを忘れないでください。USB Network Gate は現在、個人利用向けの無料版(USB デバイス1台を無料で共有)を提供しており、個人の Raspberry Pi プロジェクトや非商用アプリケーションに最適です。商用利用や高度な機能については、有料ライセンスが $159.95 から利用できます。この実績あるアプリは使いやすく、トラブルの原因にもならないため、趣味で使う方にもプロフェッショナルな導入にも理想的です。