web-dev-qa-db-ja.com

周辺機器またはOTGモードでUSBトラフィックを追跡する方法は?

dwc2モジュールでUSBOTGを使用するように、Raspberry PiZeroにRaspbianJessieをセットアップしました。私が今やりたいのは周辺側で着信USBトラフィックをスニッフィングするです。 usbmonカーネルモジュールを見つけてテストしましたが、(私の限られた知識の範囲内で)機能していないようです。何も記録されていません。

テストの目的で、ホスト側(Linux上の別のコンピューター)でまったく同じことを試しましたが、usbmonを使用してUSBデータを正常にトレースできます。残念ながら、これは私が必要としているものではありません。

結論:それは可能ですか?はいの場合、どのように? usbmonを使用できますか、それとも他のことをする必要がありますか(たとえば、特定のオプションを使用してカーネルを再コンパイルします)?

4
wismna

ツールUSBMonは未完成です

最新の同じ名前のカーネルモジュールがあります

カーネルモジュールusbmonが使用可能であることを確認してください(modprobe usbmon)そしてあなたはUSBトラフィックをスニッフィングすることができます

も参照してください http://discussions.flightaware.com/ads-b-flight-tracking-f21/monitoring-usb-utilization-on-raspberry-pi-t20691.html

1
ralf htp

多くのことを調べた後、コントローラーがデバイス(または周辺機器)にあるときにUSBトラフィックを追跡することは不可能のようです(または、そうである場合は、どこにも情報が見つかりません)モード。コントローラがホストとして設定されている場合にのみ可能です。

usbmonによってトレースが生成されないため、そもそもそのトレースが必要なため、残念ながらツール(Wireshark、dumpcap ...)を使用できません。

したがって、私が今やろうとしているのは、libcompositeカーネルモジュールを変更してデバッグ情報を追加するか、スニッフィング用に設計された特定のモジュールを作成することです(ただし、これは、瞬間)。

0
wismna

手元にRPiがないため、これが機能するかどうかはわかりませんが、tcpdumpwireshark、次のコマンドを使用します。

$ ssh user@remotehost 'tcpdump -U -i usbmon2 -w -' | wireshark -k -i -

ここに、 usbmon22は、USBデバイスが接続されているバスID用です。これはlsusbで取得できます。

0
fduff