Last Update 2009-02-20

USB Server for Linuxの評価

INCENTIVES ProのUSB Server for Linuxを評価してみた。
以下、
  • ローカルのPCでUSBデバイスを直接接続している方をサーバー
  • リモートのPCでネットワーク越しにデバイスを接続している方をクライアント
と表記する。

USB server client 1.5.2β

現在の所、唯一(?)Linuxのクライアントのある実装。

環境

  • サーバー:RHEL5.2(kernel-2.6.18-92)、USB server client 1.5.2β
  • クライアント:RHEL5.2(kernel-2.6.18-92)、USB server client 1.5.2β
  • ネットワーク環境:クロスケーブル

インストール

USB server client 1.5.2βのダウンロード
ダウンロードしてLinux上で展開すると、usbsrvd, usbsrv, usbclntというデーモンとコマンドはビルドされている。
但し、tusbd.koというカーネル・モジュールをカーネルのソースを使ってコンパイルする必要がある。
今回、kernel-2.6.18-92なのでソースをダウンロードしてきてインストールした。
以下、kernel-2.6.18-92のソースをインストールした後からの手順。
% cd /usr/src
% tar xf redhat/SOURCES/linux-2.6.18.tar.bz2
% ln -s linux-2.6.18 linux ← /usr/src/linuxで参照できるように
% cd linux
% make oldconfig
% make prepare
% make modules
% cd <usb-server-client>/modules/src/tusbd
% make →これでtusbd.koがビルドされる
 
続いてインストールする手順だが、付属のinstall.shを流すだけでよい。
% cd <usb-server-client>
% ./install.sh install
 
install.shが行っているのは、
  • /usr/local/usb-server以下にプログラム(usbsrbd, usbsrv, usbclnt)とtusbd.koをコピー
  • insmod tusbd.koでモジュールの登録
  • usbsrvdを起動
だけであった。
このため、一箇所でtusbd.koをビルドしてしまえば、他のPCには/usr/local/usb-server/以下をコピーして、insmod tusbd.koして、usbsrvdを起動すればよい。

動作確認

まずサーバー、クライアントの両方で、tusbd.koがinsmodされて、usbsrvdが起動されていることを確認する。
usbsrvdはポート32032で待っているのでFirewall設定をしている場合、ポート32032へのtcp通信の許可が必要となる。

サーバー側でUSBデバイスを接続したら、usbsrvdに認識されたかを確認してみる。
サーバー側では常にusbsrvコマンドを使う。
% usbsrv -l
 
認識されていたら、クライアントでConnectできるようにShareしてやる。
% usbsrv -s -h xxxx-xxxx -d x-x
   (-hでhwid、-dでbusidを指定する)
 
次にクライアント側でUSBをShareしてくれているサーバーを登録する。
クライアント側では常にusbclntコマンドを使う。
% usbclnt -a <サーバーIP>:32032
 
クライアント側で-lしてみると、サーバー側でShareしたUSBデバイスがリストされるはずである。
% usbclnt -l
 y: USB Server on <サーバーIP>:32032 status: [connected]
   '--> z: USB Device:   USB Memory
        busid: x-x       hwid: xxxx-xxxx
        speed: [high]    status: [device is available for connection]
 
最後にクライアント側でConnectする。
% usbclnt -c y-z
   (yはサーバーの番号、zはデバイスの番号を示す)
 
以上の手順でクライアント側でサーバー側のUSBデバイスが接続されたはずである。

USB server 1.9.1とUSB Redirector

最新版だがLinuxクライアントがない。
このため、クライアント側はWindowsとしてみた。

環境

  • サーバー:RHEL5.2(kernel-2.6.18-92)、USB server client 1.9.1
  • クライアント:WindowsXP、USB Redirector
  • ネットワーク環境:クロスケーブル

インストール

USB Server for Linux 1.9.1のダウンロード
USB Redirector 4.4のダウンロード
サーバー側のUSB Server for Linux 1.9.1のインストールの手順と方法は前述のUSB server client 1.5.2βと同様である。
tusbd.koのみビルドしなければならない。
クライアント側はWindowsなので、インストーラを起動するだけで完了する。

動作確認

まずサーバー側でtusbd.koがinsmodされて、usbsrvdが起動されていることを確認する。
usbsrvdはポート32032で待っているのでFirewall設定をしている場合、ポート32032へのtcp通信の許可が必要となる。

サーバー側でUSBデバイスを接続したら、usbsrvdに認識されたかを確認してみる。
% usbsrv -l
 
認識されていたら、クライアントでConnectできるようにShareしてやる。
% usbsrv -share ...
 
次にクライアント側でUSBをShareしてくれているサーバーを登録し、
サーバー側のUSBデバイスが見えたらConnectする。
GUIなので操作は簡単である。

まとめ

どちらのバージョンもクライアント側でのConnectまで可能であった。
ただ手元にUSBデバイスがUSBメモリとWillcomのPHSしかなかったのでこの2種類しか接続確認できていない。

USBメモリは中身を参照したりできたが、PHSはConnectできただけでそこから先どう使えるのかまで確認していない。
ただ、1.9.1とRedirectorの組み合わせでは、PHSをConnectしたらWindowsがPHSのドライバをインストールし始めたので、正常に認識されているように感じた。

ちなみにバージョン間の相性があり、
  • 1.5.2βのサーバー(Linux)にRedirector(Windows)のクライアントは接続不可
  • 1.9.1(Linux)のサーバーに1.5.2β(Linux)のクライアントは接続不可
となっている。
最終更新:2009年02月20日 03:04