[Armadillo:07737] Re: armadillo-420 usb cdc_acmのドライバが落ちる

辻 泰裕 email@hidden
2011年 12月 2日 (金) 17:46:50 JST


お世話になっております、辻です。

先日Armadillo-420でcdc-acmドライバが落ちる件のデバッグを行いましたので
結果をご連絡させて頂きます。
結果としては正常に行くパターンを発見、ただし原因は判らず、です。

1. デバッグについて
 ・カーネル作成時に、[*] USB verbose debug messages を有効
 ・cdc-acm.cに"#undef DEBUG"と書かれていたのを"#define DEBUG"に変更
 ・include/linux/device.hで"#define DEBUG"を追加
 上記3点の変更を行いましたが、USBの抜き差し時にそれらしきログは
 出ませんでした。
 変わりにcdc-acm.cの各関数の最初に関数名を表示し、動作を確認しました。
 (acm_ctrl_irq関数は引数に含まれるステータス(urb->status)の値も表示し
ております)

2. 回避出来るパターン
 今回のデバッグで、ドライバが落ちる現象を回避する方法を発見しました。
 アルマジロにUSBハブを挿して、USBハブに装置を接続すると当現象は回避され
ました。

------------------------------------------------------------------------------
テスト内容は、
1.アプリにて通信を行っている途中にUSBを抜き取る
2.テストプログラムにてopenのみ行い、その後USBを抜き取る

テストプログラム内容
int pno;

pno = open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NONBLOCK);
printf("ttyACM0 open\n");

sleep( 10 );

printf("ttyACM close\n");
close( pno );

上記1,2のテストをUSBハブなし/ありの場合で実行し、ログを取得しました。
ハブなし接続
【装置】<--USB-->【armadillo】
ハブあり接続
【装置】<--USB-->【USBハブ】<--USB-->【armadillo】

【結果】
  USBハブなしの場合、1,2のテスト共にUSB抜き取り後、ホストコントローラ
  が落ちてUSBを刺しても認識しなくなる。
  USBハブありの場合、1,2のテスト共にUSB抜き取り正常にdisconnectが実行
  される。また、その後、USBを接続すると正常に認識し、1のテストの場合、
  通信が再開されます。

それぞれのログは添付ファイルの
  テスト1 ハブなし:ttyACM調査ハブなし.log
       ハブあり:ttyACM調査ハブあり.log
  テスト2 ハブなし:ttyACM調査ハブなしopen.log
       ハブあり:ttyACM調査ハブありopen.log
に保存してあります。

【参考】
 USBハブありの場合、装置−USBハブ間、USBハブ−armadillo間のどこでUSBを抜い
 ても、disconnectは正常に行われました。
------------------------------------------------------------------------------

結果としては以上です。
この情報から何か原因が推測出来そうでしょうか?

以上、宜くお願い致します。



-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: ttyACM調査ハブなし.log
URL:  <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20111202/900656a0/attachment.ksh>
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: ttyACM調査ハブなしopen.log
URL:  <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20111202/900656a0/attachment-0001.ksh>
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: ttyACM調査ハブ使用.log
URL:  <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20111202/900656a0/attachment-0002.ksh>
-------------- next part --------------
文字コード指定の無い添付文書を保管しました...
名前: ttyACM調査ハブ使用open.log
URL:  <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20111202/900656a0/attachment-0003.ksh>


armadillo メーリングリストの案内