Linux機をUSBデバイスサーバーにしてみた(USB Server+USB Redirector)

USB機器を複数のパソコンで共有するための製品として、USBデバイスサーバーというものがある。
製品としては、IO-DATAの
I-O DATA USB機器共有ネットワークアダプター「net.USB」 ETG-DS/US
あたりが有名か。


単体製品ではなく自宅のPCをUSBデバイスサーバーにすることができるアプリケーションが販売されているので、果たしてどんなものか試してみた。


今回試したのは、ここにある
・USB Server for Linux i386(サーバーアプリ)
・USB Redirector(クライアントアプリ)
を使用してみた。
ちなみに、インストールしたディストリビューションはCentOS5.5

[root@localhost ~]# cat /proc/version
Linux version 2.6.18-194.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:35 EDT 2010
  • サーバ(Linux機)スペック
  • クライアント側スペック
  • ネットワーク環境
    • サーバ、クライアント間はギガビットHUBにて接続


てな具合。


この環境で試した機器は以下の通り。

上3つがUSBオーディオで、4つ目がUSBバスパワー駆動のポータブルHDD。
ちなみに、USB Server環境を常用するつもりは元々なくて、単にこれらの機器がUSB Server経由で満足に動作するのかという興味本位で試してみた次第。

USB Server for Linux i386のインストール

USB Server for Linuxをインストールするには事前にカーネルモジュールをビルドする必要があるらしいので、まずは下準備を行う。
カーネルソースをダウンロードしてコンパイル

wget http://mirror.centos.org/centos/5/os/SRPMS/kernel-2.6.18-194.el5.src.rpm
mkdir /usr/src/redhat
rpm -ivh kernel-2.6.18-194.el5.src.rpm
cd /usr/src/redhat/SOURCES/
tar xvfl linux-2.6.18.tar.bz2
cd linux-2.6.18
cp /boot/config-2.6.18-194.el5 .config
make prepare
make modules


次に、USB Serverをインストール

wget http://incentivespro.com/usb-server.tar.gz
tar xvfz usb-server.tar.gz
cd usb-server
ln -s /usr/src/redhat/SOURCES/linux-2.6.18/ linux
./installer.sh install-server


インストールが正常に終了すれば、同時にサービスも起動する。
その後は、オンラインマニュアルにあるとおり、usbsrvコマンドを使って共有設定などを行う。

usbsrv -l


DR.DAC2 DXを共有する場合以下のように入力する。

usbsrv -s 4

USB Redirectorのインストール

次に、クライアントとなるWindows機にUSB Redirectorをインストールする。
インストール後、アイコン類の一番右にある「Add USB Server」ボタンを押して、LinuxサーバのIPアドレスを入力する。


すると、以下のように接続リストに追加され、usbsrvコマンドで共有設定したUSB機器の一覧が表示される。


後は、一覧から機器を選択して「Connect USB device」ボタンを押せば、クライアントPC側で該当の機器がUSB接続された扱いになる。
DR.DAC2 DXを接続したところ


試しにUSB Server経由で接続したDR.DAC2 DXから音楽再生してみたところ、30秒に1度くらい定期的にノイズが入ってとてもではないが聞けたものではなかった。
動画再生の方がよりノイズが顕著で、とても常用には耐えられない。
CPUやメモリやネットワーク帯域を見てみても、サーバ側クライアント側共に余裕の状態であった。


JAVS UDT-1も同様の結果だった。
USB Sound Blaster HDは「Connect USB device」を押しても「Device ・・・ is not plugged now」と表示されてしまい、クライアント側で認識されることは無かった。


最後に、外付けHDDのHD-PE500U2を試したところ、クライアントPCで認識するまでに1分ほど時間がかかり、いざファイルをコピーしてみると1MBpsくらいしか速度が出ない状態だった。
ちなみにUSB Serverを経由せずに直接HD-PE500U2を繋いだ場合は40MBpsほど。

感想

今回、あくまでもお試しで、主にUSBオーディオがネットワーク経由で認識できるのか否か。
認識できたとして、満足に動作するのか否かに興味があってUSB Serverを試してみた。
結果としては常用に耐えうるものではなかったけれども、別のPCに繋いであるUSB機器がクライアントPCで認識される様は素直に面白いと思った。


今回試した機器はいずれも満足な結果は出なかったが、USBプリンタなどの共用を検討しているなら、相性などの実績を調査した上でETG-DSなどの専用機器を買ったほうが無難だと思われる。