USB Capture Troubleshooting for Bus Scope: Setup and Workflow Guide

Adapter unavailable

If BusScope reports "no capture adapter available":

On Linux:

  1. Verify usbmon is loaded: lsmod | grep usbmon
  2. If not loaded: sudo modprobe usbmon
  3. Check debugfs is mounted: ls /sys/kernel/debug/usb/usbmon
  4. Verify user has read permissions on the usbmon device nodes
  5. Some distributions restrict usbmon access to root by default

On Windows:

  1. Verify USBPcap is installed
  2. Check which root hub the device is connected to
  3. USBPcap captures from a single root hub — if your device is on a different controller, the capture will be empty

Empty timeline

If packets are not appearing:

  1. Confirm the device is actively producing USB traffic. An idle device won't generate capture data.
  2. Remove all filters temporarily. A filter may be excluding every packet.
  3. Check endpoint direction — are you filtering for IN transfers when the device only sends OUT?
  4. Verify the device completed enumeration. If enumeration failed, there may be no traffic to capture.

Missing evidence in saved sessions

If a .bscope session file seems incomplete:

  1. Check whether payload retention was limited during capture (large bulk transfers may be truncated)
  2. Platform capture permissions may restrict what usbmon/USBPcap exposes
  3. Reopen the session and inspect the adapter metadata — it records what was accessible during capture

Platform-specific notes

Linux usbmon: Captures all USB traffic at the bus level. Can see traffic before driver binding — useful for enumeration debugging. Requires root or appropriate group membership.

Windows USBPcap: Captures at the root hub level. Must select the correct hub. Driver binding happens before capture, so pre-enumeration traffic may be missed. useful for application-level USB issues.