USB診断のすべて:パケットキャプチャでUSBデバイスをデバッグする完全ガイド
ファームウェアエンジニア向けUSB診断ワークフローの総まとめ。ハードウェア vs ソフトウェアキャプチャ、Linux usbmon、Windows USBPcap、列挙デバッグ、ディスクリプタエラー、転送失敗、セッション比較まで、すべてのUSB問題を診断ページにマッピングします。
このページは、USBデバイス診断のハブです。ファームウェアの列挙、ドライババインド、転送失敗、プロトコルレベル問題など、何をデバッグする場合でも、すべてのUSBデバッグシナリオを最適な診断アプローチとツールにマッピングしています。
キャプチャ:ハードウェアアナライザ vs ソフトウェアキャプチャ
どんなUSB問題をデバッグするにも、まず「どうやってトラフィックをキャプチャするか」を決めます。
- USBPcap vs usbmon:WindowsとLinuxのキャプチャ比較 — プラットフォーム別キャプチャ設定。USBPcapのルートハブ選択、usbmonの権限、そしてそれぞれの使い分け。
- プラットフォーム別キャプチャ設定 — Linux usbmonとWindows USBPcapの詳細な構成。
- デバイスへの接続 — 初回キャプチャのワークフロー。
列挙とディスクリプタのデバッグ
USB列挙は、ほとんどのファームウェアバグが潜む場所です。アプリレベルの通信が始まる前、デバイスはディスクリプタリクエストのシーケンスに正しく応答しなければなりません。
- USBコントロール転送とSetupパケットのデバッグ — bmRequestType、bRequest、wValue、wIndexの読み方。ホストが何を求めているかを理解する。
- USB複合デバイスとIADのデバッグ — IAD(Interface Association Descriptor)の問題、誤ったドライババインド、コード10/コード43、Windows usbccgp.sys。
- USBエンドポイントSTALLのデバッグ — デバイスがSTALLを返すとき。その意味、診断方法、ファームウェアの正しい復旧手順。
転送失敗とプロトコルデバッグ
- USB UASP vs BOTマスストレージのデバッグ — UASPプロトコル失敗、BOTフォールバック、SCSIコマンドタイムアウト、リセットループ、外部ストレージの遅延。
プラットフォーム別デバッグ
- Wireshark USBフィルタリファレンス — USBキャプチャ向けWiresharkディスプレイフィルタ。デバイス・エンドポイント・転送種別・ディスクリプタフィールドでフィルタする。
比較
- BusScope vs HHD USB Monitor・Total Phase Beagle — ソフトウェアUSBアナライザ vs ハードウェアアナライザ、それぞれの適切な場面。
セッション管理
- USBセッションの保存と比較 — 正常デバイスと異常デバイスの挙動をキャプチャして比較。
- キャプチャ問題のトラブルシューティング — アダプタが利用できない、タイムラインが空、証拠が抜けている。
はじめに
- 接続してキャプチャ — 初回キャプチャ設定。
- プラットフォーム設定 — Linux usbmonまたはWindows USBPcap。
- トラブルシューティング — よくあるキャプチャ問題。