USBゲームパッドを入手しました。この周辺機器が実際にPC /カーネルに送信している信号とコマンドを確認して確認したいと思います。
私は何かが
cat /dev/bus/usb/006/003
十分でしたが、このコマンドはすぐに戻り、一部の読み取り不可能なエンコードされた文字を出力します。
そのようなUSBデバイスを「デバッグ」する方法はありますか?
USBゲームパッドを入手しました。この周辺機器が実際にPC /カーネルに送信している信号とコマンドを確認して確認したいと思います。
私は何かが
cat /dev/bus/usb/006/003
十分でしたが、このコマンドはすぐに戻り、一部の読み取り不可能なエンコードされた文字を出力します。
そのようなUSBデバイスを「デバッグ」する方法はありますか?
回答:
WiresharkでUSBトラフィックをキャプチャできます。
それはwikiから:
LinuxでUSBトラフィックをダンプ
usbmon
するには、Linux 2.6.11以降に存在するモジュールが必要です。そのモジュールに関する情報/usr/src/linux/Documentation/usb/usbmon.txt
は、Linuxソースツリーにあります。使用しているディストリビューションとそのディストリビューションのバージョンに応じて、そのモジュールはカーネルに組み込まれている場合と、ロード可能なモジュールの場合があります。ロード可能なモジュールである場合、使用しているディストリビューションとそのディストリビューションのバージョンに応じて、ロードされる場合とロードされない場合があります。ロード可能なモジュールであり、ロードされていない場合は、次のコマンドでロードする必要があります
modprobe usbmon
ルートとして実行する必要があります。
1.0より前のlibpcapリリースにはUSBサポートが含まれていないため、少なくとも libpcap 1.0.0が必要です。
2.6.21より前のバージョンのカーネルの場合、使用可能な唯一のUSBトラフィックキャプチャメカニズムは、生のUSBブロックごとにキャプチャされるデータの総量を約30バイトに制限するテキストベースのメカニズムです。カーネルにパッチを当てずにこれを変更する方法はありません。debugfsがまだにマウントされていない場合は
/sys/kernel/debug
、rootとして次のコマンドを発行して、そこにマウントされていることを確認します。
mount -t debugfs / /sys/kernel/debug
カーネルバージョン2.6.21以降では、USBパケットをトレースするためのバイナリプロトコルがあり、そのサイズ制限はありません。そのカーネルバージョンでは、libpcap 1.1.0以降が必要になります。これは、libpcap 1.0.x USBサポートは、USBトラフィックのメモリマップメカニズムを使用しますが、正しく処理しないため、libpcapが使用可能な場合に使用します。 libpcapは常に使用できないため、常に使用します。
でlibpcapの 1.0.xでは、USBに取り込むための装置は、バスの数であるn個の名前USBNを、持っています。libpcap 1.1.0以降では、彼らは名前usbmonnを持っています。
Wireshark 1.2.x以降も必要です。