USB Capture Troubleshooting for Bus Scope: Setup and Workflow Guide
Adapter unavailable
If BusScope reports "no capture adapter available":
On Linux:
- Verify usbmon is loaded:
lsmod | grep usbmon - If not loaded:
sudo modprobe usbmon - Check debugfs is mounted:
ls /sys/kernel/debug/usb/usbmon - Verify user has read permissions on the usbmon device nodes
- Some distributions restrict usbmon access to root by default
On Windows:
- Verify USBPcap is installed
- Check which root hub the device is connected to
- 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:
- Confirm the device is actively producing USB traffic. An idle device won't generate capture data.
- Remove all filters temporarily. A filter may be excluding every packet.
- Check endpoint direction — are you filtering for IN transfers when the device only sends OUT?
- 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:
- Check whether payload retention was limited during capture (large bulk transfers may be truncated)
- Platform capture permissions may restrict what usbmon/USBPcap exposes
- 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.