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

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

dwc2このモジュールでUSB OTGを使用するためにRaspberry Pi ZeroにRaspbian Jessieを設定しました。今私がしたいことは周辺機器側から着信USBトラフィックをスニッフィングします。。私はカーネルモジュールを見つけてテストしましたがusbmon(明らかに私が知っている限り)うまくいかないようです。何も記録されません。

私はテストの目的でホスト側(Linuxの他のコンピュータ)でまったく同じことを試しましたが、usbmon残念ながらそれは私にとって必要ではありません。

結論:これは可能ですか?それではどうですか?これを使用できますかusbmon、それとも別の操作(特定のオプションを使用してカーネルを再コンパイルするなど)を実行する必要がありますか?

答え1

ツールはUSBMonまだ完成していません。

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

カーネルモジュールusbmonをロードできることを確認しmodprobe usbmon()、次のようにUSBトラフィックをスニッフィングできます。

また、見ることができますhttp://discussions.flightaware.com/ads-b-flight-tracking-f21/monitoring-usb-utilization-on-raspberry-pi-t20691.html

答え2

便利なRPiがないため、これがうまくいくかどうかはわかりませんが、次のコマンドを正常に使用してリモートシステムでUSBトラフィックを監視tcpdumpしました。wireshark

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

ここでは、接続されているUSBデバイスのバスIDusbmon2です。2でこれを得ることができますlsusb

答え3

多くの調査の後、コントローラが状態にあるときにUSBトラフィックを追跡することは不可能に見えます(もしそうなら、どこにも情報が見つかりません)。装備(または周辺機器)モード。コントローラが次のように設定されている場合のみ所有者

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

だから今やるべきことは、libcompositeカーネルモジュールを修正してデバッグ情報を追加したり、スニッフィング用に設計された特定のモジュールを書くことです(しかし、これはこの問題に関する現在の知識をはるかに超えています)。

関連情報