趣味のプログラム工房

Ubuntu 14でのUSB/IPの利用

「SCR3310-NTTCom」ではLinuxのxhci_hcd(USB3)ドライバと相性が悪いらしく、
よく、エラーが発生します。(利用するたびにsyslogにエラーが出力されている)
そこで、仕方なく、BIOSからUSB3.0を無効にして、ehciで動かしています。
ただ、この方法だと、USB3の機器をつないでも、USB2の速度となってしまうため不便。
で、何とかしたいと思い、考え付いたのが、USB/IPによる利用。

これなら、USBのドライバをxhci_hcd(USB3)に戻して、SCR3310-NTTComはUSB/IPによるvhciで利用できるはず!!

というわけで、ルータをUSBデバイスサーバ化してSCR3310-NTTComをネットワーク経由で使えるようにしたのが前回までのお話。

今回は実際に使うクライアント側です。

クライアントはUbuntu14(正確には、Linux Mint)
①まずは、カーネルモジュールのコンパイルを行い、usbipのモジュールが利用できるようにします。
②カーネルモジュールのコンパイル・インストール方法は下記
sudo apt-get install linux-source
mkdir ~/build
tar xvf /usr/src/linux-source-(ダウンロードされたバージョン)tar.bz2 -C ~/build
cd ~/build
sudo apt-get install libwrap0-dev gcc libglib2.0-dev libtool automake autoconf pkg-config libsysfs-dev
cd drivers/staging/usbip/userspace/
./autogen.sh
./configure
sudo make install
③インストールしたカーネルモジュールの読み込み
sudo modprobe vhci-hcd
sudo modprobe usbip-core
sudo modprobe usbip-host

これでusbip関連のコマンドが使えるはず。
ダメなら再起動とか、アンインストール・再インストールを試してみる。
特に問題なければ、/etc/modulesに追記しても良いかと。

あと、私はハマったのですが、一度はattachがうまくいったのに、2回目以降なぜか、attachすると、
usbip: error: recv op_common
usbip: error: query
というエラーが発生。クライアント側で何をしても解決しなかったのですが、
サーバ側で、一度、unbindをしたら、エラーも出ずにうまくいきました。。。
これには、ものすごくハマりました。。。。

とりま、使えるようになったので良しとする。

関連記事
WZR-HP-G301NHのOpenWrt化
OpenWrtによるUSBデバイスサーバ!


追記
lsusbでも、pcsc_scanでも、正常に認識しているのを確認できているのですが、
recpt1 --b25 --strip~~
で実際に録画しようとすると、
bcas->init failed
Cannot start b25 decoder
のエラーが発生して、正常にデコードできません。
原因不明で解決できず。
スマートカードリーダー関連のパッケージをダウングレードでいけるかも?

2015年05月17日