Compliance testing the Linux USB sub-system

Brad Hards

This document is an early draft of compliance test procedures for the USB sub-system under Linux.

Please send any corrections to the author and to

Table of Contents
I. USB Interoperability Guidelines
1. Introduction
2. Overview
USB Unique Features
3. Requirements
System Requirements
Software Requirements
Suggested Devices
4. So what is device interoperability?
5. Who should do interoperability?
6. When should interoperability be done?
7. Undesirable Side Effects
Kernel oopses and panics
System reboots
System hangs
Device not detected
The most important issue
8. Typical end-user scenarios
Hot attach
Application installation (if applicable)
Suspend - Resume
Suspend - Remote wake-up (if applicable)
Warm reboot
Cold boot
Asynchronous detach and reattach
USB topology change
Application Removal
9. Device Operability - the basis of interoperability
Drive Images
10. Non-hub device tests
Test Configuration Recording
Compliance tests
Bandwidth degradation (isochronous devices only)
Root hub operation - UHCI
Root hub operation - OHCI
Fifth tier operation - UHCI
Fifth tier operation - OHCI
Multiple identical devices - UHCI
Multiple identical devices - OHCI
11. Non-hub Device Interoperability
System configuration with UHCI
Enumeration test with UHCI
Additional Software installation
Specific driver installation with UHCI
System Suspend - Resume with UHCI
System configuration with OHCI
Enumeration test with OHCI
Additional Software installation
Specific driver installation with OHCI
System Suspend - Resume with OHCI
System functionality test
Function under load test
Detach / Reattach
Active Detach / Reattach
Topology change
Warm boot test
Cold boot test
12. Disk Image Utilities
II. About this Document
13. Contributors
14. Licensing and Copyright
15. Corrections