USB をネットワーク経由で使う
いきさつ
UVC カメラを IP ネットワーク経由で使いたいな、と思ったわけですが、 ssh でモニタリングするよりも、USB を手元の PC で認識する方がスマートな方法かと。 そこで usbip を使ってみます。
usbip
以下の2つをインストールすればOKみたい。
install
setting
そして以下のコマンドを打ちます。
しかし、最後の行で失敗します。 (kernel のバージョンによるものらしく、) Ubuntu12.10 でも 13.04 でもダメでした。
解決しました (2014/05/18)
環境を Ubuntu から Debian7.5 に変えたところうまく行きました。 ホスト側もクライアント側も Ubuntu ではだめでした。
install
ホスト側もクライアント側も同じです。
ホスト側の設定
準備は以下の3行で終わります。
以下のコマンドを打つと、ホスト側に接続されているusb機器が列挙されます。
以下が出力された結果。 USB ハブとキーボードと web カメラが認識されてます。
Local USB devices
=================
- busid 1-1 (05e3:0606)
Genesys Logic, Inc. : USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub (05e3:0606)
1-1:1.0 -> hub
- busid 1-1.1 (099a:0638)
Zippy Technology Corp. : Sanwa Supply Inc. Small Keyboard (099a:0638)
1-1.1:1.0 -> usbhid
1-1.1:1.1 -> usbhid
- busid 1-1.3 (046d:0825)
Logitech, Inc. : Webcam C270 (046d:0825)
1-1.3:1.0 -> uvcvideo
1-1.3:1.1 -> uvcvideo
1-1.3:1.2 -> snd-usb-audio
1-1.3:1.3 -> snd-usb-audio
ここで web カメラの busid を確認し、web カメラを外部に公開します。
これでホスト側の準備は完了です。 公開を停止したい場合はunbindすればOKです。
クライアント側の設定
準備は以下の2行で終わります。
以下のコマンドでホスト側のusbのbusidを確認します。
以下が出力された結果。
Exportable USB devices
======================
- beagle.local
1-1.3: Logitech, Inc. : Webcam C270 (046d:0825)
: /sys/devices/ocp.3/47400000.usb/musb-hdrc.1.auto/usb1/1-1/1-1.3
: Miscellaneous Device / ? / Interface Association (ef/02/01)
: 0 - Video / Video Control / unknown protocol (0e/01/00)
: 1 - Video / Video Streaming / unknown protocol (0e/02/00)
: 2 - Audio / Control Device / unknown protocol (01/01/00)
: 3 - Audio / Streaming / unknown protocol (01/02/00)
そして確認した busid を使ってローカルの USB として紐付けます。
これでクライアント側でホスト側の USB 機器が使用できます。