Raspberry PiをUSBデバイスサーバにする

2015年9月13日

インタフェースがUSBしかないプリンタ(CANON LBP-7010C)をLAN上で共有するのに、SX-2000U2というUSBデバイスサーバを使っていましたが、使用開始から7年目に壊れてしまいました。
なんとか手元にある機器で凌ごうと思い、BUFFALOのリンクステーション、LS-CLシリーズのプリントサーバにて共有を試みるも失敗。
RaspbianでCUPSも試したが使えず、途方に暮れていました。

ダメもとでRaspbianで動作するUSBデバイスサーバを探したら、なんと普通に配布しているんですね。
今回は、VirtualHereを使って構築しました。
注意事項として、シェアウェアなので、クライアントから同時に1台しか接続できません。
それ以上接続する場合は、サーバごとに$39のライセンスを購入してください。

VirtualHere
http://www.virtualhere.com/

サーバの手順(Raspbianのターミナル操作)

rootでログインします。
VirtualHere(ARM用)のサーバのバイナリをダウンロードします。
wget https://www.virtualhere.com/sites/default/files/usbserver/vhusbdarm
(ちなみに、Raspberry Pi用に最適化されたバイナリもありますが、こちらはライセンスが必要です。)
VH_license
サーバのバイナリに実行権限を与えます。
chmod +x ./vhusbdarm
起動スクリプトが指定する場所にバイナリを移動します。
sudo mv vhusbdarm /usr/sbin
起動スクリプトをダウンロードします。
wget http://www.virtualhere.com/sites/default/files/usbserver/scripts/vhusbdpin
起動スクリプトに実行権限を与えます。
chmod +x ./vhusbdpin
起動スクリプトを移動します。
sudo mv vhusbdpin /etc/init.d
シンボリックリンクを作成します。
sudo update-rc.d vhusbdpin defaults
Raspbianを再起動します。
sudo reboot

クライアントの手順(Windows10 x64)

クライアントをダウンロードします。
https://www.virtualhere.com/sites/default/files/usbclient/vhui64.exe
Windows x64以外はこちらから。
http://www.virtualhere.com/usb_client_software
vhui64.exeを実行します。
Bonjourを使っているようなので、途中でインストールが始まります。
(Bonjourについて https://ja.wikipedia.org/wiki/Bonjour)
デバイスが表示されます。
ダブルクリックするとUSB Root HubとUSB Host Controllerのドライバがインストールされます。
デバイスを右クリックしてUSEをクリックすると、デバイスに接続します。
VirtualHere_list
今回はプリンタなので、Windows10 64ビット用のプリンタドライバをインストールして終わりです。
VirtualHere_printer

クライアントはサービスで起動できるようですが、画面の出し方がわからないので、いまいち使い方がわかりません。